GKE コントロールプレーンの許可ネットワークの確認

GKE コントロールプレーンの IP エンドポイントへのアクセスを、必要な管理ネットワークに限定します。

説明

Master Authorized Networks は、GKE コントロールプレーンの IP エンドポイントに接続できる送信元アドレスを制限します。管理に不要なネットワークも許可すると、API へのアクセス試行の機会が増えます。DNS エンドポイントの IAM アクセス制御は別途確認する必要があります。

想定される影響

公開エンドポイントと接続経路がある場合、外部クライアントのスキャンや認証試行が API サーバーに届くおそれがあります。ネットワーク接続だけで認証や権限の検査を回避できるわけではありません。

対処方法

IP エンドポイントを使用する場合は master_authorized_networks_config.enabled: yes を設定し、cidr_blocks を承認された管理元に限定してください。内部 IP エンドポイントへの制限には、別の適用設定を確認してください。必要な VPN や踏み台ホストの経路を事前に確認し、一時的な例外を削除してください。IAM と RBAC の権限も別途制限してください。

例

アクセス制限の設定抜粋です。192.0.2.0/24 は文書用アドレスなので、管理クライアントが実際に使用する承認済みの送信元範囲に置き換えてください。

変更前

yaml
- name: create a cluster
  google.cloud.gcp_container_cluster:
    name: my-cluster
    location: us-central1-a
    auth_kind: serviceaccount
    master_authorized_networks_config:
      cidr_blocks:
        - cidr_block: 192.0.2.0/24
      enabled: no
    state: present

- name: create a third cluster
  google.cloud.gcp_container_cluster:
    name: my-third-cluster
    location: us-central1-a
    auth_kind: serviceaccount
    state: present

最初のタスクはアドレスを指定していますが、機能を無効にしています。2 番目の設定省略だけでは、実際のエンドポイントが公開されているとは判断できません。

変更後

yaml
- name: create a cluster
  google.cloud.gcp_container_cluster:
    name: my-cluster
    initial_node_count: 2
    location: us-central1-a
    auth_kind: serviceaccount
    master_authorized_networks_config:
      cidr_blocks:
        - cidr_block: 192.0.2.0/24
      enabled: yes
    state: present

管理用 CIDR の許可リストを有効にしています。内部 IP エンドポイントへの適用設定と、必要な運用アクセスの許可は別途確認してください。

参考資料