$30 off During Our Annual Pro Sale. View Details »

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. AKS と HCP Vault の組み合わせで
    つまずいた話
    Japan Azure User Group 13周年イベント
    2023/9/16

    View Slide

  2. 自己紹介
    Name
    Taichi Nonoshita
    X
    @nnstt1
    Company
    株式会社エーピーコミュニケーションズ
    Love
    3人の息子たち(3歳・1歳双子)
    めざせ Azure 資格全冠!
    (まだ折り返してない …)

    View Slide

  3. お話しすること・しないこと
    お話しすること
    ● HashiTalks のセッションを準備するにあ
    たって Azure でつまずいた経験
    お話ししないこと
    ● AKS の詳しい説明
    ● HashiCorp Vault の詳しい説明

    View Slide

  4. ● HashiCorp が開発しているシークレット管理ツール
    ● 様々な環境で利用可能
    ○ コミュニティ版 Vault
    ○ セルフマネージドな Vault Enterprise
    ○ マネージドサービスの HCP Vault ←本日の対象
    ● Dynamic Secrets という機能が特徴的(個人の感想)
    ○ ユーザからのリクエストに応じて Microsoft Entra ID (Azure AD) や
    Database などに期限付きのユーザを作成
    簡単な HashiCorp Vault の説明
    とても雑な

    View Slide

  5. ● HCP (HashiCorp Cloud Platform) で提供されている
    Vault のマネージドサービス
    ● HVN (HashiCorp Virtual Network) を Azure に作成、
    ユーザ管理の VNet とピアリングすることで
    HCP Vault にプライベートアクセス可能
    ● HCP Vault が Azure に対応したのは 2023/2
    HCP Vault とは

    View Slide

  6. ● 2023/3 に公開された Vault Secrets Operator により、Kubernetes の
    シークレットを Vault で管理することがより簡単になった
    ● Vault Secrets Operator と HCP Vault を使えば AKS のシークレットを
    安全に管理できそう
    HCP Vault で AKS のシークレットを管理

    View Slide

  7. AKS にはシークレット管理の機能があるのでは?

    View Slide

  8. ● 既に AKS では Secret Store CSI Driver という機能を使った
    シークレット管理が提供されている
    ○ Key Vault のシークレットを AKS のアプリケーション (Pod) に連携
    ○ Secret リソースとしても作成可能
    ○ Key Vault のシークレット更新も AKS 内に反映
    AKS のシークレット管理
    Azure Portal での有効化はこちらから

    View Slide

  9. 好きなサービス・ツール同士を掛け合わせたい(浪漫)
    が、つまずきも多い

    View Slide

  10. つまずきポイント
    1. HVN を Azure VNet をピアリングできない
    2. AKS から HCP Vault に繋がらない
    3. HCP Vault から AKS (Private Cluster) に繋がらない

    View Slide

  11. ● 事前に HVN と VNet をピアリングする必要があ

    ● HCP ポータルでピアリング用 Terraform が表
    示されるので実行
    ○ 個人テナントでは ピアリング成功
    ○ 会社テナントでは ピアリング失敗
    HVN と Azure VNet をピアリングできない
    つまずき1

    View Slide

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

    View Slide

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

    View Slide

  14. ● ピアリングもできたので AKS から HCP Vault のプライベート URL にアクセ
    スさせてみよう
     → 繋がらない
    AKS から HCP Vault に繋がらない
    HVN VNet
    ピアリング
    プライベート URL へのアクセス
    =Azure バックボーン経由
    パブリック URL へのアクセス
    =インターネット経由
    つまずき2

    View Slide

  15. VNet
    ● ピアリングした VNet とは別に AKS 用の VNet を作成していた
    ● HVN とピアリングした VNet にAKS を作成することで
    プライベート URL でアクセス可能になった
    AKS 作成時の VNet 確認不足
    HVN VNet
    ピアリング
    実際の構成
    つまずき2

    View Slide

  16. ● プライベート AKS クラスタの API サーバはパブリックアクセス不可
    ● Kubernetes 認証するときに HCP Vault から AKS に対して通信が発生
    ● プライベート AKS クラスタを使って認証もセキュアにしよう
    →繋がらない
    HCP Vault から AKS (Private Cluster) に繋がらない
    VNet
    HVN
    ピアリング
    プライベートアクセス失

    パブリックアクセスは不可
    つまずき3

    View Slide

  17. ● HCP Vault はピアリングしているが Azure の名前解決できない
    ○ AKS だけでなく他のサービスもアクセス不可
    ● プライベート AKS クラスタはプライベート DNS ゾーンに
    レコードが登録される
    ○ プライベート DNS ゾーンの仮想ネットワークリンクも不可
    ● HashiCorp Consul というサービスディスカバリを使えば
    HCP Vault から Azure サービスにプライベートアクセス可能?
    HCP Vault が名前解決できない
    つまずき3
    まだ対処できてません …

    View Slide

  18. まとめ
    ● HCP Vault (HVN) を Azure VNet とピアリングする
    ときはアプリケーション管理ロールが必要
    ● AKS を作る際は “新規 VNet” or “既存 VNet” を要確認
    ● HCP Vault から Azure サービスへのプライベート
    アクセスは(現時点では)難しい

    View Slide