쉿! 지휘자에게는 비밀이 있다!

Orkes의 클라우드 호스팅 버전 Netflix Conductor의 최신 기능을 발표하게 되어 정말 기쁩니다. 이제 더 이상 비밀이 아닙니다. 워크플로 정의에서 비밀 사용을 지원합니다! 이제 워크플로우에서 사용하는 비밀 키, 토큰 및 값이 안전하다는 것을 확신할 수 있습니다!

비밀이란 무엇을 의미합니까? .



오늘날 많은 애플리케이션에서 타사 애플리케이션과의 상호 작용이 일반적입니다. 일반적으로 액세스 권한을 얻으려면 어떤 형태의 인증이 필요합니다. 코딩할 때 민감한 값이 보관되는(따라서 GitHub 등에 공유되지 않는) 로컬 보안 저장소의 개념이 있습니다. 이렇게 하면 GitHub에 코드를 게시하거나 다른 팀과 코드를 공유할 때 실수로 비밀이 공개되는 것을 방지할 수 있습니다.

지금까지는 Conductor 작업 흐름에서 중요한 값을 안전하게 사용할 수 있는 방법이 없었습니다. 거의 모든 개발자가 실수로 GitHub에 민감한 값을 게시한 이야기를 가지고 있습니다. 실수로 Conductor 워크플로와 민감한 값을 공유한 제 이야기는 다음과 같습니다.

order fulfillment codelab에서 실패 워크플로에는 고유한 Slack 토큰이 있으며 공개적으로 액세스할 수 있는 경우 Slack 채널을 스팸 처리하는 데 사용할 수 있습니다. 튜토리얼을 작성할 때 문서의 작업 정의를 Slack 토큰과 공유했습니다.

슬랙은 이것을 포착했습니다.



매우 부끄럽지만 심각한 결과는 없습니다(이 경우).

이런 일이 일어나지 않도록 하십시오! .



Orkes가 호스팅하는 Netflix Conductor 인스턴스에는 이제 비밀이 표시됩니다. Conductor 서버에 비밀을 저장할 수 있으며 Conductor는 필요할 때 값을 사용하지만 워크플로의 출력에 값을 노출하지 않습니다.

설정은 매우 쉽습니다. Orkes에서 Netflix Conductor 인스턴스에 로그인하기만 하면 됩니다(또는 당사Playground를 무료로 사용해 보십시오!). 왼쪽 탐색에서 Secrets 을 클릭합니다. 그러면 비밀 테이블이 표시됩니다(비어 있을 수 있음).


Add Secret 을 클릭하고 이름을 지정한 다음 값을 붙여넣고 저장을 누릅니다. 그게 전부입니다.

당신의 비밀을 사용하여



Conductor 워크플로에서 암호는 다른 변수와 유사한 형식을 사용합니다. 예를 들어 address라는 입력 변수를 참조하려면 ${workflow.input.address}를 사용합니다.
Stripe_api_key 라는 비밀이 있는 경우 변수 ${workflow.secrets.Stripe_api_key} 로 이 값을 참조합니다.



GitHubs API에 액세스하려면 API 토큰이 필요합니다. 다음 HTTP 작업에서는 GitHub API를 호출하고 인증 헤더에 대한 암호Doug_github를 참조할 수 있습니다.

{ "name": "Get_repo_details", "taskReferenceName": "Get_repo_details_ref", "inputParameters": { "http_request": { "uri": "https://api.github.com/repos/${workflow.input.gh_account}/${workflow.input.gh_repo}", "method": "GET", "headers": { "Authorization": "token ${workflow.secrets.Doug_github}", "Accept": "application/vnd.github.v3.star+json" }, "readTimeOut": 2000, "connectionTimeOut": 2000 } }, "type": "HTTP", "decisionCases": {}, "defaultCase": [], "forkTasks": [], "startDelay": 0, "joinOn": [], "optional": false, "defaultExclusiveJoinTask": [], "asyncComplete": false, "loopOver": [] }



이 워크플로가 실행되면 다른 변수가 대체되지만 암호 값은 암호로 유지됩니다. URI에서 ${workflow.input.gh_account}/${workflow.input.gh_repo}netflix/conductor 로 대체되지만 인증 헤더는 여전히 난독화되어 있습니다.

{ "headers": { "Authorization": "token ${workflow.secrets.Doug_github}", "Accept": "application/vnd.github.v3.star+json" }, "method": "GET", "readTimeOut": 2000, "uri": "https://api.github.com/repos/netflix/conductor", "connectionTimeOut": 2000}



결론



Secrets는 개발자와 이야기할 때 Netflix Conductor에서 가장 많이 요청된 기능 중 하나였으며, 그 때문에 이번 출시를 발표하게 되어 기쁩니다. 이제 이러한 값을 안전하게 저장할 수 있으므로 이 릴리스가 워크플로우 개발을 보다 안전하게 만들고 새로운 개발 방법을 여는 방법에 대해 듣고 싶습니다.

Orkes Playground에서 시도해 보세요. Slack 또는 Discord 커뮤니티에서 여러분의 생각을 듣고 싶습니다.

좋은 웹페이지 즐겨찾기