search
LoginSignup
0
Organization

KeyVaultに格納したシークレットをAKSで読みだす Managed Identity 編

AKSクラスタとKeyVaultを連携するにはakv2k8sを使うのが楽らしい。

akv2k8sの公式ページ
https://akv2k8s.io/

が、チュートリアル を見ると

az keyvault set-policy -n akv2k8s-test --spn <spn for akv2k8s> --secret-permissions get 

とAKSに Service Principal が付与されている前提で、読みだしパーミッションを設定されていらっしゃる。
Azureはニワカなのでよくわかっていなかったのですが、Azure内で完結するなら、システム割り当ての Managed Identity 使って認証するのがよさそうです。

Azure リソースのマネージド ID とは
https://docs.microsoft.com/ja-jp/azure/active-directory/managed-identities-azure-resources/overview

AKSクラスタの Managed Identity は、クラスタを作成した際に自動的に追加される、リソースグループ MC_[リソースグループ名]_[クラスタ名] 内にある、 種類マネージドIDの [クラスタ名]-aks-agentpool を見ると書いてあります。
オブジェクト(プリンシパル)ID というやつですな。 カッコ書きとかいらないので、呼称を統一してほしい...

あとは、KeyVaultのアクセスポリシーに、調べた Managed Identityでシークレット読み出し権限を付与するだけ。
わかってみれば簡単でした。

  • 参考

Azure Kubernetes ServiceのPodからManaged identities(旧MSI)認証でKey Vaultの情報を取得する

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0