本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
標籤型存取控制的政策
您可以在身分型政策中使用條件,根據標籤控制對應用程式和任務執行的存取。
下列範例示範使用 EMR Serverless 條件索引鍵的條件運算子的不同案例和方法。這些 IAM 政策陳述式僅作示範用途,不應用於生產環境。有多種方法可以結合政策陳述式,以根據您的需求授予和拒絕許可。如需規劃與測試 IAM 政策的詳細資訊,請參閱 IAM 使用者指南。
標記動作的明確拒絕許可是項重要的考量條件。這可防止使用者標記資源並將您無意授予的許可授予給他們。如果未拒絕資源的標記動作,使用者可以修改標籤並規避標籤型政策的意圖。如需有關可拒絕標記動作的政策範例,請參閱 拒絕新增和移除標籤的存取權。
以下範例示範用於控制 EMR Serverless 應用程式所允許之動作的身分型許可政策。
僅在具有特定標籤值的資源上允許動作
在下列政策範例中,StringEquals
條件運算子會嘗試dev
符合標籤部門的值。如果標籤部門尚未新增至應用程式,或不包含值 dev
,則政策不適用,且此政策不允許動作。如果沒有其他政策陳述式允許動作,則使用者只能使用具有此值之此標籤的應用程式。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:GetApplication"
],
"Resource": [
"*"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/department": "dev"
}
},
"Sid": "AllowEMRSERVERLESSGetapplication"
}
]
}
您也可以使用條件運算子來指定多個標籤值。例如,若要允許department
對標籤包含 值dev
或 的應用程式執行動作test
,您可以將先前範例中的條件區塊取代為下列項目。
"Condition": {
"StringEquals": {
"emr-serverless:ResourceTag/department": ["dev", "test"]
}
}
建立資源時需要進行標記
在下面的範例中,建立應用程式時需要套用標籤。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:CreateApplication"
],
"Resource": [
"*"
],
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "us-east-1"
}
},
"Sid": "AllowEMRSERVERLESSCreateapplication"
}
]
}
下列政策陳述式僅允許使用者在應用程式具有標籤時建立應用程式,該department
標籤可包含任何值。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:CreateApplication"
],
"Resource": [
"*"
],
"Condition": {
"StringEquals": {
"aws:RequestedRegion": ["us-east-1", "us-west-2"]
}
},
"Sid": "AllowEMRSERVERLESSCreateapplication"
}
]
}
拒絕新增和移除標籤的存取權
此政策可防止使用者新增或移除 EMR Serverless 應用程式上的標籤,其department
標籤的值不是 dev
。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"emr-serverless:TagResource",
"emr-serverless:UntagResource"
],
"Resource": [
"*"
],
"Condition": {
"StringNotEquals": {
"aws:PrincipalTag/department": "dev"
}
},
"Sid": "AllowEMRSERVERLESSTagresource"
}
]
}