MS_PrivateAKSCluster - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
AKS Master API(AKSをセキュアに利用するためのテクニカルリファレンス)
をプライベート化する方法。
補足(何を守る話か): ここで対象にしているのは
コントロール プレーン(API サーバー)への到達経路であって、
ワークロード(Pod)の公開・非公開とは別の話である。【この記事の対象】 kubectl / CI ──▶ AKS API サーバー(コントロール プレーン) 【別の話】 利用者 ──▶ Ingress / Service(ワークロードの公開) ノード ──▶ インターネット(アウトバウンド。→ AKSのアウトバウンドをAzure Firewallで制限する。)
- これは、Azure Private Endpoint の方式と ≒ と思われる。
- 具体的には、
az aks createの際に--enable-private-clusterオプションを追加する。
az aks create -n <private-cluster-name> -g <private-cluster-resource-group> --load-balancer-sku standard --enable-private-cluster補足(原文の推測は正しい): プライベート クラスターは、実際に
API サーバーへの Private Endpoint を
ノードの VNET に作成する実装である。
併せてprivatelink.<リージョン>.azmk8s.ioという
プライベート DNS ゾーンが作られる。運用上の注意点は次の 2 つ。
kubectlを VNET の外から実行できなくなる。
踏み台 VM、Azure Bastion、
セルフホストの CI エージェント、
またはaz aks command invoke(クラスタ内でコマンドを代行実行)が必要になる。- 名前解決が要。オンプレミスや別 VNET から使う場合、
プライベート DNS ゾーンへの参照(VNET リンクや条件付きフォワーダー)を
設定しないと到達できない。クラスター作成後にプライベート/パブリックを切り替えることはできない
(再作成が必要)ため、設計時に決める必要がある。
- これは、Azure Load Balancer の方式と ≒ と思われる。
- 具体的には、
az aks createの際に--api-server-authorized-ip-rangesオプションを追加する。
az aks create -n <private-cluster-name> -g <private-cluster-resource-group> --api-server-authorized-ip-ranges 73.140.245.0/24
az aks update -n <private-cluster-name> -g <private-cluster-resource-group> --api-server-authorized-ip-ranges 73.140.245.0/24補足(2 つの方式の関係): この 2 つは排他である。
プライベート クラスター 承認済み IP 範囲 API サーバーの公開 非公開(VNET 内の私設 IP) 公開されるが送信元 IP で制限 到達方法 VNET 内 / VPN / ExpressRoute から インターネットから(許可 IP のみ) 併用 不可(プライベート クラスターでは指定できない) - 運用の手間 踏み台や DNS が必要 出口 IP の管理が必要 「閉域が必須」ならプライベート クラスター、
「運用性を保ちつつ絞りたい」なら承認済み IP 範囲、という選択になる。
承認済み IP 範囲を使う場合、CI/CD の出口 IP や
運用端末の IP が変わるたびに更新が要る点が実務上の負担になる。なお、現在は第三の選択肢として API Server VNet Integration があり、
API サーバーを VNET のサブネットに直接統合できる
(プライベート クラスターより DNS 周りが簡素になる)。
- プライベート Azure Kubernetes Service クラスターを作成する
https://learn.microsoft.com/ja-jp/azure/aks/private-clusters - Azure Kubernetes Service (AKS) での API サーバーの承認済み IP 範囲
https://learn.microsoft.com/ja-jp/azure/aks/api-server-authorized-ip-ranges
Tags: 移行, クラウド, コンテナ, Azure, AKS, IaC, セキュリティ, 通信技術