4단계 - AKS 클러스터가 Key Vault에 액세스할 수 있도록 설정
인증에는 두 가지 방법이 있습니다. 본인에게 해당하는 방법을 선택하세요:
- 4A - Managed identity (권장)
- 4B - Service principal
- 이 방법은 클러스터에서 managed identities를 사용할 수 없거나 원하지 않는 경우에만 사용하세요.
4A - Managed identity
AKS 클러스터가 managed identities로 생성되지 않은 경우, 다음을 통해 추가할 수 있습니다:
az aks update -g "${rgp}" -n "${aksname}" --enable-managed-identity
Key Vault secrets를 Kubernetes secrets와 동기화하려면 AKS kubelet identity에 Key Vault에 대한 get 및 list 액세스 권한이 필요합니다.
- 먼저 kubelet identity의 object ID를 가져옵니다:
az aks show -g "${rgp}" -n "${aksname}"
그러면 큰 JSON 응답이 반환됩니다. 다음을 찾을 때까지 스크롤하세요:
identityProfile → kubeletidentity → objectId

- 이제 Key Vault에 액세스 권한을 설정합니다:
az keyvault set-policy --name "${kvname}" --object-id "${objectid}" --secret-permissions get list
4B - Service principal
service principal을 사용하는 경우 다음이 필요합니다:
objectIdappIdtenantIdclientSecret
이 항목들은 모두 Azure Active Directory에서 찾을 수 있습니다.
az keyvault set-policy --name "${kvname}" --object-id "${objectid}" --secret-permissions get list
- Kubernetes secret을 생성합니다:
kubectl create secret generic keyvault-service-principal \
--from-literal=ClientID="${appid}" \
--from-literal=ClientSecret="${clientsecret}"