고객 관리형 정책 예 - AWS Key Management Service

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

고객 관리형 정책 예

이 단원에서는 다양한 권한을 허용하는 IAM 정책의 예를 볼 수 있습니다.AWS KMS작업을 수행합니다.

중요

다음 정책에 포함된 권한 중 일부는 CMK의 키 정책에서도 허용하는 경우에만 허용됩니다. 자세한 정보는 AWS KMS API 권한 참조을 참조하십시오.

JSON 정책 문서 작성 및 서식 지정에 대한 도움말은IAM JSON 정책 참조IAM 사용 설명서.

사용자가 에서 CMK를 볼 수 있도록 허용AWS KMS콘솔

다음 IAM 정책은 사용자가AWS KMS콘솔을 사용합니다. 이러한 사용 권한이 있는 사용자는 AWS 계정 로 설정되지만 CMK를 만들거나 변경할 수는 없습니다.

에서 CMK를 보려면AWS관리형 키고객 관리형 키페이지, 보안 주체는KMS:목록 키kms:ListAliases권한을 사용합니다. 나머지 사용 권한, 특히kms:DescribeKey는 CMK 세부 정보 페이지에서 선택적 CMK 테이블 열과 데이터를 보는 데 필요합니다. 이IAM:목록 사용자iam:ListRoles권한은 오류 없이 기본 보기에 키 정책을 표시하는 데 필요합니다. 데이터를 보려면사용자 지정 키 스토어페이지와 사용자 지정 키 저장소의 CMK에 대한 자세한 내용을 보려면 보안 주체도KMS:설명큐스토어키 저장소권한을 사용합니다.

특정 CMK에 대한 사용자의 콘솔 액세스를 제한하면 콘솔에 표시되지 않는 각 CMK에 대한 오류가 표시됩니다.

