

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

# 標籤型存取控制政策
<a name="security_iam_TBAC"></a>

可以使用身分型政策中的條件，根據標籤來控制對虛擬叢集和作業執行的存取。如需標記的相關資訊，請參閱[為您的 Amazon EMR on EKS 資源加上標籤](tag-resources.md)。

以下範例示範了搭配使用條件運算子與 Amazon EMR on EKS 條件金鑰的不同情況和方式。這些 IAM 政策陳述式僅作示範用途，不應用於生產環境。有多種方法可以結合政策陳述式，以根據您的需求授予和拒絕許可。如需規劃與測試 IAM 政策的詳細資訊，請參閱 [IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/)。

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

以下範例示範的身分型許可政策用來控制允許 Amazon EMR on EKS 虛擬叢集採取的動作。

## 僅在具有特定標籤值的資源上允許動作
<a name="security_iam_TBAC_allow"></a>

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

------
#### [ JSON ]

****  

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

------

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

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

## 建立資源時需要進行標記
<a name="security_iam_TBAC_require"></a>

在以下範例中，需要在建立虛擬叢集時套用標籤。

------
#### [ JSON ]

****  

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

------

以下政策陳述式可讓使用者只在叢集具有可以包含任何值的 `department` 標籤時，才能建立虛擬叢集。

------
#### [ JSON ]

****  

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

------

## 拒絕新增和移除標籤的存取權
<a name="security_iam_TBAC_deny"></a>

此政策的效果是拒絕使用者在以包含 `department` 值的 `dev` 標籤所標記的虛擬叢集上新增或移除任何標籤的許可。

------
#### [ JSON ]

****  

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

------