標籤型存取控制的政策 - Amazon EMR

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

標籤型存取控制的政策

您可以在身分型政策中使用條件,根據標籤來控制對虛擬叢集和作業運行的存取權。如需標記的詳細資訊,請參閱在 EKS 資源上標記您的 Amazon EMR

以下範例示範以 EKS 條件金鑰使用條件運算子和 Amazon EMR 的不同情況和方式。這些 IAM 政策陳述式僅作示範用途,不應用於生產環境。有多種方法可以結合政策陳述式,以根據您的需求授予和拒絕許可。如需規劃和測試 IAM 政策的詳細信息,請參IAM User Guide

重要

標記動作的明確拒絕許可是項重要的考量條件。這會防止使用者標記資源,從而授予原本不要授予的許可。如果資源的標記操作未被拒絕,用户可以修改標籤並規避基於標記的策略的意圖。如需拒絕標記動作的政策範例,請參拒絕存取以添加和移除標籤

以下範例示範會身分類型許可政策,這些政策會用來控制 Amazon EMR 允許在 EKS 虛擬叢集上執行的動作。

僅允許對具有特定標籤值的資源執行操作

在以下政策範例中, StringEquals 條件運算子嘗試將 dev 與標籤部門的值相匹配。如果標籤部門尚未新增到虛擬叢集,或不包含值開發,政策將無法套用,此政策也不允許動作。如果沒有其他政策陳述式允許這些動作,使用者只能使用具有此標籤和此值的虛擬叢集。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-containers:DescribeVirtualCluster" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/department": "dev" } } } ] }

您也可以使用條件運算子來指定多個標籤值。例如,要允許在虛擬羣集上執行操作,department標籤包含值dev或者test,您可以用下列內容取代先前範例中的條件區塊。

"Condition": { "StringEquals": { "aws:ResourceTag/department": ["dev", "test"] } }

創建資源時需要標記

在下面的示例中,創建虛擬羣集時需要應用標記。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-containers:CreateVirtualCluster" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/department": "dev" } } } ] }

以下政策陳述式可讓使用者只在虛擬羣集具有department標籤,它可以包含任何值。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-containers:CreateVirtualCluster" ], "Resource": "*", "Condition": { "Null": { "aws:RequestTag/department": "false" } } } ] }

拒絕存取以添加和移除標籤

此政策的效果是拒絕使用者在虛擬叢集上添加或移除任何標籤的許可。department標籤,其中包含dev值。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "emr-containers:TagResource", "emr-containers:UntagResource" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/department": "dev" } } } ] }