이 정책에는 두 가지 정책 설명이 포함되어 있습니다. 이Resource요소는 예제의 모든 지역에 있는 모든 CMK에 대해 지정된 사용 권한을 허용합니다. AWS 계정 . 콘솔 뷰어는 추가 액세스 권한이 필요하지 않으므로AWS KMS콘솔에는 보안 주체의 계정에 있는 CMK만 표시됩니다. 다른 CMK를 볼 수 있는 권한이 있는 경우에도 마찬가지입니다. AWS 계정 . 나머지AWS KMS및 IAM 권한에는"Resource": "*"요소는 특정 CMK에 적용되지 않기 때문입니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOnlyAccessForAllCMKsInAccount", "Effect": "Allow", "Action": [ "kms:GetPublicKey", "kms:GetKeyRotationStatus", "kms:GetKeyPolicy", "kms:DescribeKey", "kms:ListKeyPolicies", "kms:ListResourceTags" ], "Resource": "arn:aws:kms:*:111122223333:key/*" }, { "Sid": "ReadOnlyAccessForOperationsWithNoCMK", "Effect": "Allow", "Action": [ "kms:ListKeys", "kms:ListAliases", "iam:ListRoles", "iam:ListUsers" ], "Resource": "*" } ] }

사용자가 CMK를 생성하도록 허용

다음 IAM 정책은 사용자가 CMK를 생성하도록 허용합니다. CreateKey 작업에서는 특정 AWS KMS 리소스(CMK 또는 별칭)를 사용하지 않기 때문에 Resource 요소의 값은 *입니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*" } }

키를 만드는 보안 주체에게는 몇 가지 관련 사용 권한이 필요할 수 있습니다.

  • KMS:푸트키 정책— 이 주체kms:CreateKey권한은 CMK에 대한 초기 키 정책을 설정할 수 있습니다. 그러나CreateKey호출자가 수행해야 할 사항KMS:푸트키 정책권한이 있어야 합니다. 이 권한을 통해 CMK의 키 정책을 변경할 수 있습니다.BypassPolicyLockoutSafetyCheck파라미터CreateKey이는 권장하지 않습니다. 이CreateKey호출자가 가져올 수 있습니다.kms:PutKeyPolicy권한을 부여하거나, 생성 중인 CMK의 키 정책에 이 권한을 포함할 수 있습니다.

  • KMS:태그 리소스— CMK에 태그를 추가하려면CreateKey작업을 통해CreateKey호출자가 수행해야 할 사항KMS:태그 리소스IAM 정책에 권한을 부여합니다. 새 CMK의 주요 정책에 이 권한을 포함시키는 것만으로는 충분하지 않습니다. 그러나CreateKey호출자 포함kms:TagResource초기 키 정책에서 CMK가 생성 된 후 별도의 호출에 태그를 추가 할 수 있습니다.

  • KMS:별칭 만들기— CMK를 만드는 보안 주체는AWS KMS콘솔에는KMS:별칭 만들기사용 권한을 CMK 및 별칭에 대한. (콘솔은 두 번 호출합니다. 하나는CreateKey및 그 중 하나의CreateAlias). IAM 정책에서 별칭 권한을 제공해야 합니다. 키 정책 또는 IAM 정책에서 CMK 권한을 제공할 수 있습니다. 자세한 내용은 단원을 참조하십시오별칭에 대한 액세스 제어

또한 다음과 같습니다.kms:CreateKey을 사용하는 경우 다음 IAM 정책은kms:TagResource사용 권한에 있는 모든 CMK에 AWS 계정 및kms:CreateAlias계정의 모든 별칭에 대한 권한을 부여합니다. 또한 IAM 정책에서만 제공할 수 있는 몇 가지 유용한 읽기 전용 권한도 포함되어 있습니다.

이 IAM 정책에는 포함되지 않는 항목kms:PutKeyPolicy권한 또는 키 정책에서 설정할 수 있는 기타 사용 권한에 대해 설명합니다. 입니다.모범 사례를 사용하여 하나의 CMK에만 독점적으로 적용되는 키 정책에서 이러한 권한을 설정할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMPermissionsForParticularCMKs", "Effect": "Allow", "Action": "kms:TagResource", "Resource": "arn:aws:kms:*:111122223333:key/*" }, { "Sid": "IAMPermissionsForParticularAliases", "Effect": "Allow", "Action": "kms:CreateAlias", "Resource": "arn:aws:kms:*:111122223333:alias/*" }, { "Sid": "IAMPermissionsForAllCMKs", "Effect": "Allow", "Action": [ "kms:CreateKey", "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" } ] }

사용자가 특정 AWS 계정

다음 IAM 정책은 사용자가 에서 임의의 CMK로 데이터를 암호화하고 해독할 수 있도록 허용합니다. AWS 계정 111122223333 33333.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": "arn:aws:kms:*:111122223333:key/*" } }

사용자가 특정 AWS 계정 및 리전

다음 IAM 정책은 사용자가 에서 임의의 CMK로 데이터를 암호화하고 해독할 수 있도록 허용합니다. AWS 계정 미국 서부 (오레곤) 리전에서 111122223333

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/*" ] } }

사용자가 특정 CMK로 암호화와 해독을 수행하도록 허용

다음 IAM 정책은 사용자가 에 지정된 두 개의 CMK를 사용하여 데이터를 암호화하고 해독할 수 있도록 허용합니다.Resource요소를 사용합니다. IAM 정책 명령문에서 CMK를 지정할 때는키 ARNCMK입니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321" ] } }

사용자가 CMK를 비활성화하거나 삭제하지 못하도록 차단

다음 IAM 정책은 다른 IAM 정책이나 키 정책에 관련 권한이 있더라도 사용자가 CMK를 비활성화하거나 삭제하는 것을 금지합니다. 권한을 명시적으로 거부하는 정책이 동일한 권한을 명시적으로 허용하는 정책을 비롯한 다른 모든 정책을 무시합니다. 자세한 내용은 키 액세스 문제 해결 단원을 참조하세요.

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": [ "kms:DisableKey", "kms:ScheduleKeyDeletion" ], "Resource": "*" } }