

 **協助改進此頁面** 

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將安全群組指派至個別 Pod
<a name="security-groups-for-pods"></a>

 **適用於**：包含 Amazon EC2 執行個體的 Linux 節點

 **適用於**：私有子網路

Pod 的安全群組整合了 Amazon EC2 安全群組與 Kubernetes Pod。您可以使用 Amazon EC2 安全群組定義規則，允許您部署的 Pod 到許多 Amazon EC2 執行個體類型和 Fargate 上執行的節點之間的對內和對外網路流量。如需此功能的詳細說明，請參閱 [Pod 的安全群組簡介](https://aws.amazon.com/blogs/containers/introducing-security-groups-for-pods)部落格文章。

## 與適用於 Kubernetes 功能的 Amazon VPC CNI 外掛程式相容
<a name="security-groups-for-pods-compatability"></a>

您可針對具備以下功能的 Pod 使用安全群組：
+ IPv4 來源網路位址轉譯 - 如需詳細資訊，請參閱 [啟用 Pod 的傳出網際網路存取](external-snat.md)。
+ 叢集、Pod 及服務的 IPv6 位址 - 如需詳細資訊，請參閱 [了解叢集、Pod 與服務的 IPv6 位址](cni-ipv6.md)。
+ 使用 Kubernetes 網路政策來限制流量 - 如需詳細資訊，請參閱 [使用 Kubernetes 網路政策限制 Pod 流量](cni-network-policy.md)。

## 考量事項
<a name="sg-pods-considerations"></a>

部署 Pod 的安全群組之前，請考慮下列限制和條件：
+ Pod 的安全群組無法與 Windows 節點或 EKS Auto 模式搭配使用。
+ Pod 的安全群組可與為包含 Amazon EC2 節點的 `IPv6` 系列設定的叢集搭配使用，方法是使用 1.16.0 版或更新的 Amazon VPC CNI 外掛程式。Pod 的安全群組可與為僅包含 Fargate 節點的 `IPv6` 系列設定的叢集搭配使用，方法是使用 1.7.7 版或更新的 Amazon VPC CNI 外掛程式。如需詳細資訊，請參閱[了解叢集、Pod 與服務的 IPv6 位址](cni-ipv6.md) 
+ Pod 的安全群組受大多數 [Nitro 型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances) Amazon EC2 執行個體系列支援，但並非受所有系列世代皆支援。例如，支援 `m5`、`c5`、`r5`、`m6g`、`c6g` 和 `r6g` 執行個體系列和世代。不支援 `t` 系列中的執行個體類型。如需完整的支援執行個體類型清單，請參閱 GitHub 上的 [limits.go](https://github.com/aws/amazon-vpc-resource-controller-k8s/blob/v1.5.0/pkg/aws/vpc/limits.go) 檔案。您的節點必須為該檔案列出的具有 `IsTrunkingCompatible: true` 的執行個體類型之一。
+ 如果您使用的是自訂聯網和 Pod 的安全群組，則會使用 Pod 安全群組指定的安全群組，而不是 `ENIConfig` 指定的安全群組。
+ 如果您使用的是版本 `1.10.2` 或更新版本的 Amazon VPC CNI 外掛程式，且 Pod 規格包括 `terminationGracePeriodSeconds` 設定，則該設置的值不能為零。
+ 如果您使用的是版本 `1.10` 或更舊版本的 Amazon VPC CNI 外掛程式或預設設定為 `POD_SECURITY_GROUP_ENFORCING_MODE`=`strict` 的版本 `1.11`，則使用具有設定為 `externalTrafficPolicy` 的 `Local` 的 `NodePort` 和 `LoadBalancer` 類型的 Kubernetes 服務不支援指派安全群組至其的 Pod。如需將負載平衡器與執行個體目標搭配使用的詳細資訊，請參閱 [透過 Network Load Balancer 路由 TCP 與 UDP 流量](network-load-balancing.md)。
+ 如果您使用的是版本 `1.10` 或更舊版本的 Amazon VPC CNI 外掛程式或預設設定為 `POD_SECURITY_GROUP_ENFORCING_MODE`=`strict` 的版本 `1.11`，來自具有指派安全群組之 Pod 的對外流量會停用來源 NAT，以便套用輸出安全群組規則。若要存取網際網路，必須在部署在使用 NAT 閘道或執行個體設定的私有子網路中的節點上啟動具有指派安全群組的 Pod。已指派安全群組部署至公有子網路的 Pod 無法存取網際網路。

  如果您使用的是版本 `1.11` 或更新版本的搭配 `POD_SECURITY_GROUP_ENFORCING_MODE`=`standard` 的外掛程式，則以 VPC 外部為目標的 Pod 流量會轉換為執行個體主要網路介面的 IP 位址。對於此流量，將使用主要網路介面的安全群組中的規則，而不是使用 Pod 安全群組中的規則。
+ 若要將 Calico 網路政策與關聯安全群組的 Pod 搭配使用，則必須使用 `1.11.0` 版或更新版本的 Amazon VPC CNI 外掛程式，並設定為 `POD_SECURITY_GROUP_ENFORCING_MODE`=`standard`。否則，具有關聯的安全群組之 Pod 的流量流出和流向不受 Calico 網路政策強制執行的約束，且僅限於 Amazon EC2 安全群組強制執行。若要更新 Amazon VPC CNI 版本，請參閱 [使用 Amazon VPC CNI 將 IP 指派給 Pod](managing-vpc-cni.md) 
+ Pod 在 Amazon EC2 節點上執行，這些節點使用的安全群組位於使用 [NodeLocal DNSCache](https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/) 的叢集，僅受 Amazon VPC CNI 外掛程式 `1.11.0` 版或更新版本支援，且設定為 `POD_SECURITY_GROUP_ENFORCING_MODE`=`standard`。若要更新您的 Amazon VPC CNI 外掛程式版本，請參閱 [使用 Amazon VPC CNI 將 IP 指派給 Pod](managing-vpc-cni.md) 
+ Pod 的安全群組可能會導致具有高流失率的 Pod 產生更高的 Pod 啟動延遲。原因是資源控制器的速率限制。
+ EC2 安全群組範圍為 Pod 層級 - 如需詳細資訊，請參閱[安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。

  若您設定 `POD_SECURITY_GROUP_ENFORCING_MODE=standard` 和 `AWS_VPC_K8S_CNI_EXTERNALSNAT=false`，則目的地為 VPC 外部端點的流量會使用節點的安全群組，而不是 Pod 的安全群組。