태그에 대한 액세스 제어 - AWS Key Management Service

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

태그에 대한 액세스 제어

태그를 추가, 보기 및 삭제하려면 AWS KMS 콘솔 또는 API를 사용하여 보안 주체에 태그 권한이 필요합니다. 키 정책에서 이러한 권한을 제공할 수 있습니다. IAM 정책(VPC 엔드포인트 정책 포함)에서도 이를 제공할 수 있지만, 이는 키 정책에서 허용하는 경우에만 가능합니다. AWSKeyManagementServicePowerUser관리형 정책을 통해 보안 주체는 계정이 액세스할 수 있는 모든 KMS 키에 태그를 지정하고, 태그를 해제하고, 태그를 나열할 수 있습니다.

태그에 AWS 전역 조건 키를 사용하여 이러한 권한을 제한할 수도 있습니다. AWS KMS에서는 이러한 조건으로 및 같은 태깅 작업에 대한 액세스를 제어할 수 있습니다. TagResourceUntagResource

참고

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

예제 정책과 자세한 내용은 IAM 사용 설명서태그 키를 기반으로 액세스 제어 섹션을 참조하십시오.

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

kms: TagResource

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

kms: ListResourceTags

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

kms: UntagResource

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

정책에서 태그 지정 권한

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

{ "Version": "2012-10-17", "Id": "example-key-policy", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow all tagging permissions", "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": "Allow roles to view tags", "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 키에 태그를 만들고 관리할 수 있습니다. 이 조합을 통해 보안 주체는 KMS 키를 만드는 동안 CreateKey작업의 Tags 매개 변수를 사용하여 KMS 키에 태그를 추가할 수 있습니다.

{ "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/*" } ] }

태그 지정 권한 제한

정책 조건을 사용하여 태그 지정 권한을 제한할 수 있습니다. 다음 정책 조건을 kms:TagResourcekms:UntagResource 권한에 적용할 수 있습니다. 예를 들어, aws:RequestTag/tag-key 조건을 사용하여 보안 주체가 특정 태그만 추가하거나 보안 주체가 특정 태그 키를 사용하여 태그를 추가하지 못하도록 할 수 있습니다. 또는 kms:KeyOrigin 조건을 사용하여 보안 주체가 가져온 키 구성 요소가 있는 KMS 키에 태그를 지정하거나 태그를 해제하지 못하도록 할 수 있습니다.

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

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

UntagResource요청에는 여러 태그가 포함될 수 있으므로 TagResource aws: TagKeys 조건으로 ForAllValues or ForAnyValue set 연산자를 지정해야 합니다. ForAnyValue 연산자를 사용하려면 요청의 태그 키 중 적어도 하나가 정책의 태그 키 중 하나와 일치해야 합니다. ForAllValues 연산자를 사용하려면 요청의 모든 태그 키가 정책의 태그 키 중 하나와 일치해야 합니다. 또한 ForAllValues 연산자는 요청에 태그가 없는 true 경우 반환하지만 TagResource 태그가 지정되지 않으면 UntagResource 실패합니다. 집합 연산자에 대한 자세한 내용은 IAM 사용 설명서여러 키 및 값 사용을 참조하십시오.

{ "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"} } } ] }