このトピックでは、GKE on AWS に必要な AWS セキュリティ グループ(SG)について説明します。
管理サービスをインストールするか、既存の AWS VPC を使用すると、anthos-gke
によってセキュリティ グループが作成されます。追加のセキュリティ グループ ID のリストを使用して、AWSCluster CRD と AWSNodePool CRD を構成できます。
次の図は、GKE on AWS がセキュリティ グループを使用して Google Cloud サービスと AWS サービスに接続する方法の概要を示しています。
管理サービスのセキュリティ グループ
管理サービスのセキュリティ グループを使用すると、HTTPS で管理サービス API にアクセスできます。踏み台インスタンスが構成されている場合は、踏み台インスタンスのセキュリティ グループからのインバウンドが許可されます。
GKE on AWS 環境を既存の AWS VPC 内に作成する場合は、次の接続を許可するセキュリティ グループが必要です。
タイプ | プロトコル | ポート | アドレス | 説明 |
---|---|---|---|---|
インバウンド | TCP | 443 | VPC CIDR | AWS VPC からの HTTPS を許可します。 |
インバウンド | TCP | 22 | 踏み台インスタンスの SG | 踏み台インスタンスからの SSH トンネリングを許可します(専用 VPC にのみ含まれます)。 |
アウトバウンド | TCP | 80 | 0.0.0.0/0 | 送信 HTTP を許可します。 |
アウトバウンド | TCP | 443 | 0.0.0.0/0 | 送信 HTTPS を許可します。 |
送信ドメインへのアクセス
管理サービスには、次のドメインへのアウトバウンド アクセスが必要です。
gkeconnect.googleapis.com
gkehub.googleapis.com
oauth2.googleapis.com
storage.googleapis.com
www.googleapis.com
gcr.io
k8s.gcr.io
EC2-REGION.ec2.archive.ubuntu.com
EC2-REGION は、GKE on AWS が実行されている AWS EC2 リージョンに置き換えます。例: us-west-1.ec2.archive.ubuntu.com/
。
Prometheus と Kiali で Cloud Service Mesh を使用している場合は、次のドメインからのアウトバウンド アクセスを許可します。
docker.io
quay.io
踏み台インスタンスのセキュリティ グループ(省略可)
グループによって許可された踏み台インスタンスのセキュリティ グループ接続を使用して、GKE on AWS の管理サービスとユーザー クラスタに接続します。このグループはオプションであり、anthos-gke
を使用して専用の VPC に GKE on AWS インストール環境を作成する場合にのみ含まれます。
タイプ | プロトコル | ポート | アドレス | 説明 |
---|---|---|---|---|
インバウンド | TCP | 22 | AWSManagementService 構成の bastionAllowedSSHCIDRBlocks からの CIDR ブロック |
踏み台インスタンスへの SSH 接続を許可します。 |
アウトバウンド | TCP | 22 | 0.0.0.0/0 | 送信 SSH を許可します。 |
アウトバウンド | TCP | 80 | 0.0.0.0/0 | 送信 HTTP を許可します。 |
アウトバウンド | TCP | 443 | 0.0.0.0/0 | 送信 HTTPS を許可します。 |
コントロール プレーンのセキュリティ グループ
コントロール プレーンのセキュリティ グループでは、コントロール プレーン ノードと管理サービス間の接続、コントロール プレーン ノードとノードプール間の接続が許可されます。
コントロール プレーンは、AWS ネットワーク ロードバランサ(NLB)の背後にある 3 つの EC2 インスタンスで構成されます。これらのインスタンスは、他のノード、ノードプール ノード、NLB の etcd インスタンスからの接続を受け入れます。GKE on AWS コンポーネントを更新するために、すべてのアウトバウンド HTTP / HTTPS トラフィックが許可されます。
セキュリティ グループ ID は、AWSCluster 定義で指定します。
タイプ | プロトコル | ポート | アドレス | 説明 |
---|---|---|---|---|
インバウンド | TCP | 2380 | この SG | コントロール プレーンの etcd レプリケーションを許可します。 |
インバウンド | TCP | 2381 | この SG | コントロール プレーンの etcd イベント レプリケーションを許可します。 |
インバウンド | TCP | 443 | ノードプール SG | ノードプール ノードからの HTTPS を許可します。 |
インバウンド | TCP | 443 | AWS VPC CIDR 範囲 | ロードバランサと管理サービスからの HTTPS を許可します。 |
インバウンド | TCP | 11872 | AWS VPC CIDR 範囲 | ロードバランサを HTTP ヘルスチェックします。 |
アウトバウンド | TCP | 22 | ノードプール SG | ノードプールへの SSH トンネリングを許可します(クラスタ v1.20 以下の場合)。 |
インバウンド | TCP | 8132 | ノードプール SG | ノードプールからの Konnectivity 接続を許可します(クラスタ v1.21 以降の場合)。 |
アウトバウンド | TCP | 80 | 0.0.0.0/0 | 送信 HTTP を許可します。 |
アウトバウンド | TCP | 443 | 0.0.0.0/0 | アウトバウンド HTTPS を許可します。 |
アウトバウンド | TCP | 2380 | この SG | コントロール プレーンの etcd レプリケーションを許可します。 |
アウトバウンド | TCP | 2381 | この SG | コントロール プレーンの etcd イベント レプリケーションを許可します。 |
アウトバウンド | TCP | 10250 | ノードプール SG | コントロール プレーンから Kubelet への接続を許可します。 |
ノードプールのセキュリティ グループ
ノードプールのセキュリティ グループでは、コントロール プレーンと他のノードからの接続が許可されます。セキュリティ グループ ID は AWSNodePool 定義で指定します。
タイプ | プロトコル | ポート | アドレス | 説明 |
---|---|---|---|---|
インバウンド | TCP | すべて | この SG | Pod 間の通信を許可します。 |
インバウンド | TCP | 22 | コントロール プレーン SG | コントロール プレーンからの SSH トンネリングを許可します(クラスタ v1.20 以下の場合)。 |
アウトバウンド | TCP | 8132 | コントロール プレーン SG | コントロール プレーンへの Konnectivity 接続を許可します(クラスタ v1.21 以降の場合)。 |
インバウンド | TCP | 443 | コントロール プレーン SG | コントロール プレーンから Kubelet への接続を許可します。 |
インバウンド | TCP | 10250 | コントロール プレーン SG | コントロール プレーンから Kubelet への接続を許可します。 |
アウトバウンド | TCP | すべて | この SG | Pod 間の通信を許可します。 |
アウトバウンド | TCP | 80 | 0.0.0.0/0 | 送信 HTTP を許可します。 |
アウトバウンド | TCP | 443 | 0.0.0.0/0 | 送信 HTTPS を許可します。 |