AKS API サーバーのアクセス範囲の確認

公開 API サーバーへのアクセスを、必要な管理ネットワークに限定してください。

説明

公開 AKS API サーバーに許可 IP 範囲を適用しないと、不要なネットワークからも接続を試行できます。コントロールプレーンはクラスターを管理する重要なインターフェイスのため、承認済みの管理経路にアクセスを限定する必要があります。ネットワーク接続が許可されても、認証と RBAC 権限は別途必要です。

想定される影響

  • 管理エンドポイントが、より広い範囲からのスキャンやアクセス試行にさらされる場合があります。
  • 盗まれた認証情報や誤った権限設定が悪用される経路が増えるおそれがあります。

対処方法

  • 公開 API サーバーでは apiServerAccessProfile.authorizedIPRanges で、実際の管理クライアントと必要なクラスター送信元のパブリック IP 範囲を許可してください。変更前に運用と自動化の経路を確認してください。
  • この機能はプライベートクラスターには適用できないため、プライベート接続を別途管理してください。変更後は必要な管理アクセスが成功し、他の送信元からのアクセスが拒否されることを試してください。

例

過去の API 形式を比較する抜粋であり、Kubernetes 1.15.7 は現在のデプロイ用バージョンではありません。実際の適用にはサポート対象のバージョンと、省略したクラスター設定が必要です。変更後の文書用 CIDR は、実際の管理・送信元のパブリック IP 範囲に置き換えてください。

変更前

bicep
resource aksCluster 'Microsoft.ContainerService/managedClusters@2017-08-31' = {
  name: 'aksCluster'
  location: resourceGroup().location
  properties: {
    dnsPrefix: 'team-aks'
    kubernetesVersion: '1.15.7'
  }
}

許可 IP 範囲を指定していません。実際のクラスターの公開・プライベートモードも確認する必要があります。

変更後

bicep
resource aksCluster 'Microsoft.ContainerService/managedClusters@2020-02-01' = {
  name: 'aksCluster'
  location: resourceGroup().location
  properties: {
    dnsPrefix: 'team-aks'
    kubernetesVersion: '1.15.7'
    apiServerAccessProfile: {
      authorizedIPRanges: [
        '203.0.113.10/32'
        '198.51.100.0/24'
      ]
    }
  }
}

公開 API サーバーの許可範囲を指定しています。例示のアドレスをそのまま使うと、必要な運用アクセスが遮断される場合があります。

参考資料