自動作成されるファイアウォール ルール

このページでは、Google Kubernetes Engine(GKE)が Google Cloud で自動的に作成するファイアウォール ルールについて説明します。

デフォルトの Google Cloud プロジェクトには、このページに掲載されている GKE 固有のルールの他に、事前入力されたファイアウォール ルールも含まれています。

ファイアウォール ルール

GKE は、次のリソースを作成するときに、自動的にファイアウォール ルールを作成します。

  • GKE クラスタ
  • GKE Service
  • GKE Ingress

自動作成されるファイアウォール ルールの優先度は、すべて 1000 です。これは、ファイアウォール ルールのデフォルト値です。ファイアウォールの動作をより細かく制御する必要がある場合は、より高い優先度のファイアウォール ルールを作成できます。優先度が高いファイアウォール ルールは、自動作成されたファイアウォール ルールより先に適用されます。

GKE クラスタのファイアウォール ルール

GKE は、クラスタの作成時に、次の上り(内向き)ファイアウォール ルールを作成します。

名前 目的 ソース 送信先 プロトコルとポート
gke-[cluster-name]-[cluster-hash]-master 限定公開クラスタの場合のみ。コントロール プレーンにクラスタノード上の Kubelet と metrics-server へのアクセスを許可します。 マスターの CIDR(/28) ノードタグ TCP: 443(metrics-server)と TCP: 10250(Kubelet)
gke-[cluster-name]-[cluster-hash]-ssh 一般公開クラスタの場合のみ。コントロール プレーンにクラスタノード上の Kubelet と metrics-server へのアクセスを許可します。

ゾーンクラスタの場合、マスターのパブリック IP。これは、クラスタ エンドポイントと同じ値です。

リージョン クラスタの場合、マスターのパブリック IP。これらの値は、クラスタ エンドポイントと異なります。

ノードタグ TCP: 22
gke-[cluster-name]-[cluster-hash]-vms Kubernetes ネットワーク モデルの要件に従って、ノード上のエージェント(システム デーモンや Kubelet など)がノード上の Pod と通信することを許可します。ノードのホスト ネットワーク内の Pod が、NAT を介さずにすべてのノード上のすべての Pod と通信することを許可します。VPC 内の他の VM がノードと通信することを許可します。 ノードの CIDR、10.128.0.0/9(auto-networks)、クラスタのサブネット(custom-networks) ノードタグ TCP: 1~65535、UDP: 1~65535、ICMP
gke-[cluster-name]-[cluster-hash]-all Kubernetes ネットワーク モデルの要件に従って、クラスタ内のすべての Pod 間のトラフィックを許可します。

Pod の CIDR

連続していないマルチ Pod CIDR が有効になっているクラスタについては、クラスタで使用されるすべての Pod CIDR ブロック。

ノードタグ TCP、UDP、SCTP、ICMP、ESP、AH

GKE Service のファイアウォール ルール

GKE は、Service の作成時に、次の上り(内向き)ファイアウォール ルールを作成します。

名前 目的 ソース 送信先 プロトコルとポート
k8s-fw-[loadbalancer-hash] 上り(内向き)トラフィックが Service に到達することを許可します。 Service マニフェストで指定します。デフォルトは 0.0.0.0/0(任意のソース) ノードタグ Service マニフェストで指定したポートに対する TCP と UDP。
k8s-[cluster-id]-node-http-hc externalTrafficPolicyCluster に設定されている場合、ネットワーク ロードバランサ Service のヘルスチェックを許可します。
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
ノードタグ TCP: 10256
k8s-[loadbalancer-hash]-http-hc externalTrafficPolicyLocal に設定されている場合、ネットワーク ロードバランサ Service のヘルスチェックを許可します。
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
ノードタグ NodePort ヘルスチェックで指定されたポートに対する TCP。
k8s-[cluster-id]-node-hc externalTrafficPolicyCluster に設定されている場合、内部 TCP / UDP ロードバランサ Service のヘルスチェックを許可します。
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
ノードタグ TCP: 10256
[loadbalancer-hash]-hc externalTrafficPolicyLocal に設定されている場合、内部 TCP / UDP ロードバランサ Service のヘルスチェックを許可します。
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
ノードタグ NodePort ヘルスチェックで指定されたポートに対する TCP。
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash] 内部ロードバランサのサブセット設定が有効になっている場合に、上り(内向き)トラフィックが Service に到達することを許可します。 Service マニフェストで指定します。デフォルトは 0.0.0.0/0(任意のソース) ノードタグ Service マニフェストで指定したポートに対する TCP と UDP。
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-fw externalTrafficPolicyLocal に設定され、内部ロードバランサのサブセット設定が有効になっている場合に、Service のヘルスチェックを許可します。
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
ノードタグ NodePort ヘルスチェックで指定されたポートに対する TCP。
k8s2-[cluster-id]-l4-shared-hc externalTrafficPolicyCluster に設定され、内部ロードバランサのサブセット設定が有効になっている場合に、Service のヘルスチェックを許可します。
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
ノードタグ TCP: 10256
gke-[cluster-name]-[cluster-hash]-mcsd コントロール プレーンにマルチクラスタ サービスのクラスタノード上の kubelet と metrics-server へのアクセスを許可します。このルールの優先度は 900 です。 ヘルスチェックの IP アドレス ノードタグ TCP、UDP、SCTP、ICMP、ESP、AH

GKE Ingress のファイアウォール ルール

GKE は、Ingress の作成時に、次の上り(内向き)ファイアウォール ルールを作成します。

名前 目的 ソース 送信先 プロトコルとポート
k8s-fw-l7-[random-hash]

NodePort Service サービスまたはネットワーク エンドポイント グループ(NEG)ヘルスチェックを許可します。

このルールは、最初の Ingress リソースが作成されたときに Ingress コントローラによって作成されます。このルールは、さらに Ingress リソースが作成されたときに Ingress コントローラによって更新される可能性があります。

GKE v1.17.13-gke.2600 以降の場合:
  • 130.211.0.0/22
  • 35.191.0.0/16
  • ユーザー定義のプロキシ専用サブネットの範囲(内部 HTTP(S) ロードバランサの場合)。
ノードタグ TCP: 30000~32767、TCP: 80(内部 HTTP(S) ロードバランサの場合)、TCP: すべてのコンテナ ターゲット ポート(NEG の場合)

次のステップ