Gcp

  • Published on
    Bitbucket OIDC를 이용하여 GCP 리소스를 접근하는 방법을 설명한다. Bitbucket Pipeline으로 GCP 리소스를 배포/변경할 때 OIDC를 통해서 임시 Credential를 발급할 수 있다. 다른 사람이 동일한 작업을 할 때, 삽질하지 않도록 완전한 예제를 공유하고자 작성한다.
  • Published on
    GCP Secret Manager를 IaS로 관리할 때, 저장하는 Secret 값을 Key Management Service의 비대칭키와 Terraform의 google_kms_secret_asymmetric data source로 관리할 수 있다. 공개키로 암호화한 비밀 값을 Terraform resource definition에 정의하고, 런타임 과정에서 복호화하여 Secret Manager의 비밀값으로 설정할 수 있다. 따라서 Git에 평서문 대신에 공개키로 암호화한 비밀 값으로 정의한 Terraform 파일을 저장하여 관리할 수 있다. 하지만 해당 비밀 값은 State output 같은 곳에 평서문으로 그대로 노출 될 수 있기 때문에, remote state로 관리할 때는 해당 state 파일이 노출되지 않도록 관리를 잘해야 한다. OpenTofu를 이용할 때는 State 파일을 암호화 하는 옵션을 사용하여 State 파일 자체를 암호화해서 관리할 수도 있다.
  • Published on
    GKE에서 add-on 기능으로 관리형 서비스인 Google Secret Manager을 Kubernetes Secrets Store CSI Driver로 쉽게 사용할 수 있다. 하지만 add-on 버전에서는 Sync as Kubernetes Secret 기능을 제공하지 않기 때문에, Kubernetes Secret을 환경변수로 설정하는데 제약사항이 있다. 직접 Kubernetes Secrets Store CSI driver와 GCP provider driver를 설치하여 Sync as Kubernetes Secret 기능을 사용할 수 있다. 이렇게 Sync된 Kubernetes Secret을 환경변수로 주입하도록 설정할 수 있다. Google Secret Manager는 아쉽게도 하나의 Secret에 복수의 key value를 제공하지 않는다. 이번 글에서는 Google Secret Manager를 Kubernetes Secret Object와 Sync해서 사용하는 것이 바람직할지 고민해본다.