

 **このページの改善にご協力ください** 

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「**GitHub でこのページを編集する**」リンクを選択してください。

# クラスターの Amazon EKS セキュリティグループ要件を表示する
<a name="sec-group-reqs"></a>

このトピックでは、Amazon EKS クラスターのセキュリティグループの要件について説明します。

## デフォルトのクラスターセキュリティグループ
<a name="security-group-default-rules"></a>

クラスターを作成すると、Amazon EKS により `eks-cluster-sg-my-cluster-uniqueID ` という名前のセキュリティグループが作成されます。セキュリティグループには、デフォルトで次のルールがあります。


| ルールタイプ | プロトコル | ポート | 送信元 | 目的地 | 
| --- | --- | --- | --- | --- | 
|  インバウンド  |  すべて  |  すべて  |  自分  |  | 
|  アウトバウンド  |  すべて  |  すべて  |  |  0.0.0.0/0 (`IPv4`) または ::/0 (`IPv6`)  | 
|  アウトバウンド  |  すべて  |  すべて  |  |  自分 (EFA トラフィック用)  | 

デフォルトのセキュリティグループには、同じセキュリティグループの宛先に対して Elastic Fabric Adapter (EFA) トラフィックを許可するアウトバウンドルールが含まれます。これにより、クラスター内の EFA トラフィックが有効になり、AI/ML およびハイパフォーマンスコンピューティング (HPC) ワークロードに役立てることができます。詳細については、「*Amazon Elastic Compute Cloud ユーザーガイド*」の「[Amazon EC2 の AI/ML および HPC ワークロード用の Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html)」を参照してください。

