VSO GCP 인증
VSO GCP 인증 (GCP auth)
VSO가 GKE 워크로드 아이덴티티를 사용해 Vault의 GCP 인증 방식으로 인증하는 방법을 다룹니다.
출처: 문서
본문
Vault Secrets Operator(VSO)는 Google Kubernetes Engine(GKE)의 워크로드 아이덴티티(Workload Identity) 를 사용해 Vault의 GCP 인증 방식으로 인증하는 것을 지원해요.
-
먼저 Google의 Workload Identity 사용 가이드를 따라 GKE 클러스터에서 워크로드 아이덴티티를 활성화해요. 그러면 쿠버네티스 서비스 어카운트가 Google IAM 서비스 어카운트를 가장(impersonate)할 수 있습니다.
-
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) 이상이어야 해요.
- 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 페이지에서 확인할 수 있어요.