기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
IAM 정책 예시
이 섹션에서는 다양한 AWS KMS 작업에 대한 권한을 허용하는 IAM 정책의 예를 제공합니다.
중요
다음 정책에 포함된 권한 중 일부는 KMS 키의 키 정책에서도 허용하는 경우에만 허용됩니다. 자세한 내용은 권한 참조 단원을 참조하십시오.
JSON 정책 문서 작성 및 형식 지정에 대한 도움말은 IAM 사용 설명서의 IAM JSON 정책 참조를 참조하십시오.
예시
사용자가 AWS KMS 콘솔에서 KMS 키를 볼 수 있도록 허용
다음 IAM 정책은 사용자가 AWS KMS 콘솔에 읽기 전용 액세스를 할 수 있도록 허용합니다. 이러한 권한이 있는 사용자는 AWS 계정의 모든 KMS 키를 볼 수 있지만 KMS 키를 만들거나 변경할 수는 없습니다.
AWS 관리형 키 및 고객 관리형 키 페이지에서 KMS 키를 보려면, 키에 태그나 별칭이 없더라도 보안 주체에게 kms:ListKeys, kms:ListAliases 및 tag:GetResources 권한이 필요합니다. 나머지 사용 권한, 특히 kms:DescribeKey는 KMS 키 세부 정보 페이지에서 선택적 KMS 키 테이블 열 및 데이터를 보는 데 필요합니다. iam:ListUsers 및 iam:ListRoles 권한은 오류 없이 기본 보기에 키 정책을 표시하는 데 필요합니다. 사용자 지정 키 스토어 페이지의 데이터와 사용자 지정 키 저장소의 KMS 키에 대한 세부 정보를 보려면 보안 주체에 kms:DescribeCustomKeyStores 권한도 필요합니다.
사용자의 콜솔 액세스를 특정 KMS 키로 제한하면 콘솔에서 보이지 않는 각 KMS 키에 대한 오류를 표시합니다.
이 정책에는 두 가지 정책 설명이 포함됩니다. 첫 번째 정책 설명의 Resource
요소는 예제 AWS 계정의 모든 리전에 있는 모든 KMS 키에 대해 지정된 권한을 허용합니다. 콘솔 뷰어는 AWS KMS 콘솔이 보안 주체의 계정에 KMS 키만 표시하므로 추가 액세스가 필요하지 않습니다. 다른 AWS 계정의 KMS 키를 볼 수 있는 권한이 있는 경우에도 마찬가지입니다. 나머지 AWS KMS 및 IAM 권한에는 특정 KMS 키에 적용되지 않으므로 "Resource": "*"
요소가 필요합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOnlyAccessForAllKMSKeysInAccount", "Effect": "Allow", "Action": [ "kms:GetPublicKey", "kms:GetKeyRotationStatus", "kms:GetKeyPolicy", "kms:DescribeKey", "kms:ListKeyPolicies", "kms:ListResourceTags", "tag:GetResources" ], "Resource": "arn:aws:kms:*:111122223333:key/*" }, { "Sid": "ReadOnlyAccessForOperationsWithNoKMSKey", "Effect": "Allow", "Action": [ "kms:ListKeys", "kms:ListAliases", "iam:ListRoles", "iam:ListUsers" ], "Resource": "*" } ] }
사용자가 KMS 키를 생성할 수 있도록 허용
다음 IAM 정책은 사용자가 모든 유형의 KMS 키를 만들 수 있도록 허용합니다. CreateKey
작업에서는 특정 AWS KMS 리소스(KMS 키 또는 별칭)를 사용하지 않기 때문에 Resource
요소의 값은 *
입니다.
사용자를 특정 유형의 KMS 키로 제한하려면 kms:KeySpec, kms:KeyUsage, kms:KeyOrigin 조건 키를 사용합니다.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*" } }
키를 만드는 보안 주체에게는 몇 가지 관련 사용 권한이 필요할 수 있습니다.
-
kms:PutKeyPolicy —
kms:CreateKey
권한이 있는 보안 주체는 KMS 키에 대한 초기 키 정책을 설정할 수 있습니다. 그러나,CreateKey
호출자는 KMS 키 정책을 변경할 수 있는 kms:PutKeyPolicy 권한이 있어야 하고, 권장되지 않는CreateKey
의BypassPolicyLockoutSafetyCheck
파라미터를 지정해야 합니다.CreateKey
호출자는 IAM 정책에서 KMS 키에 대한kms:PutKeyPolicy
권한을 가져오거나 생성 중인 KMS 키의 키 정책에 이 권한을 포함할 수 있습니다. -
kms:TagResource —
CreateKey
작업 중에 KMS 키에 태그를 추가하려면CreateKey
호출자는 IAM 정책에서 kms:TagResource 권한이 있어야 합니다. 새 KMS 키의 키 정책에 이 권한을 포함시키는 것만으로는 충분하지 않습니다. 그러나,CreateKey
호출자가 초기 키 정책에kms:TagResource
를 포함하는 경우 KMS 키가 생성된 후 별도의 호출에서 태그를 추가할 수 있습니다. -
kms:CreateAlias — AWS KMS 콘솔에서 KMS 키를 생성하는 보안 주체는 KMS 키 및 별칭에 대한 kms:CreateAlias 권한이 있어야 합니다. (콘솔은
CreateKey
,CreateAlias
를 각각 한 번씩, 두 번 호출합니다.) IAM 정책에서 별칭 권한을 제공해야 합니다. 키 정책 또는 IAM 정책에서 KMS 키 권한을 제공할 수 있습니다. 자세한 내용은 별칭에 대한 액세스 제어 섹션을 참조하세요.
kms:CreateKey
외에도 다음 IAM 정책은 계정의 모든 별칭에 대한 AWS 계정 및 kms:CreateAlias
권한의 모든 KMS 키에 대한 kms:TagResource
권한을 제공합니다. 또한 IAM 정책에서만 제공할 수 있는 몇 가지 유용한 읽기 전용 권한도 포함되어 있습니다.
이 IAM 정책에는 키 정책에서 설정할 수 있는 권한 또는 기타 kms:PutKeyPolicy
권한이 포함되어 있지 않습니다. 하나의 KMS 키에만 적용되는 키 정책에 이러한 권한을 설정하는 것이 모범 사례입니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMPermissionsForParticularKMSKeys", "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": "IAMPermissionsForAllKMSKeys", "Effect": "Allow", "Action": [ "kms:CreateKey", "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" } ] }
사용자가 특정 AWS 계정에서 KMS 키로 암호화와 해독을 수행하도록 허용
다음 IAM 정책은 사용자가 에서 AWS 계정 111122223333의 모든 KMS 키로 데이터를 암호화 및 해독할 수 있도록 허용합니다.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": "arn:aws:kms:*:111122223333:key/*" } }
사용자가 특정 AWS 계정 및 리전에서 KMS 키로 암호화와 해독을 수행하도록 허용
다음 IAM 정책은 사용자가 미국 서부(오레곤) 리전에서 AWS 계정 111122223333
의 모든 KMS 키로 데이터를 암호화 및 해독할 수 있도록 허용합니다.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/*" ] } }
사용자가 특정 KMS 키로 암호화와 해독을 수행하도록 허용
다음 IAM 정책은 사용자가 Resource
요소에 지정된 두 개의 KMS 키를 사용하여 데이터를 암호화하고 해독할 수 있도록 허용합니다. IAM 정책 설명에서 KMS 키를 지정할 때 KMS 키의 키 ARN을 사용해야 합니다.
{ "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" ] } }
사용자가 KMS 키를 비활성화하거나 삭제하지 못하도록 차단
다음 IAM 정책은 다른 IAM 정책이나 키 정책에 관련 권한이 있더라도 사용자가 KMS 키를 비활성화하거나 삭제하는 것을 금지합니다. 권한을 명시적으로 거부하는 정책이 동일한 권한을 명시적으로 허용하는 정책을 비롯한 다른 모든 정책을 무시합니다. 자세한 내용은 AWS KMS 권한 문제 해결 단원을 참조하십시오.
{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": [ "kms:DisableKey", "kms:ScheduleKeyDeletion" ], "Resource": "*" } }