メイン コンテンツにスキップ

ステップ 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 を使用している場合、必要なものは次のとおりです:

  • objectId
  • appId
  • tenantId
  • clientSecret

これらはすべて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}"