ステップ 4 - AKS クラスターが Key Vault にアクセスできるようにする
認証には2つの方法があります。ご自身に該当するものを選択してください:
- 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}"