쉿! 지휘자에게는 비밀이 있다!
비밀이란 무엇을 의미합니까? .
오늘날 많은 애플리케이션에서 타사 애플리케이션과의 상호 작용이 일반적입니다. 일반적으로 액세스 권한을 얻으려면 어떤 형태의 인증이 필요합니다. 코딩할 때 민감한 값이 보관되는(따라서 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 커뮤니티에서 여러분의 생각을 듣고 싶습니다.
Reference
이 문제에 관하여(쉿! 지휘자에게는 비밀이 있다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/orkes/shh-conductor-has-secrets-1o36텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)