

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 태그 기반 액세스 제어를 위한 정책
<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를 department 태그의 값과 일치시키려고 시도합니다. department 태그가 가상 클러스터에 추가되지 않았거나 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"
    }
  ]
}
```

------