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

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

標籤型存取控制的政策

您可以使用身分型政策中的條件,根據標籤控制應用程式和任務執行的存取。

下列範例示範使用 條件運算子搭配 EMR Serverless 條件索引鍵的不同案例和方法。這些IAM政策陳述式僅供示範用途,不應用於生產環境。有多種方法可以結合政策陳述式,以根據您的需求授予和拒絕許可。如需規劃和測試IAM政策的詳細資訊,請參閱 IAM 使用者指南

重要

標記動作的明確拒絕許可是項重要的考量條件。這可防止使用者標記資源並將您無意授予的許可授予給他們。如果未拒絕資源的標記動作,使用者可以修改標籤並規避標籤型政策的意圖。如需有關可拒絕標記動作的政策範例,請參閱 拒絕新增和移除標籤的存取權

下列範例示範以身分為基礎的許可政策,用於控制 EMR Serverless 應用程式允許的 動作。

僅在具有特定標籤值的資源上允許動作

在下列政策範例中,StringEquals條件運算子會嘗試dev與標籤部門的值相符。如果標籤部門尚未新增至應用程式,或不包含值 dev,則政策不適用,且此政策不允許這些動作。如果沒有其他政策陳述式允許這些動作,則使用者只能使用具有此值之此標籤的應用程式。

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

您也可以使用條件運算子來指定多個標籤值。例如,若要允許department標籤包含 值dev或 之應用程式的動作test,您可以將先前範例中的條件區塊取代為下列。

"Condition": { "StringEquals": { "emr-serverless:ResourceTag/department": ["dev", "test"] } }

建立資源時需要進行標記

在下面的範例中,建立應用程式時需要套用標籤。

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

下列政策陳述式僅允許使用者在應用程式具有標籤時建立應用程式,該department標籤可包含任何值。

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

拒絕新增和移除標籤的存取權

此政策可防止使用者新增或移除具有值不是 之標籤的 EMR Serverless 應用程式上的department標籤dev

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