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

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

고객 관리형 정책 예

이 단원에서는 다양한 IAM 작업에 대한 권한을 허용하는 AWS KMS 정책의 예를 제공합니다.

중요

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

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

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

다음 IAM 정책은 사용자가 AWS KMS 콘솔에 읽기 전용으로 액세스할 수 있도록 허용합니다. 이러한 권한이 있는 사용자는 CMKs 계정의 모든 AWS를 볼 수 있지만 CMKs를 생성하거나 변경할 수는 없습니다.

관리형 키CMKs 및 Customer managed keys(고객 관리형 키)AWS 페이지에서 를 보려면 보안 주체가 kms:ListKeyskms:ListAliases 권한을 요구합니다.https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html CMK 세부 정보 페이지에서 선택적 CMK 테이블 열과 데이터를 보려면 나머지 권한, 특히 kms:DescribeKey가 필요합니다. 오류 없이 기본 보기에 키 정책을 표시하려면 iam:ListUsersiam:ListRoles 권한이 필요합니다. 사용자 지정 키 스토어 페이지에서 데이터를 보고 사용자 지정 키 스토어의 에 대한 세부 정보를 보려면 보안 주체는 CMKskms:DescribeCustomKeyStores 권한도 필요합니다.

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

이 정책에는 두 가지 정책 설명이 포함되어 있습니다. 첫 번째 정책 설명의 Resource 요소는 예제 CMKs 계정의 모든 리전에 있는 모든 AWS에 대해 지정된 권한을 허용합니다. 콘솔은 보안 주체 계정의 AWS KMS만 표시하므로 콘솔 뷰어에는 추가 액세스 권한이 필요하지 않습니다.CMKs 이는 다른 CMKs 계정에서 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": "*" } ] }

사용자가 CMKs을 생성하도록 허용

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

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

키를 생성하는 보안 주체에게는 관련 권한이 필요할 수 있습니다.

  • kms:PutKeyPolicy — 권한이 있는 보안 주체는 kms:CreateKey에 대한 초기 키 정책을 설정할 수 있습니다.CMK 그러나 CreateKey 호출자는 CMK의 키 정책을 변경할 수 있는 kms:PutKeyPolicy 권한이 있어야 하며, 그렇지 않은 경우 권장되지 않는 BypassPolicyLockoutSafetyCheckCreateKey 파라미터를 지정해야 합니다. 호출자는 CreateKey 정책에서 kms:PutKeyPolicy에 대한 CMK 권한을 얻거나 생성 중인 IAM의 키 정책에 이 권한을 포함할 수 있습니다.CMK

  • kms:TagResource — 작업 중에 CMK에 태그를 추가하려면 CreateKey 호출자에게 CreateKey 정책에 kms:TagResource 권한이 있어야 합니다.IAM 새 CMK의 키 정책에 이 권한을 포함시키는 것은 충분하지 않습니다. 그러나 CreateKey 호출자가 초기 키 정책에 kms:TagResource를 포함하는 경우 CMK이 생성된 후 별도의 호출에서 태그를 추가할 수 있습니다.

  • kms:CreateAlias 콘솔에서 —를 생성하는 CMK 보안 주체에게는 CMK 및 별칭에 대한 AWS KMSkms:CreateAlias 권한이 있어야 합니다. 콘솔은 1 ~ CreateKey 및 1 ~ CreateAlias의 두 번의 호출을 수행합니다. 정책에서 별칭 권한을 제공해야 합니다.IAM 키 정책 또는 CMK 정책에 IAM 권한을 제공할 수 있습니다. 자세한 내용은 별칭에 대한 액세스 제어을(를) 참조하십시오.

외에도 다음 kms:CreateKey 정책은 IAM 계정의 모든 kms:TagResource에 대한 CMKs 권한과 계정이 속한 모든 별칭에 대한 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 계정의 CMK로 암호화와 해독을 수행하도록 허용

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

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

사용자가 특정 CMK 계정 및 리전에서 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/*" ] } }

사용자가 특정 CMKs를 사용하여 암호화 및 해독하도록 허용

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

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

사용자의 CMKs 비활성화 또는 삭제 방지

다음 IAM 정책은 다른 CMKs 정책이나 키 정책에서 이러한 권한을 허용하는 경우에도 사용자가 IAM를 비활성화하거나 삭제하지 못하도록 합니다. 권한을 명시적으로 거부하는 정책이 동일한 권한을 명시적으로 허용하는 정책을 비롯한 다른 모든 정책을 무시합니다. 자세한 내용은 키 액세스 문제 해결 단원을 참조하십시오.

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