協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要提供此使用者指南,請選擇位於每個頁面右窗格的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
屬性型存取控制 (ABAC) 透過將屬性結合在一起的政策,將權限授予使用者。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}"
}
}
}
]
}
由 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 Identity 無法將其他自訂標籤新增至其執行AssumeRole
的動作。不過,您套用至 IAM 角色的標籤永遠都可以使用,但格式相同:${aws:PrincipalTag/
後面是金鑰,例如 ${aws:PrincipalTag/MyCustomTag}
。
注意
在發生衝突的情況下,透過 sts:AssumeRole
請求新增至工作階段的標籤具有優先順序。例如,假設:
-
my-cluster
當 EKS 擔任客戶角色eks-cluster-name
和 -
您可以將
eks-cluster-name
標籤新增至值為 的 IAM 角色my-own-cluster
。
在這種情況下,前者優先,標籤的值eks-cluster-name
將是 my-cluster
。