AWS KMS에서 IAM 정책 사용 - AWS Key Management Service

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

AWS KMS에서 IAM 정책 사용

키 정책IAM, 권한 부여VPC 엔드포인트 정책과 함께 정책을 사용하여 에서 고객 마스터 키(CMKs)에 대한 액세스를 제어할 수 있습니다.AWS KMS

참고

정책을 사용하여 IAM에 대한 액세스를 제어하려면 CMK에 대한 키 정책에서 계정에 CMK 정책을 사용할 권한을 부여해야 합니다.IAM 특히 주요 정책에는 IAM 정책을 활성화하는 정책 설명이 포함되어야 합니다.

이 단원에서는 IAM 정책을 사용하여 AWS KMS 작업에 대한 액세스를 제어하는 방법에 대해 설명합니다. IAM에 대한 일반적인 정보는 IAM 사용 설명서 단원을 참조하십시오.

모든 CMKs에는 키 정책이 있어야 합니다. IAM 정책은 선택 사항입니다. 정책을 사용하여 IAM에 대한 액세스를 제어하려면 CMK의 키 정책에서 계정에 CMK 정책을 사용할 권한을 부여해야 합니다.IAM 특히 주요 정책에는 IAM 정책을 활성화하는 정책 설명이 포함되어야 합니다.

IAM 정책은 모든 AWS KMS 작업에 대한 액세스를 제어할 수 있습니다. 키 정책과 달리 IAM 정책은 여러 CMKs에 대한 액세스를 제어하고 여러 관련 AWS 서비스의 작업에 대한 권한을 제공할 수 있습니다. 그러나 IAM 정책은 특정 과 관련이 없기 때문에 키 정책으로는 제어할 수 없는 CreateKeyCMK 같은 작업에 대한 액세스를 제어하는 데 특히 유용합니다.

Amazon Virtual Private Cloud(Amazon VPC) 엔드포인트를 통해 AWS KMS에 액세스하는 경우, 엔드포인트를 사용할 때 VPC 엔드포인트 정책을 사용하여 AWS KMS 리소스에 대한 액세스를 제한할 수도 있습니다. 예를 들어, VPC 엔드포인트를 사용할 때 AWS 계정의 보안 주체만 CMKs에 액세스하도록 허용할 수 있습니다. 자세한 내용은 VPC 엔드포인트에 대한 액세스 제어 단원을 참조하십시오.

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

IAM 정책 개요

IAM 정책을 다음과 같이 사용할 수 있습니다.

  • 사용자 또는 그룹에 권한 정책 연결 – IAM 사용자 또는 사용자 그룹이 AWS KMS 작업을 호출하도록 허용하는 정책을 연결할 수 있습니다.

  • 연합 또는 교차 계정 권한을 위해 역할에 권한 정책 연결 – 역할에 IAM 정책을 연결하여 자격 증명 연동을 활성화하거나, 교차 계정 권한을 허용하거나, EC2 인스턴스에서 실행 중인 애플리케이션에 권한을 부여할 수 있습니다.IAM 역할의 다양한 사용 사례에 대한 자세한 내용은 IAM의 IAM 역할을 참조하십시오.IAM 사용 설명서

다음은 권한을 적용하는 정책의 예입니다. 이 정책은 연결된 IAM 자격 증명이 모든 CMKs 및 별칭을 나열하도록 허용합니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" } }

모든 IAM 정책처럼 이 정책에는 Principal 요소가 없습니다. IAM 사용자 또는 IAM 역할에 IAM 정책을 연결하면 사용자 또는 위임된 역할 사용자는 정책에 지정된 권한을 부여받습니다.

모든 AWS KMS API 작업과 해당 작업이 적용되는 리소스를 보여주는 표는 AWS KMS API 권한 참조 단원을 참조하십시오.

정책의 모범 사례IAM

모든 AWS KMS 리소스의 보안을 유지하려면 고객 마스터 키 CMKs(AWS)에 대한 액세스 보안이 중요합니다. AWS KMS CMKs는 AWS 계정에서 가장 중요한 여러 리소스를 보호하는 데 사용됩니다. 에 대한 액세스를 제어하는 키 정책, IAM 정책, 권한 부여VPC 엔드포인트 정책을 설계해 보십시오.CMKs

