本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon EMR on EKS 安全最佳實務
在您開發和實作自己的安全政策時,可考慮使用 Amazon EMR on EKS 提供的多種安全功能。以下最佳實務為一般準則,並不代表完整的安全解決方案。這些最佳實務可能不適用或無法滿足您的環境需求,因此請將其視為實用建議就好,而不要當作是指示。
注意
如需安全最佳實務的詳細資訊,請參閱 Amazon EMR on EKS 安全最佳實務。
套用最低權限準則
Amazon EMR on EKS 為使用 IAM 角色 (例如執行角色) 的應用程式提供精細存取政策。這些執行角色會透過 IAM 角色的信任政策映射至 Kubernetes 服務帳戶。Amazon EMR on EKS 會在已註冊的 Amazon EKS 命名空間內建立 Pod,它們可執行使用者提供的應用程式碼。執行應用程式碼的作業 Pod 會在連線至其他 AWS 服務時擔任執行角色。建議只授予作業所需的最低權限集,例如覆蓋應用程式和日誌目的地的存取權限。我們還建議定期以及在應用程式碼發生變更時審核作業許可。
端點的存取控制清單
僅可針對已設定為在 VPC 中至少使用一個私有子網路的 EKS 叢集建立受管端點。此組態會限制受管端點建立的負載平衡器的存取,以便只能從 VPC 存取它們。若要進一步增強安全性,建議使用這些負載平衡器設定安全群組,以便它們可以將傳入流量限制到選取的一組 IP 地址。
取得自訂映像的最新安全更新
若要搭配使用自訂映像與 Amazon EMR on EKS,您可以在映像上安裝任何二進位檔案和程式庫。您負責對新增至映像的二進位檔案進行安全修補。會定期使用最新的安全修補程式修補 Amazon EMR on EKS 映像。若要取得最新映像,只要有 Amazon EMR 版本的新基礎映像版本,就必須重建自訂映像。如需詳細資訊,請參閱Amazon EMR on EKS Releases及選取基礎映像的詳細資訊 URI。
限制 Pod 憑證存取
Kubernetes 支援數種將憑證指派給 Pod 的方法。佈建多個憑證提供者可能會增加安全模型的複雜性。Amazon EMR on EKS 已採用服務帳戶的 IAM 角色 (IRSA) 作為已註冊的 EKS 命名空間內的標準憑證提供者。不支援其他方法,包括 kube2iam
隔離不受信任的應用程式碼
Amazon EMR on EKS 不會檢查系統使用者提交的應用程式碼的完整性。如果您執行的是使用多個執行角色設定的多租戶虛擬叢集,而執行任意程式碼的不受信任的租用戶可使用這些角色提交作業,則可能存在惡意應用程式提升其權限的風險。在這種情況下,請考慮將具有類似權限的執行角色隔離到不同的虛擬叢集中。
角色型存取控制 (RBAC) 許可
管理員應嚴格控制 Amazon EMR on EKS 受管命名空間的角色型存取控制 (RBAC) 許可。至少,不應將下列許可授予給 Amazon EMR on EKS 受管命名空間中的作業提交者。
Kubernetes RBAC 許可能夠修改 configmap,因為 Amazon EMR on EKS 使用 Kubernetes configmaps 來產生具有受管服務帳戶名稱的受管 Pod 範本。此屬性不應發生突變。
Kubernetes RBAC 許可能夠執行至 Amazon EMR on EKS Pod 中,以避免對具有受管 SA 名稱的受管 Pod 範本授予存取權。此屬性不應發生突變。此許可准許存取掛載至 Pod 的 JWT 字符,然後可用來擷取執行角色憑證。
Kubernetes RBAC 許可能夠建立 Pod,以防止使用者使用 Kubernetes ServiceAccount (它可能映射至比使用者具有更多 AWS 權限的 IAM 角色) 建立 Pod。
Kubernetes RBAC 許可能夠部署發生變化的 Webhook,以防止使用者使用發生變化的 Webhook 來變更由 Amazon EMR on EKS 建立的 Pod 的 Kubernetes ServiceAccount 名稱。
Kubernetes RBAC 許可能夠讀取 Kubernetes 密碼,以防止使用者讀取儲存在這些密碼中的機密資料。
限制存取節點群組 IAM 角色或執行個體設定檔憑證
建議將最低 AWS 許可指派給節點群組的 IAM 角色。這有助於避免使用 EKS 工作節點的執行個體設定檔憑證執行的程式碼進行權限提升。
若要完全阻止對在 Amazon EMR on EKS 受管命名空間中執行的所有 Pod 的執行個體設定檔憑證的存取,建議您在 EKS 節點上執行
iptables
命令。如需詳細資訊,請參閱限制存取 Amazon EC2 執行個體設定檔憑證。不過,請務必適當限制您的服務帳戶 IAM 角色範圍,以便 Pod 擁有所有必要的許可。例如,節點 IAM 角色會被指派從 Amazon ECR 中提取容器映像的許可。如果 Pod 沒有被指派這些許可,則該 Pod 無法從 Amazon ECR 中提取容器映像。VPC CNI 外掛程式也需要更新。如需詳細資訊,請參閱逐步解說:更新 VPC CNI 外掛程式以使用服務帳戶的 IAM 角色。