Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AKS と HCP Vault の組み合わせでつまずいた話 / Stumbles with AKS and HCP Vault combination

ののし
September 16, 2023

AKS と HCP Vault の組み合わせでつまずいた話 / Stumbles with AKS and HCP Vault combination

ののし

September 16, 2023
Tweet

More Decks by ののし

Other Decks in Technology

Transcript

  1. • HashiCorp が開発しているシークレット管理ツール • 様々な環境で利用可能 ◦ コミュニティ版 Vault ◦ セルフマネージドな

    Vault Enterprise ◦ マネージドサービスの HCP Vault ←本日の対象 • Dynamic Secrets という機能が特徴的(個人の感想) ◦ ユーザからのリクエストに応じて Microsoft Entra ID (Azure AD) や Database などに期限付きのユーザを作成 簡単な HashiCorp Vault の説明 とても雑な
  2. • HCP (HashiCorp Cloud Platform) で提供されている Vault のマネージドサービス • HVN

    (HashiCorp Virtual Network) を Azure に作成、 ユーザ管理の VNet とピアリングすることで HCP Vault にプライベートアクセス可能 • HCP Vault が Azure に対応したのは 2023/2 HCP Vault とは
  3. • 2023/3 に公開された Vault Secrets Operator により、Kubernetes の シークレットを Vault

    で管理することがより簡単になった • Vault Secrets Operator と HCP Vault を使えば AKS のシークレットを 安全に管理できそう HCP Vault で AKS のシークレットを管理
  4. • 既に AKS では Secret Store CSI Driver という機能を使った シークレット管理が提供されている

    ◦ Key Vault のシークレットを AKS のアプリケーション (Pod) に連携 ◦ Secret リソースとしても作成可能 ◦ Key Vault のシークレット更新も AKS 内に反映 AKS のシークレット管理 Azure Portal での有効化はこちらから
  5. つまずきポイント 1. HVN を Azure VNet をピアリングできない 2. AKS から

    HCP Vault に繋がらない 3. HCP Vault から AKS (Private Cluster) に繋がらない
  6. • 事前に HVN と VNet をピアリングする必要があ る • HCP ポータルでピアリング用

    Terraform が表 示されるので実行 ◦ 個人テナントでは ピアリング成功 ◦ 会社テナントでは ピアリング失敗 HVN と Azure VNet をピアリングできない つまずき1
  7. HVN と Azure VNet をピアリングできない • ピアリングの流れ a. HashiCorp 管理のアプリケーション

    ID を エンタープライズアプリケーションとして Microsoft Entra ID (Azure AD) に登録 b. サービスプリンシパルに VNet のカスタムロー ル割り当て c. HashiCorp アプリケーションが HVN と VNet をピアリング つまずき1
  8. • ピアリングの流れ a. HashiCorp 管理のアプリケーション ID を エンタープライズアプリケーションとして Microsoft Entra

    ID (Azure AD) に登録 b. サービスプリンシパルに VNet のカスタムロー ル割り当て c. HashiCorp アプリケーションが HVN と VNet をピアリング アプリケーション登録の権限不足 アプリケーション管理者 ロールが必要だった つまずき1
  9. • ピアリングもできたので AKS から HCP Vault のプライベート URL にアクセ スさせてみよう

     → 繋がらない AKS から HCP Vault に繋がらない HVN VNet ピアリング プライベート URL へのアクセス =Azure バックボーン経由 パブリック URL へのアクセス =インターネット経由 つまずき2
  10. VNet • ピアリングした VNet とは別に AKS 用の VNet を作成していた •

    HVN とピアリングした VNet にAKS を作成することで プライベート URL でアクセス可能になった AKS 作成時の VNet 確認不足 HVN VNet ピアリング 実際の構成 つまずき2
  11. • プライベート AKS クラスタの API サーバはパブリックアクセス不可 • Kubernetes 認証するときに HCP

    Vault から AKS に対して通信が発生 • プライベート AKS クラスタを使って認証もセキュアにしよう →繋がらない HCP Vault から AKS (Private Cluster) に繋がらない VNet HVN ピアリング プライベートアクセス失 敗 パブリックアクセスは不可 つまずき3
  12. • HCP Vault はピアリングしているが Azure の名前解決できない ◦ AKS だけでなく他のサービスもアクセス不可 •

    プライベート AKS クラスタはプライベート DNS ゾーンに レコードが登録される ◦ プライベート DNS ゾーンの仮想ネットワークリンクも不可 • HashiCorp Consul というサービスディスカバリを使えば HCP Vault から Azure サービスにプライベートアクセス可能? HCP Vault が名前解決できない つまずき3 まだ対処できてません …
  13. まとめ • HCP Vault (HVN) を Azure VNet とピアリングする ときはアプリケーション管理ロールが必要

    • AKS を作る際は “新規 VNet” or “既存 VNet” を要確認 • HCP Vault から Azure サービスへのプライベート アクセスは(現時点では)難しい