에 대한 액세스를 제어하는 IAM 정책 설명에서 CMKs최소 권한 원칙을 사용합니다. 보안 주체에게 이들이 사용하거나 관리해야 하는 IAM에 대해서만 필요한 권한을 부여합니다.CMKs

키 정책 사용

가능한 경우 다른 CMK 계정의 정책을 포함하여 많은 IAM에 적용할 수 있는 CMKs 정책이 아니라 하나의 AWS에 영향을 주는 키 정책에 권한을 제공하십시오. 이는 kms:PutKeyPolicykms:ScheduleKeyDeletion 같은 민감한 권한과 데이터가 보호되는 방식을 결정하는 암호화 작업에 특히 중요합니다.

권한 제한CreateKey

키(kms:CreateKey)가 필요한 보안 주체에게만 키(kms:CreateKey)를 생성할 수 있는 권한을 부여합니다. 을 생성하는 보안 주체는 자신이 생성한 CMK을 사용하고 관리할 권한을 스스로, 그리고 다른 사용자에게 부여할 수 있도록 키 정책도 설정합니다.CMKs 이 권한을 허용하는 경우 정책 조건을 사용하여 제한하는 것을 고려하십시오. 예를 들어, kms:CustomerMasterKeySpec 조건을 사용하여 권한을 대칭 CMKs로 제한할 수 있습니다.

정책에서 CMKs 지정IAM

가장 좋은 방법은 정책 설명의 요소에서 권한이 적용되는 각 의 CMK키 ARNResource을 지정하는 것입니다. 이 방법은 보안 주체가 요구하는 CMKs에 대한 권한을 제한합니다. 예를 들어 이 Resource 요소는 보안 주체가 사용해야 하는 CMKs만 나열합니다.

"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과 같이 신뢰할 수 있는 Resource 계정 및 리전에서 CMKs에 대한 액세스를 제한하는 AWS 값을 사용합니다.arn:aws:kms:region:account:key/* 또는 신뢰할 수 있는 CMKs 계정의 모든 리전(*)(예: AWS)에서 arn:aws:kms:*:account:key/*에 대한 액세스를 제한합니다.

정책에서 "리소스": "*" 방지IAM

와일드카드 문자(*)를 부당하게 사용합니다. 키 정책에서 Resource 요소의 와일드카드 문자는 키 정책이 연결된 CMK를 나타냅니다. 하지만 IAM 정책에서는 Resource 요소("Resource": "*")에 와일드카드 문자만 있으면 보안 주체의 계정에 사용 권한이 있는 모든 CMKs 계정의 모든 AWS에 권한이 적용됩니다. 여기에는 다른 AWS 계정의 CMKs 및 보안 주체 계정의 가 포함될 수 있습니다.CMKs

예를 들어, 다른 AWS 계정에서 CMK를 사용하려면 보안 주체는 외부 계정에서 CMK의 키 정책으로부터 그리고 자신의 계정에서 IAM 정책으로부터 권한이 필요합니다. 임의 계정이 AWS 계정에 에 대한 kms:DecryptCMKs 권한을 부여했다고 가정합니다. 그렇다면 모든 IAM(kms:Decrypt)에 대한 CMKs 권한을 역할에 부여하는 계정의 "Resource": "*" 정책이 요구 사항의 IAM 부분을 충족할 것입니다. 따라서 해당 역할을 맡을 수 있는 보안 주체는 이제 신뢰할 수 없는 계정에서 CMK를 사용하여 암호화 텍스트를 해독할 수 있습니다. 작업에 대한 항목은 두 계정의 CloudTrail 로그에 표시됩니다.

특히 다음 API 작업을 허용하는 정책 설명에 "Resource": "*"를 사용하지 마십시오. 이러한 작업은 다른 CMKs 계정의 AWS에서 호출할 수 있습니다.

"리소스": "*"를 사용하는 경우

정책에서는 필요한 권한에 대해서만 IAM 요소에 와일드카드 문자를 사용합니다.Resource 다음 권한에만 "Resource": "*" 요소가 필요합니다.

