

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

# IAM 정책에 태그 사용
<a name="tagging-iot-iam"></a>

관리형 통합 API 작업에 사용하는 IAM 정책에서 태그 기반 리소스 수준 권한을 적용할 수 있습니다. 이를 통해 사용자가 생성, 수정 또는 사용할 수 있는 리소스를 더욱 정확하게 제어할 수 있습니다. 리소스 태그를 기반으로 사용자 액세스(권한)를 제어하기 위해 IAM 정책에서 다음 조건 콘텍스트 키 및 값과 함께 `Condition` 요소(`Condition` 블록)를 사용합니다.
+ `aws:ResourceTag/{{tag-key}}: {{tag-value}}`를 사용하여 특정 태그가 지정된 리소스에 대한 사용자 작업을 허용 또는 거부합니다.
+ `aws:RequestTag/{{tag-key}}: {{tag-value}}`를 사용하여 태그를 허용하는 리소스를 생성하거나 수정하는 API 요청을 작성할 때 특정 태그를 사용하도록(또는 사용하지 않도록) 요구합니다.
+ `aws:TagKeys: [{{tag-key}}, ...]`를 사용하여 태깅 가능한 리소스를 생성하거나 수정하는 API 요청을 작성할 때 특정 태그 키 집합을 사용하도록(또는 사용하지 않도록) 요구합니다.

**참고**  
IAM 정책의 조건 컨텍스트 키 및 값은 태그를 지정할 수 있는 리소스의 식별자가 필수 파라미터인 관리형 통합 작업에만 적용됩니다. 예를 들어 [GetCustomEndpoint](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_GetCustomEndpoint) 사용은 조건 컨텍스트 키 및 값을 기반으로 허용되거나 거부되지 않습니다.이 요청에서 태그 지정 가능한 리소스(관리형 사물, 프로비저닝 프로필, 자격 증명 잠금 장치, over-the-air 작업)가 참조되지 않기 때문입니다. 태그 지정이 가능한 관리형 통합 리소스와 해당 리소스가 지원하는 조건 키에 대한 자세한 내용은 [의 AWS IoT 관리형 통합 기능을 위한 작업, 리소스 및 조건 키를 참조하세요 AWS IoT Device Management](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotmanagedintegrationsfeatureofiotdevicemanagement.html).

자세한 내용은 *AWS Identity and Access Management 사용 설명서*의 [태그를 사용한 액세스 제어](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)를 참조하세요. 이 설명서의 [IAM JSON 정책 참조](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) 단원에서는 IAM에서 JSON 정책의 자세한 구문과 설명, 요소의 예, 변수 및 평가 로직을 설명합니다.

다음 예제 정책은 `CreateManagedThing` 작업에 두 가지 태그 기반 제한을 적용합니다. 이 정책으로 제한되는 IAM 사용자는 다음과 같습니다.
+ 태그가 "env=prod"인 관리형 사물을 생성할 수 없습니다(이 예에서는 행 참조`"aws:RequestTag/env" : "prod"`).
+ 기존 태그가 "env=prod"인 관리형 사물을 수정하거나 액세스할 수 없습니다(이 예에서는 행 참조`"aws:ResourceTag/env" : "prod"`).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "iotmanagedintegrations:CreateManagedThing",
      "Resource": "arn:aws:iotmanagedintegrations:{{us-east-1}}:{{123456789012}}:managed-thing/*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/env": "prod"
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "iotmanagedintegrations:CreateManagedThing",
        "iotmanagedintegrations:DeleteManagedThing",
        "iotmanagedintegrations:GetManagedThing",
        "iotmanagedintegrations:UpdateManagedThing"
      ],
      "Resource": "arn:aws:iotmanagedintegrations:{{us-east-1}}:{{123456789012}}:managed-thing/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/env": "prod"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "iotmanagedintegrations:CreateManagedThing",
        "iotmanagedintegrations:DeleteManagedThing",
        "iotmanagedintegrations:GetManagedThing",
        "iotmanagedintegrations:UpdateManagedThing"
      ],
      "Resource": "*"
    }
  ]
}
```

------

또한 다음과 같이 목록에서 태그를 둘러싸 지정된 태그 키에 대해 여러 태그 값을 지정할 수도 있습니다.

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

**참고**  
태그를 기준으로 리소스에 대한 사용자 액세스를 허용 또는 거부하는 경우 동일한 리소스에서 태그를 추가 또는 제거할 수 있도록 사용자를 명시적으로 거부할 것을 고려해야 합니다. 그렇지 않으면 사용자가 제한을 피해 태그를 수정하여 리소스에 대한 액세스 권한을 얻을 수 있습니다.