

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

# 태그에 대한 액세스 제어
<a name="tag-permissions"></a>

 AWS KMS 콘솔에서 또는 API를 사용하여 태그를 추가, 확인 및 삭제하려면 보안 주체에 태그 지정 권한이 필요합니다. [키 정책](key-policies.md)에서 이러한 권한을 제공할 수 있습니다. IAM 정책([VPC 엔드포인트 정책](https://docs.aws.amazon.com/vpc/latest/privatelink/interface-endpoints.html#edit-vpc-endpoint-policy) 포함)에서도 이를 제공할 수 있지만, 이는 [키 정책에서 허용](key-policy-default.md#allow-iam-policies)하는 경우에만 가능합니다. [AWSKeyManagementServicePowerUser](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSKeyManagementServicePowerUser) 관리형 정책은 보안 주체가 계정이 액세스할 수 있는 모든 KMS 키에 대해 태그를 지정하고 태그를 해제하고 나열할 수 있도록 허용합니다.

태그에 AWS 전역 조건 키를 사용하여 이러한 권한을 제한할 수도 있습니다. AWS KMS에서 이러한 조건은 태그 지정 작업(예: [TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) 및 [UntagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_UntagResource.html))에 대한 액세스를 제어할 수 있습니다.

**참고**  
보안 주체에게 태그 및 별칭을 관리할 수 있는 권한을 부여하는 데 주의해야 합니다. 태그나 별칭을 변경하면 고객 관리형 키의 권한을 허용하거나 거부할 수 있습니다. 자세한 내용은 [에 대한 ABAC AWS KMS](abac.md) 및 [태그를 사용하여 KMS 키에 대한 액세스 제어](tag-authorization.md) 섹션을 참조하세요.

예제 정책과 자세한 내용은 *IAM 사용 설명서*의 [태그 키를 기반으로 액세스 제어](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-tag-keys) 섹션을 참조하십시오.

태그를 만들고 관리할 수 있는 권한은 다음과 같습니다.

**kms:TagResource**  
보안 주체가 태그를 추가하거나 편집할 수 있습니다. KMS 키를 생성하는 동안 태그를 추가하려면 보안 주체에 특정 KMS 키로 제한되지 않는 IAM 정책에 대한 권한이 있어야 합니다.

**kms:ListResourceTags**  
보안 주체가 KMS 키의 태그를 볼 수 있도록 허용합니다.

**kms:UntagResource**  
보안 주체가 KMS 키에서 태그를 삭제할 수 있도록 허용합니다.

## 정책에서 태그 지정 권한
<a name="tag-permission-examples"></a>

키 정책 또는 IAM 정책에서 태그 지정 권한을 제공할 수 있습니다. 예를 들어 다음 예제 키 정책은 KMS 키에 대한 태그 지정 권한을 사용자에게 제공합니다. 예를 들어 관리자 또는 개발자 역할로 가정할 수 있는 모든 사용자에게 태그를 볼 수 있는 권한을 제공합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "example-key-policy",
  "Statement": [
    { 
      "Sid": "EnableIAMUserPermissions",
      "Effect": "Allow",
      "Principal": {"AWS": "arn:aws:iam::{{111122223333}}:root"},
      "Action": "kms:*",
      "Resource": "*"
    },
    {
      "Sid": "AllowAllTaggingPermissions",
      "Effect": "Allow",
      "Principal": {"AWS": [
        "arn:aws:iam::{{111122223333}}:user/LeadAdmin",
        "arn:aws:iam::{{111122223333}}:user/SupportLead"
      ]},
      "Action": [
          "kms:TagResource",
          "kms:ListResourceTags",
          "kms:UntagResource"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AllowRolesViewTags",
      "Effect": "Allow",
      "Principal": {"AWS": [
        "arn:aws:iam::{{111122223333}}:role/Administrator",
        "arn:aws:iam::{{111122223333}}:role/Developer"
      ]},
      "Action": "kms:ListResourceTags",
      "Resource": "*"
    }
  ]
}
```

------

보안 주체에게 여러 KMS 키에 대한 태그 지정 권한을 부여하려면 IAM 정책을 사용할 수 있습니다. 이 정책이 유효하려면 각 KMS 키의 키 정책으로 인해 계정이 IAM 정책을 사용하여 KMS 키에 대한 액세스를 제어할 수 있어야 합니다.

예를 들어, 다음 IAM 정책은 보안 주체가 KMS 키를 생성할 수 있도록 허용합니다. 또한 지정된 계정의 모든 KMS 키에 태그를 만들고 관리할 수 있습니다. 이 조합을 통해 보안 주체가 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업의 [태그](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-Tags) 파라미터를 사용하여 KMS 키를 만드는 동안 KMS 키에 태그를 추가할 수 있습니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IAMPolicyCreateKeys",
      "Effect": "Allow",
      "Action": "kms:CreateKey",
      "Resource": "*"
    },
    {
      "Sid": "IAMPolicyTags",
      "Effect": "Allow",
      "Action": [
        "kms:TagResource",
        "kms:UntagResource",
        "kms:ListResourceTags"
      ],
      "Resource": "arn:aws:kms:*:{{111122223333}}:key/*"
    }    
  ]
}
```

------

## 태그 지정 권한 제한
<a name="tag-permissions-conditions"></a>

[정책 조건](policy-conditions.md)을 사용하여 태그 지정 권한을 제한할 수 있습니다. 다음 정책 조건을 `kms:TagResource` 및 `kms:UntagResource` 권한에 적용할 수 있습니다. 예를 들어, `aws:RequestTag/tag-key` 조건을 사용하여 보안 주체가 특정 태그만 추가하거나 보안 주체가 특정 태그 키를 사용하여 태그를 추가하지 못하도록 할 수 있습니다. 또는 `kms:KeyOrigin` 조건을 사용하여 보안 주체가 [가져온 키 구성 요소](importing-keys.md)가 있는 KMS 키에 태그를 지정하거나 태그를 해제하지 못하도록 할 수 있습니다.
+ [aws:RequestTag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag)
+ [aws:ResourceTag/*tag-key*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag)(IAM 정책만 해당)
+ [aws:TagKeys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tag-keys)
+ [kms:CallerAccount](conditions-kms.md#conditions-kms-caller-account)
+ [kms:KeySpec](conditions-kms.md#conditions-kms-key-spec)
+ [kms:KeyUsage](conditions-kms.md#conditions-kms-key-usage)
+ [kms:KeyOrigin](conditions-kms.md#conditions-kms-key-origin)
+ [kms:ViaService](conditions-kms.md#conditions-kms-via-service)

태그를 사용하여 KMS 키에 대한 액세스를 제어할 때 가장 좋은 방법은 `aws:RequestTag/tag-key` 또 는`aws:TagKeys` 조건 키를 사용하여 허용되는 태그 (또는 태그 키)를 결정하는 것입니다.

예를 들어 다음 IAM 정책은 이전 것과 비슷합니다. 그러나 이 정책은 보안 주체가 `Project` 태그 키가 있는 태그에 대해서만 태그(`TagResource`)를 생성하고 태그 `UntagResource`를 삭제할 수 있도록 허용합니다.

왜냐하면 `TagResource` 및 `UntagResource` 요청에는 여러 태그가 포함될 수 있으므로 `ForAllValues` 또는 `ForAnyValue` 집합 연산자와 [aws:TagKeys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys) 조건을 지정해야 합니다. `ForAnyValue` 연산자를 사용하려면 요청의 태그 키 중 적어도 하나가 정책의 태그 키 중 하나와 일치해야 합니다. `ForAllValues` 연산자를 사용하려면 요청의 모든 태그 키가 정책의 태그 키 중 하나와 일치해야 합니다. `ForAllValues` 연산자는 요청에 태그가 없는 경우에도 `true`를 반환하지만 태그가 지정되지 않으면 TagResource 및 UntagResource가 실패합니다. 집합 연산자에 대한 자세한 내용은* IAM 사용 설명서*의 [여러 키 및 값 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions)을 참조하십시오.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IAMPolicyCreateKey",
      "Effect": "Allow",
      "Action": "kms:CreateKey",
      "Resource": "*"
    },
    {
      "Sid": "IAMPolicyViewAllTags",
      "Effect": "Allow",
      "Action": "kms:ListResourceTags",
      "Resource": "arn:aws:kms:*:{{111122223333}}:key/*"
    },
    {
      "Sid": "IAMPolicyManageTags",
      "Effect": "Allow",
      "Action": [
        "kms:TagResource",
        "kms:UntagResource"
      ],
      "Resource": "arn:aws:kms:*:{{111122223333}}:key/*",
      "Condition": {
          "ForAllValues:StringEquals": {"aws:TagKeys": "Project"}
      }
    }
  ]
}
```

------