참고

별칭 작업(kms:CreateAlias, kms:UpdateAlias, kms:DeleteAlias)에 대한 권한을 별칭 및 CMK에 연결해야 합니다. 정책에서 "Resource": "*"를 사용하여 별칭과 IAM를 나타내거나 CMKs 요소에서 별칭과 CMKs를 지정할 수 있습니다.Resource 예제는 별칭에 대한 액세스 제어을 참조하십시오.

 

이 주제의 예제에서는 IAM에 대한 CMKs 정책을 설계하기 위한 자세한 정보와 지침을 제공합니다. 일반적인 AWS KMS 모범 사례 지침은 AWS Key Management Service 모범 사례 백서 단원을 참조하십시오.

정책 설명에 CMKs 지정IAM

정책을 사용하여 보안 주체가 IAM를 사용하거나 관리하도록 허용할 수 있습니다.CMKs CMKs는 정책 설명의 Resource 요소에 지정됩니다.

정책 설명을 작성할 때 모든 에 대한 액세스 권한을 부여하지 않고 를 보안 주체가 사용해야 하는 정책 문으로 제한하는 것이 CMKs모범 사례CMKs입니다.

  • 정책 문에서 특정 CMKs를 지정하려면 각 IAM의 키 ARN을 사용합니다.CMK 키 ID, 별칭 이름 또는 별칭 ARN을 사용하여 정책 설명에서 CMK를 식별할 수 없습니다.IAM

    다음 예를 참조하십시오. "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"

  • 계정 및 리전에서 여러 CMKs를 지정하려면 키 ARN의 리전 또는 리소스 ID 위치에 와일드카드 문자(*)를 사용합니다.

    예를 들어 계정의 CMKs 리전에서 모든 미국 서부(오레곤)를 지정하려면 "Resource": "arn:aws:kms:us-west-2:111122223333:key/*"를 사용합니다. 계정의 모든 리전에서 모든 CMKs를 지정하려면 "Resource": "arn:aws:kms:*:111122223333:key/*"를 사용합니다.

  • 모든 CMKs를 나타내려면 와일드카드 문자만 사용합니다("*"). 특정 CMK, 즉 CreateKey, GenerateRandom, ListAliases 및 를 사용하지 않는 작업에는 이 형식을 사용합니다.ListKeys

예를 들어 다음 IAM 정책 설명을 사용하면 보안 주체가 정책 설명의 요소에 나열된 DescribeKey에서만 , GenerateDataKey, Decrypt 작업을 호출할 수 있습니다.CMKsResource 키 ARN으로 CMKs를 지정하면 권한이 지정된 CMKs로만 제한됩니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "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 계정의 모든 AWS에 권한을 적용하려면 리전 및 키 ID 위치에 와일드카드 문자(*)를 사용할 수 있습니다. 예를 들어 다음 정책 설명을 통해 보안 주체는 두 개의 신뢰할 수 있는 예제 계정에서 모든 CMKs에 대해 지정된 작업을 호출할 수 있습니다.

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

요소에 와일드카드 문자("*")만 사용할 수도 있습니다.Resource 계정에 사용 권한이 있는 모든 CMKs에 대한 액세스를 허용하므로 주로 특정 CMK 및 Deny 문과 관련되지 않은 작업에 권장됩니다. 덜 민감한 읽기 전용 작업만 허용하는 정책 설명에도 이를 사용할 수 있습니다. 작업에 특정 AWS KMS가 포함되는지 여부를 확인하려면 CMK에 있는 테이블의 리소스CMK 열에서 값을 찾습니다.AWS KMS API 권한: 조치 및 리소스 참조

예를 들어 다음 정책 설명은 Deny 효과를 사용하여 보안 주체가 CMK에서 지정된 작업을 사용하지 못하도록 금지합니다. 요소에 와일드카드 문자를 사용하여 모든 Resource를 나타냅니다.CMKs

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

