VSO GCP 인증

VSO GCP 인증 (GCP auth)

VSO가 GKE 워크로드 아이덴티티를 사용해 Vault의 GCP 인증 방식으로 인증하는 방법을 다룹니다.

출처: 문서

본문

Vault Secrets Operator(VSO)는 Google Kubernetes Engine(GKE)의 워크로드 아이덴티티(Workload Identity) 를 사용해 Vault의 GCP 인증 방식으로 인증하는 것을 지원해요.

  1. 먼저 Google의 Workload Identity 사용 가이드를 따라 GKE 클러스터에서 워크로드 아이덴티티를 활성화해요. 그러면 쿠버네티스 서비스 어카운트가 Google IAM 서비스 어카운트를 가장(impersonate)할 수 있습니다.

  2. Vault 인스턴스에 적절한 인증 역할(role)을 만들어요.

$ vault write auth/gcp/role/ \
    type="iam" \
    policies="default" \
    max_jwt_exp=3600 \
    bound_service_accounts="<SA>@<PROJECT>.iam.gserviceaccount.com"

Terraform으로도 동일한 역할을 만들 수 있어요.

resource "vault_gcp_auth_backend_role" "gcp_role" {
  backend                = "auth/gcp"
  role                   = "<ROLE_NAME>"
  type                   = "iam"
  token_policies         = "default"
  max_jwt_exp            = 3600
  bound_service_accounts = [
    "<SA>@<PROJECT>.iam.gserviceaccount.com",
  ]
}

참고: max_jwt_exp는 1시간(3600) 이상이어야 해요.

  1. VSO용 인증 객체를 만들어요.
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultAuth
metadata:
  name: vaultauth-gcp-example
  namespace: <NAMESPACE>
spec:
  vaultConnectionRef: <CONNECTION_NAME>
  mount: gcp
  method: gcp
  gcp:
    role: <ROLE_NAME>
    workloadIdentityServiceAccount: <KSA_NAME>

Terraform은 워크로드 아이덴티티를 지원해요. Terraform으로 GKE 클러스터를 관리한다면 GKE 모듈워크로드 아이덴티티 서브모듈을 통해 워크로드 아이덴티티를 지원합니다.

API

GCP VaultAuth 옵션의 전체 목록은 VSO API 페이지에서 확인할 수 있어요.

더 알아보기 (Learn more)