현재 GitHub Actions를 사용해서 Google Cloud Run에 CI/CD 파이프라인을 구축하고 있습니다. 서비스 계정 키를 사용하는 대신 OIDC를 사용하려고 하는데, 설정 과정에서 애매한 부분이 많습니다. Google Cloud 문서에서는 어느 정도 설명이 되어 있지만, 실제로 GitHub Actions 워크플로우를 어떻게 설정해야 하는지 명확하지 않습니다.
Google Cloud Run에 OIDC를 통해 배포하려면 몇 가지 전제 조건을 정확히 맞춰야 합니다:
Workload Identity Federation 설정 확인
Google Cloud 콘솔에서 Workload Identity Pool과 Provider가 정확히 설정되어 있어야 하며, GitHub의 OIDC 토큰을 받아들이도록 provider의 audience가 https://github.com/{owner} 형식으로 설정되어야 합니다.
IAM 역할 부여
연결된 Service Account에 roles/run.admin 및 roles/iam.workloadIdentityUser 권한이 있어야 하며, 특히 후자는 OIDC 인증이 성공하려면 반드시 필요합니다.
GitHub Actions 설정 google-github-actions/auth 사용 시, token_format: 'access_token'으로 설정해야 하는 경우도 있습니다. Google Cloud Run은 실제 액세스 토큰을 요구하기 때문입니다. 따라서 다음처럼 수정해 보세요:
yaml
Copy
- name: 'Authenticate to Google Cloud'
uses: 'google-github-actions/auth@v1'
with:
token_format: 'access_token'
workload_identity_provider: 'projects/123456789012/locations/global/workloadIdentityPools/my-pool/providers/github'
service_account: 'my-service-account@my-project.iam.gserviceaccount.com'
디버깅 팁 google-github-actions/auth 단계 직후에 gcloud auth list 명령으로 현재 인증된 계정을 출력해보면 실제로 어떤 인증이 적용되었는지 확인할 수 있습니다.
이 설정들이 맞춰져 있으면, OIDC 기반 인증으로도 gcloud run deploy가 정상 작동해야 합니다.