다음 정책 설명은 와일드카드 문자만 사용하여 모든 CMKs를 나타냅니다. 하지만 덜 민감한 읽기 전용 작업과 특정 CMK에 적용되지 않는 작업만 허용합니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:CreateKey", "kms:ListKeys", "kms:ListAliases", "kms:ListResourceTags" ], "Resource": "*" } }

AWS KMS 콘솔 사용에 필요한 권한

사용자가 AWS KMS 콘솔로 작업하려면 계정에 대한 리소스 작업을 하도록 허용하는 최소 권한이 있어야 합니다. 이러한 AWS KMS 권한 외에 IAM 사용자와 역할을 나열할 수 있는 권한도 가지고 있어야 합니다. 최소 필수 권한보다 더 제한적인 IAM 정책을 만들면 AWS KMS 콘솔은 해당 IAM 정책에 연결된 사용자에 대해 의도대로 작동하지 않습니다.

사용자에게 AWS KMS 콘솔에 대한 읽기 전용 액세스를 허용하기 위해 필요한 최소 권한은 사용자가 CMKs 콘솔에서 AWS KMS를 볼 수 있도록 허용 단원을 참조하십시오.

사용자가 AWS KMS 콘솔로 CMKs를 생성하고 관리할 수 있도록 허용하려면 다음 단원에 설명된 대로 AWSKeyManagementServicePowerUser 관리형 정책을 사용자에게 연결합니다.

AWS KMS 또는 AWS명령줄 도구SDKs를 통해 API로 작업하는 사용자에게 최소 콘솔 권한을 허용할 필요가 없습니다.https://aws.amazon.com/tools/#cli 그러나 이러한 사용자에게 API 사용 권한을 부여해야 합니다. 자세한 정보는 AWS KMS API 권한 참조 단원을 참조하십시오.

파워 유저를 위한 AWS 관리형 정책

관리형 정책AWS을 사용하여 계정의 보안 주체에 파워 유저의 권한을 부여할 수 있습니다.IAM 파워 유저는 CMKs을 생성하고, 생성한 CMKs를 사용 및 관리하며, 모든 CMKs 및 IAM 자격 증명을 볼 수 있습니다.

참고

이 정책은 파워 유저 kms:DescribeKey에 작업을 허용하는 키 정책을 사용하여 CMK에 대한 권한을 부여합니다. 여기에는 신뢰할 수 없는 CMKs 계정의 AWS가 포함될 수 있습니다. 자세한 내용은 정책의 모범 사례IAM 단원을 참조하십시오.

AWSKeyManagementServicePowerUser 관리형 정책에는 다음 권한이 포함됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateAlias", "kms:CreateKey", "kms:DeleteAlias", "kms:Describe*", "kms:GenerateRandom", "kms:Get*", "kms:List*", "kms:TagResource", "kms:UntagResource", "iam:ListGroups", "iam:ListRoles", "iam:ListUsers" ], "Resource": "*" } ] }
  • 사용자가 CMKs를 생성하도록 허용합니다. 이 프로세스에는 키 정책 설정이 포함되므로 파워 유저가 자신이 생성한 CMKs을 사용하고 관리할 권한을 스스로, 그리고 다른 사용자에게 부여할 수 있습니다.

  • 사용자가 모든 에서 별칭태그CMKs를 생성하고 삭제할 수 있도록 허용합니다.

  • 사용자가 키 ARN, 암호화 구성, 키 정책, 별칭, 태그 및 CMKs교체 상태를 포함하여 모든 에 대한 세부 정보를 가져올 수 있습니다.

  • 사용자가 IAM 사용자, 그룹 및 역할을 나열할 수 있습니다.

  • 이 정책은 모든 CMKs에서 별칭과 태그를 관리할 수 있지만, 생성하지 않은 CMKs를 사용하거나 관리할 수 있는 권한을 이러한 사용자에게 부여하지 않습니다.

관리형 정책이 있는 사용자는 키 정책, 기타 AWSKeyManagementServicePowerUser 정책 및 권한 부여를 포함하여 다른 소스로부터 권한을 얻을 수도 있습니다.IAM

고객 관리형 정책 예

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

중요

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

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

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

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

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

사용자의 콘솔 액세스를 특정 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": "*" } }