根據標籤pods授予 AWS 資源存取權 - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。

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

根據標籤pods授予 AWS 資源存取權

EKS Pod 身分識別會將標籤連接至具有叢集名稱、命名空間、服務帳戶名稱等屬性的每個 Pod 的臨時憑證。這些角色工作階段標記可讓系統管理員撰寫可跨服務帳戶使用的單一角色,方法是允許根據相符標籤存取 AWS 資源。透過新增對角色工作階段標籤的支援,客戶可以在叢集之間和叢集內的工作負載之間強制執行更嚴格的安全界限,同時重複使用相同的 IAM 角色和 IAM 政策。

例如,如果物件標記為 EKS 叢集名稱,下列政策即可執行 s3:GetObject 動作。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectTagging" ], "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/eks-cluster-name": "${aws:PrincipalTag/eks-cluster-name}" } } } ] }

由 EKS Pod 身分識別新增的工作階段標籤清單

下列清單包含新增至 Amazon EKS 所提出 AssumeRole 請求之標籤的所有金鑰。以 ${aws:PrincipalTag/kubernetes-namespace} 為例,若要在政策中使用這些標籤,請在 ${aws:PrincipalTag/ 後面使用金鑰。

  • eks-cluster-arn

  • eks-cluster-name

  • kubernetes-namespace

  • kubernetes-service-account

  • kubernetes-pod-name

  • kubernetes-pod-uid

跨帳戶標籤

EKS Pod 身分識別新增的所有工作階段標籤都可轉移;標籤金鑰和值會傳遞至工作負載用於將角色切換至其他帳戶的任何 AssumeRole 動作。您可以在其他帳戶的政策中使用這些標籤,以限制跨帳戶情況中的存取。如需詳細資訊,請參閱《IAM 使用者指南》中的使用工作階段標籤鏈結角色

自訂標籤

EKS Pod 身分識別無法將其他自訂標籤新增至其執行的 AssumeRole 動作。不過,您套用至 IAM 角色的標籤永遠都可以使用,但格式相同:${aws:PrincipalTag/ 後面是金鑰,例如 ${aws:PrincipalTag/MyCustomTag}

注意

在發生衝突的情況下,透過 sts:AssumeRole 請求新增至工作階段的標籤具有優先順序。例如,假設當 EKS 擔任客戶角色時,Amazon EKS 將金鑰 eks-cluster-name 和值 my-cluster 新增至工作階段。您也將 eks-cluster-name 標籤新增至具有值 my-own-cluster 的 IAM 角色。在這種情況下,前者優先,eks-cluster-name 標籤的值會是 my-cluster