InfoGrab Docs

GitLab CI/CD에서 GCP Secret Manager 시크릿 사용

GitLab CI/CD 파이프라인에서 GCP Secret Manager 시크릿을 사용하는 방법 알아보기

히스토리 GitLab 및 GitLab Runner 16.8에서 도입 됨. GitLab CI/CD 파이프라인에서 Google Cloud (GCP) Secret Manager 에 저장된 시크릿을 사용할 수 있습니다. GCP Secret Manager와 GitLab을 사용하는 흐름은 다음과 같습니다: GitLab이 CI/CD job에 ID 토큰을 발급합니다. 러너가 ID 토큰을 사용하여 GCP에 인증합니다. GCP가 GitLab으로 ID 토큰을 검증합니다. GCP가 단기 액세스 토큰을 발급합니다. 러너가 액세스 토큰을 사용하여 시크릿 데이터에 액세스합니다. GCP가 액세스 토큰의 주체에 대한 IAM 시크릿 권한을 확인합니다. GCP가 러너에게 시크릿 데이터를 반환합니다. GitLab을 GCP Secret Manager와 함께 사용하려면: GCP Secret Manager 에 저장된 시크릿이 있어야 합니다. GitLab을 ID 공급자로 포함하도록 GCP Workload Identity Federation 구성 을 합니다. GCP Secret Manager에 대한 액세스 권한을 부여하도록 GCP IAM 구성 을 합니다. GCP Secret Manager와 함께 GitLab CI/CD 구성 을 합니다. GCP IAM Workload Identity Federation (WIF) 구성 # GCP IAM WIF는 GitLab이 발급한 ID 토큰을 인식하고 적절한 주체를 할당하도록 구성해야 합니다. 주체는 Secret Manager 리소스에 대한 액세스를 승인하는 데 사용됩니다: GCP Console에서 IAM & Admin > Workload Identity Federation 으로 이동합니다. CREATE POOL 을 선택하고 고유한 이름(예: gitlab-pool )으로 새 ID 풀을 만듭니다. ADD PROVIDER 를 선택하여 고유한 이름(예: gitlab-provider )으로 ID 풀에 새 OIDC 공급자를 추가합니다. **Issuer (URL)**을 GitLab URL(예: https://gitlab.com )로 설정합니다. Default audience 를 선택하거나, GitLab CI/CD ID 토큰의 aud 에 사용되는 사용자 정의 대상을 위해 Allowed audiences 를 선택합니다. Attribute Mapping 아래에서 다음 매핑을 만듭니다. 여기서: attribute.X 는 Google 토큰에 클레임으로 포함할 속성의 이름입니다. assertion.X 는 GitLab 클레임 에서 추출할 값입니다. 속성 (Google) 주장 (GitLab) google.subject assertion.sub attribute.gitlab_project_id assertion.project_id GCP IAM 주체에 액세스 권한 부여 # WIF를 설정한 후 WIF 주체에게 Secret Manager의 시크릿에 대한 액세스 권한을 부여해야 합니다. GCP Console에서 Security > Secret Manager 로 이동합니다