**重要**  
クラスターに `0.0.0.0/0` (IPv4)、`::/0` (IPv6) へのアウトバウンドルールが必要ない場合は、削除できます。削除する場合でも、「[クラスタートラフィックの制限](#security-group-restricting-cluster-traffic)」に記載されている最低限のルールが適用されます。クラスターセキュリティグループ自体との間のトラフィックを許可するインバウンドルールまたはアウトバウンドルールを削除すると、クラスターが更新されるたびに Amazon EKS によって再作成されます。

Amazon EKS は次のタグをセキュリティグループに追加します。タグを削除した場合、Amazon EKS はクラスターが更新されるたびにこれらのタグをセキュリティグループに追加します。


| キー | 値 | 
| --- | --- | 
|   `kubernetes.io/cluster/my-cluster `   |   `owned`   | 
|   `aws:eks:cluster-name`   |   *my-cluster*   | 
|   `Name`   |   `eks-cluster-sg-my-cluster-uniqueid `   | 

Amazon EKS は、同様に作成される次のリソースに、セキュリティグループを自動的に関連付けます。
+ 2—4 エラスティックネットワークインターフェイス (これ以降、ネットワークインターフェイス) は、クラスターの作成時に作成されます。
+ 作成したマネージドノードグループ内のノードのネットワークインターフェイス。

デフォルトのルールでは、すべてのトラフィックがクラスターとノード間で自由に行き来することができます。また、任意の送信先へのすべてのアウトバウンドトラフィックが許可されています。クラスターを作成すると、オプションで独自のセキュリティグループを指定できます。その場合、Amazon EKS は、指定したセキュリティグループをクラスター用に作成するネットワークインターフェイスにも関連付けます。ただし、作成したノードグループには関連付けられません。

クラスターのセキュリティグループの ID は、AWS マネジメントコンソール のクラスターの **[Networking]** (ネットワーキング) セクションで確認できます。もしくは、次の AWS CLI コマンドを実行して確認できます。

```
aws eks describe-cluster --name my-cluster --query cluster.resourcesVpcConfig.clusterSecurityGroupId
```

## クラスタートラフィックの制限
<a name="security-group-restricting-cluster-traffic"></a>

EKS コントロールプレーンとノード間で開いているポートの数を制限する必要がある場合は、[デフォルトのアウトバウンドルール](#security-group-default-rules) `0.0.0.0/0` (IPv4)/`::/0` (IPv6) を削除し、クラスターに必要な以下の最小限のルールを追加できます。

送信元がセルフとなるすべてのトラフィック (クラスターセキュリティグループからのトラフィック) を許可する[デフォルトのインバウンドルール](#security-group-default-rules)を削除した場合、クラスターが更新されると Amazon EKS によって再作成されます。

送信先がセルフとなるすべてのトラフィック (クラスターセキュリティグループへのトラフィック) を許可する[デフォルトのアウトバウンドルール](#security-group-default-rules)を削除した場合、クラスターが更新されると Amazon EKS によって再作成されます。


| ルールタイプ | プロトコル | ポート | 目的地 | 
| --- | --- | --- | --- | 
|  アウトバウンド  |  TCP  |  443  |  クラスターセキュリティグループ  | 
|  アウトバウンド  |  TCP  |  10250  |  クラスターセキュリティグループ  | 
|  アウトバウンド (DNS)  |  TCP と UDP  |  53  |  クラスターセキュリティグループ  | 

次のトラフィックにもルールを追加する必要があります。
+ ノード間通信にノードが使用するプロトコルおよびポート。
+ アウトバウンドのインターネットアクセス。これによりノードが Amazon EKS API にアクセス可能になり、起動時のノードの登録やクラスターの詳細分析が行えます。ノードがインターネットにアクセスできない場合は、「[インターネットアクセスが制限されたプライベートクラスターをデプロイする](private-clusters.md)」でその他の考慮事項を参照してください。
+ Amazon ECR や、イメージをプルする必要があるその他のコンテナレジストリ (DockerHub など) からコンテナイメージをプルするためのノードのアクセス。詳細については、「AWS 全般のリファレンス」の「[AWS IP アドレス範囲](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)」を参照してください。
+ Amazon S3 へのノードのアクセス。
+ `IPv4` や `IPv6` アドレスが必要な個別のルール。
+ ハイブリッドノードを使用している場合は、クラスターに追加のセキュリティグループを追加して、オンプレミスのノードやポッドとの通信を許可する必要があります。詳細については、「[ハイブリッドノード用のネットワークを準備する](hybrid-nodes-networking.md)」を参照してください。

ルールの制限を検討している場合は、変更したルールを本番稼働用のクラスターに適用する前に、すべての Pod を徹底的にテストすることをお勧めします。

最初に Kubernetes `1.14` およびプラットフォームバージョン `eks.3` またはそれ以前でクラスターを最初にデプロイした場合、次の点を考慮してください。
+ コントロールプレーンおよびノードセキュリティグループがある場合もあります。これらのグループの作成時、前の表に示した制限付きルールが含まれていました。これらのセキュリティグループは不要で、削除できます。ただし、それらのグループに含まれるルールがクラスターセキュリティグループに含まれていることを確認する必要があります。
+ API を使用してクラスターを直接デプロイした場合、または AWS CLI や AWS CloudFormation などのツールを使用してクラスターを作成しており、クラスター作成時にセキュリティグループを指定しなかった場合、Amazon EKS が作成したクラスターネットワークインターフェイスに VPC のデフォルトのセキュリティグループが適用されます。

## 共有セキュリティグループ
<a name="_shared_security_groups"></a>

Amazon EKS は、共有セキュリティグループをサポートしています。
+  **[セキュリティグループの VPC 関連付け]** により、セキュリティグループは同じアカウントとリージョン内の複数の VPC に関連付けられます。
  + 「*Amazon VPC ユーザーガイド*」で、[セキュリティグループを複数の VPC に関連付ける](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-assoc.html)方法をご覧ください。
+  **[共有セキュリティグループ]** を使用すると、セキュリティグループを他の AWS アカウントと共有できます。アカウントは同じ AWS 組織内にある必要があります。
  + 「*Amazon VPC ユーザーガイド*」で、[セキュリティグループを組織と共有する](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-sharing.html)方法をご覧ください。
+ セキュリティグループは常に 1 つの AWS リージョンに制限されます。

### Amazon EKS の考慮事項
<a name="_considerations_for_amazon_eks"></a>
+ EKS には、標準セキュリティグループと同じ共有セキュリティグループまたはマルチ VPC セキュリティグループの要件があります。