{"meta":{"title":"Octopus Deploy에서 OpenID Connect 구성하기","intro":"워크플로 내에서 OpenID Connect를 사용하여 Octopus Deploy로 인증합니다.","product":"GitHub Actions","breadcrumbs":[{"href":"/ko/actions","title":"GitHub Actions"},{"href":"/ko/actions/how-tos","title":"사용법"},{"href":"/ko/actions/how-tos/secure-your-work","title":"작업 보안"},{"href":"/ko/actions/how-tos/secure-your-work/security-harden-deployments","title":"배포 보안 강화"},{"href":"/ko/actions/how-tos/secure-your-work/security-harden-deployments/oidc-in-octopus-deploy","title":"Octopus Deploy에서 OIDC"}],"documentType":"article"},"body":"# Octopus Deploy에서 OpenID Connect 구성하기\n\n워크플로 내에서 OpenID Connect를 사용하여 Octopus Deploy로 인증합니다.\n\n## 개요\n\nOpenID Connect(OIDC)를 사용하면 GitHub Actions 워크플로가 장기 GitHub 시크릿에 Octopus Deploy 암호 또는 API 키를 저장하지 않고도 [Octopus Deploy](https://octopus.com/)에 인증하여 패키지를 푸시하고, 릴리스를 만들고, 배포를 트리거할 수 있습니다.\n\n이 가이드에서는 GitHub의 OIDC를 페더레이션 ID로 신뢰하도록 Octopus Deploy를 구성하는 방법에 대한 개요를 제공하며, 토큰을 사용하여 Octopus Deploy 인스턴스에 인증하는 작업에 대한 [`octopusdeploy/login`](https://github.com/OctopusDeploy/login) 워크플로 예제를 포함합니다.\n\n## 필수 조건\n\n* OIDC(OpenID Connect)를 사용하는 방법과 GitHub 아키텍처 및 이점에 대한 기본 개념을 알아보려면 [OpenID Connect](/ko/actions/concepts/security/openid-connect)을 참조하세요.\n\n* 계속하기 전에 액세스 토큰이 예측 가능한 방식으로만 할당되도록 보안 전략을 계획해야 합니다. 클라우드 공급자가 액세스 토큰을 발급하는 방법을 제어하려면 신뢰할 수 없는 리포지토리가 클라우드 리소스에 대한 액세스 토큰을 요청할 수 없도록 하나 이상의 조건을 정의**해야 합니다**. 자세한 내용은  및 [OpenID 연결 참조](/ko/actions/reference/security/oidc#oidc-claims-used-to-define-trust-conditions-on-cloud-roles)을 참조하세요.\n\n## Octopus 배포에 ID 공급자 추가\n\nOIDC를 Octopus Deploy와 함께 사용하려면, 먼저 GitHub Actions와 Octopus Deploy 인스턴스 간에 신뢰 관계를 설정합니다. 이 프로세스에 대한 자세한 내용은 문어 배포 설명서에서 [문어 API와 OpenID Connect 사용을](https://octopus.com/docs/octopus-rest-api/openid-connect) 참조하세요.\n\n1. Octopus Deploy 인스턴스에 로그인합니다.\n2. 토큰 요청을 통해 액세스 권한을 부여할 서비스 계정을 만들거나 엽니다.\n3. GitHub Actions 워크플로 토큰 요청의 유효성을 검증하기 위해 관련 주체를 정의함으로써 새로운 OIDC ID를 설정합니다.\n\n## GitHub Actions 워크플로 업데이트\n\nOIDC에 대한 워크플로를 업데이트하려면 YAML에 두 가지를 변경해야 합니다.\n\n1. 토큰에 대한 사용 권한 설정을 추가합니다.\n2. [\n   `OctopusDeploy/login`\n   ](https://github.com/OctopusDeploy/login) 작업을 사용하여 OIDC 토큰(JWT)을 클라우드 액세스 토큰으로 교환합니다.\n\n> \\[!NOTE]\n> 워크플로 또는 OIDC 정책에서 환경을 사용하는 경우 추가 보안을 위해 환경에 보호 규칙을 추가하는 것이 좋습니다. 예를 들어 환경에 배포할 수 있는 분기 및 태그를 제한하거나 환경 비밀에 액세스하도록 환경에 대한 배포 규칙을 구성할 수 있습니다. 자세한 내용은 [배포 환경 관리](/ko/actions/how-tos/deploy/configure-and-manage-deployments/manage-environments)을(를) 참조하세요.\n\n### 사용 권한 설정 추가\n\n작업 또는 워크플로 실행에는 'OIDC 공급자가 모든 실행에 대해 JSON 웹 토큰을 만들 수 있도록 허용하는 `permissions`설정 [`id-token: write`](/ko/actions/tutorials/authenticate-with-github_token#modifying-the-permissions-for-the-github_token) 이 필요합니다GitHub.\n\n> \\[!NOTE] 워크플로 권한에서 `id-token: write`을 설정해도 워크플로에 리소스를 수정하거나 쓸 수 있는 권한이 부여되지는 않습니다. 대신 워크플로는 작업이나 단계의 OIDC 토큰을 요청(가져오기)하고 사용(설정)하는 것만 허용합니다. 이 토큰은 수명이 짧은 액세스 토큰을 사용하여 외부 서비스에 인증하는 데 사용됩니다.\n\n필요한 권한, 구성 예, 고급 시나리오에 대한 자세한 내용은 [OpenID 연결 참조](/ko/actions/reference/security/oidc#workflow-permissions-for-the-requesting-the-oidc-token)을(를) 참조하세요.\n\n### 액세스 토큰 요청\n\n[\n`OctopusDeploy/login`\n](https://github.com/OctopusDeploy/login) 작업은 GitHub OIDC 공급자에서 JWT를 받은 다음 Octopus Server 인스턴스에 액세스 토큰을 요청합니다. 자세한 내용은 [`OctopusDeploy/login`](https://github.com/OctopusDeploy/login) 설명서를 참조하세요.\n\n다음 예제에서는 OIDC ID 토큰을 Octopus Deploy 인스턴스와 교환하여 액세스 토큰을 수신한 후, 이를 사용하여 Octopus Deploy 리소스에 접근할 수 있습니다. 시나리오에 맞게 `server` 및 `service_account_id` 세부 정보를 적절히 교체해야 합니다.\n\n```yaml copy\n# 이 워크플로는 GitHub에서 인증되지 않은 작업을 사용합니다.\n# 작업은 타사에서 제공하며\n# 별도의 서비스 약관, 개인정보처리방침, 지원 설명서에서 규정됩니다.\n# 참조하세요.\n\njobs:\n  create_release_in_octopus:\n    runs-on: ubuntu-latest\n    name: Create a release in Octopus\n    permissions:\n      # You might need to add other permissions here like `contents: read` depending on what else your job needs to do\n      id-token: write # This is required to obtain an ID token from GitHub Actions for the job\n    steps:\n      - name: Login to Octopus\n        uses: OctopusDeploy/login@34b6dcc1e86fa373c14e6a28c5507d221e4de629 #v1.0.2\n        with:\n          server: https://my.octopus.app\n          service_account_id: 5be4ac10-2679-4041-a8b0-7b05b445e19e\n\n      - name: Create a release in Octopus\n        uses: OctopusDeploy/create-release-action@fe13cc69c1c037cb7bb085981b152f5e35257e1f #v3.2.2\n        with:\n          space: Default\n          project: My Octopus Project\n```\n\n## 추가 읽기\n\n* [재사용 가능한 워크플로에서 OpenID Connect 사용](/ko/actions/how-tos/secure-your-work/security-harden-deployments/oidc-with-reusable-workflows)\n* [자체 호스팅 실행기 참조](/ko/actions/reference/runners/self-hosted-runners)"}