

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

# 태그 기반 액세스 제어를 위한 정책
<a name="security-iam-TBAC"></a>

자격 증명 기반 정책의 조건을 사용하여 태그를 기반으로 애플리케이션 및 작업 실행에 대한 액세스를 제어할 수 있습니다.

다음 예제에서는 EMR Serverless 조건 키와 함께 조건 연산자를 사용할 수 있는 다양한 시나리오와 방법을 보여줍니다. 이러한 IAM 정책 명령문은 데모용일 뿐이며 프로덕션 환경에서 사용해서는 안 됩니다. 다양한 방법으로 정책 명령문을 결합하여 요구 사항에 따라 권한을 부여하거나 거부할 수 있습니다. IAM 정책 계획 및 테스트에 대한 자세한 내용은 [IAM 사용 설명서](https://docs.aws.amazon.com/IAM/latest/UserGuide/)를 참조하세요.

**중요**  
태깅 작업에 대한 권한을 명시적으로 거부하는 것은 중요한 고려 사항입니다. 이렇게 하면 사용자가 리소스에 태그를 지정하지 못하므로, 부여할 의도가 없는 권한이 부여되지 않도록 방지할 수 있습니다. 리소스에 대한 태그 지정 작업이 거부되지 않는 경우 사용자는 태그를 수정하여 태그 기반 정책의 의도를 우회할 수 있습니다. 태그 지정 작업을 거부하는 정책의 예제는 [태그를 추가 또는 제거하는 액세스 거부](#security-iam-TBAC-deny) 섹션을 참조하세요.

아래 예제에서는 EMR Serverless 애플리케이션에서 허용되는 작업을 제어하는 데 사용되는 자격 증명 기반 권한 정책을 보여줍니다.

## 특정 태그 값이 있는 리소스에서만 작업 허용
<a name="security-iam-TBAC-allow"></a>

다음 정책 예제에서 `StringEquals` 조건 연산자는 `dev`를 department 태그의 값과 일치시키려고 시도합니다. department 태그가 애플리케이션에 추가되지 않았거나 `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"]
        }
      }
```

## 리소스 생성 시 태그 지정이 필요함
<a name="security-iam-TBAC-require"></a>

아래 예제에서 가상 클러스터를 생성하는 경우 태그를 적용해야 합니다.

------
#### [ 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"
    }
  ]
}
```

------

## 태그를 추가 또는 제거하는 액세스 거부
<a name="security-iam-TBAC-deny"></a>

이 정책은 값이 `dev`가 아닌 `department` 태그가 있는 EMR Serverless 애플리케이션에서 사용자가 태그를 추가하거나 제거하는 것을 방지합니다.

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

****  

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

------