AKS API サーバーのプライベートアクセス設定の確認

先に管理経路を用意し、API へのアクセスを必要な運用担当者に限定してください。

説明

AKS の制御プレーンはクラスター全体を管理するインターフェイスです。公開 API エンドポイントの許可範囲が広いと、外部からの接続試行が増える場合があります。公開エンドポイントは認証なしのアクセスを意味せず、プライベートクラスターでも認証と最小権限が必要です。

想定される影響

  • クラスター API が外部のスキャンや攻撃試行の対象になる場合があります。
  • アクセス制限を誤って変更すると、管理ツールやデプロイ処理が停止する場合があります。

対処方法

  • 内部アクセスだけが必要なら private_cluster_enabled = true を検討し、管理ネットワークのルーティングと DNS を先に設定してください。VPN や ExpressRoute など必要な接続をテストしてください。
  • 公開 API が必要なら承認された IP 範囲に限定し、認証と RBAC を維持してください。Terraform 計画でクラスターの置換を確認し、ワークロードと管理経路の移行を準備してください。

例

API の公開設定だけを比較する抜粋であり、ノードプールや ID など他の必須設定は省略しています。既存クラスターへ適用する前に、プライベート接続と DNS を用意してください。

変更前

hcl
resource "azurerm_kubernetes_cluster" "example" {
  name                = "example-aks1"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  dns_prefix          = "exampleaks1"

  private_cluster_enabled = false
}

変更後

hcl
resource "azurerm_kubernetes_cluster" "example" {
  name                = "example-aks1"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  dns_prefix          = "exampleaks1"

  private_cluster_enabled = true
}

補足:

  • 変更前: プライベートクラスターを使用しません。実際の公開 API 制限と認証は別途確認が必要です。
  • 変更後: API サーバーのプライベートアクセスを使用します。アプリケーションの LoadBalancer や Ingress まで非公開になる設定ではありません。

参考資料