튜토리얼: ID 토큰을 사용하도록 HashiCorp Vault 구성 업데이트
CI_JOB_JWT 변수에서 ID 토큰으로 변환하는 방법 알아보기
Note Vault 1.17부터 JWT에 aud 클레임이 포함된 경우 JWT 인증 로그인은 역할에 바인딩된 대상이 필요합니다 . aud 클레임은 단일 문자열 또는 문자열 목록일 수 있습니다. 이 튜토리얼은 기존 CI/CD 시크릿 구성을 ID 토큰 을 사용하도록 변환하는 방법을 보여줍니다. CI_JOB_JWT 변수는 deprecated되었지만 ID 토큰으로 업데이트하려면 Vault와 함께 작동하도록 일부 중요한 구성 변경이 필요합니다. 잡이 몇 개 이상 있는 경우 한 번에 모두 변환하는 것은 어려운 작업입니다. ID 토큰 으로 마이그레이션하는 표준 방법은 없으므로 이 튜토리얼에는 기존 CI/CD 시크릿을 변환하는 두 가지 방법이 포함됩니다. 사용 사례에 가장 적합한 방법을 선택하세요: Vault 구성 업데이트: 방법 A: JWT 역할을 새 Vault 인증 방법으로 마이그레이션 Vault에서 두 번째 JWT 인증 경로 만들기 새 인증 경로를 사용하도록 역할 재생성 방법 B: 마이그레이션 기간 동안 역할에 iss 클레임 이동 각 역할에 bound_issuers 클레임 맵 추가 인증 방법에서 bound_issuers 클레임 제거 CI/CD 잡 업데이트 사전 조건 # 이 튜토리얼은 GitLab CI/CD와 Vault에 익숙하다고 가정합니다. 따르려면 다음이 있어야 합니다: GitLab 16.0 이상을 실행하는 인스턴스 또는 GitLab.com 사용. 이미 사용 중인 Vault 서버. CI_JOB_JWT 로 Vault에서 시크릿을 검색하는 CI/CD 잡. 다음 예시에서 다음을 교체합니다: vault.example.com 을 Vault 서버의 URL로. gitlab.example.com 을 GitLab 인스턴스의 URL로. jwt 또는 jwt_v2 를 인증 방법 이름으로. 방법 A: JWT 역할을 새 Vault 인증 방법으로 마이그레이션 # 이 방법은 기존 것과 병렬로 두 번째 JWT 인증 방법을 만듭니다. 이후 GitLab 통합에 사용되는 모든 Vault 역할이 이 새 인증 방법에서 재생성됩니다. Vault에서 두 번째 JWT 인증 경로 만들기 # CI_JOB_JWT 에서 ID 토큰으로의 전환의 일부로 Vault의 bound_issuer 를 업데이트하여 https:// 를 포함해야 합니다: $ vault write auth/jwt/config \ oidc_discovery_url= "https://gitlab.example.com" \ bound_issuer= "https://gitlab.example.com" 이 변경을 하면 CI_JOB_JWT 를 사용하는 잡이 실패하기 시작합니다. Vault에서 여러 인증 경로를 만들 수 있으며 이를 통해 중단 없이 프로젝트별 잡 단위로 ID 토큰으로 전환할 수 있습니다. jwt_v2 라는 이름으로 새 인증 경로를 구성하려면 다음을 실행합니다: vault auth enable -path jwt_v2 jwt 다른 이름을 선택할 수 있지만 나머지 예시에서는 jwt_v2 를 사용한다고 가정하므로 필요에 따라 예시를
