協助改善此頁面
想要為此使用者指南做出貢獻? 捲動至此頁面底部,然後在 上選取編輯此頁面 GitHub。您的貢獻將幫助我們的使用者指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授權 pods 根據標籤存取 AWS 資源
EKS Pod Identity 會使用叢集名稱、命名空間、服務帳戶名稱等屬性,將標籤連接至每個 Pod 的臨時憑證。這些角色工作階段標籤可讓管理員撰寫單一角色,以允許根據相符標籤存取 AWS 資源,進而跨服務帳戶運作。透過新增對角色工作階段標籤的支援,客戶可以在叢集和叢集內的工作負載之間強制執行更嚴格的安全界限,同時重複使用相同的IAM角色和IAM政策。
例如,如果物件已標記EKS叢集的名稱,則下列政策允許 s3:GetObject
動作。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectTagging" ], "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/eks-cluster-name": "${aws:PrincipalTag/eks-cluster-name}" } } } ] }
Pod Identity EKS 新增的工作階段標籤清單
下列清單包含新增至 Amazon 所提出AssumeRole
請求之標籤的所有金鑰EKS。以 ${aws:PrincipalTag/kubernetes-namespace}
為例,若要在政策中使用這些標籤,請在 ${aws:PrincipalTag/
後面使用金鑰。
eks-cluster-arn
eks-cluster-name
kubernetes-namespace
kubernetes-service-account
kubernetes-pod-name
kubernetes-pod-uid
跨帳戶標籤
Pod Identity EKS 新增的所有工作階段標籤都是暫時性的;標籤索引鍵和值會傳遞給工作負載用來將角色切換到另一個帳戶的任何AssumeRole
動作。您可以在其他帳戶的政策中使用這些標籤,以限制跨帳戶情況中的存取。如需詳細資訊,請參閱 IAM 使用者指南 中的使用工作階段標籤鏈結角色。
自訂標籤
EKS Pod Identity 無法將其他自訂標籤新增至其執行AssumeRole
的動作。不過,您套用至IAM角色的標籤一律可透過相同格式使用:${aws:PrincipalTag/
後面接著 金鑰,例如 ${aws:PrincipalTag/MyCustomTag}
。
注意
在發生衝突的情況下,透過 sts:AssumeRole
請求新增至工作階段的標籤具有優先順序。例如,假設:
當
my-cluster
EKS擔任客戶角色EKSeks-cluster-name
和您可以將
eks-cluster-name
標籤新增至值為 IAM的角色my-own-cluster
。
在此情況下,前者優先,標籤的值eks-cluster-name
將為 my-cluster
。