기본 키 정책 - AWS Key Management Service

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

기본 키 정책

KMS 키를 생성할 때 새 키에 대한 KMS 키 정책을 지정할 수 있습니다. 제공하지 않으면에서 자동으로 AWS KMS 생성합니다. 에서 AWS KMS 사용하는 기본 키 정책은 AWS KMS 콘솔에서 키를 생성할지 아니면를 사용할지에 따라 다릅니다 AWS KMS API.

프로그래밍 방식으로 키를 생성할 때 기본 KMS 키 정책

를 사용하여 프로그래밍 방식으로 KMS 키를 생성하고AWS KMS API(AWS SDKs, AWS Command Line Interface 또는 사용 포함AWS Tools for PowerShell) 키 정책을 지정하지 않으면는 매우 간단한 기본 키 정책을 AWS KMS 적용합니다. 이 기본 키 정책에는 키를 소유한에 KMS 정책을 사용하여 키의 모든 AWS KMS 작업에 액세스할 수 AWS 계정 있는 권한을 부여하는 IAM 정책 문이 하나 있습니다KMS. 이 정책 설명에 대한 자세한 내용은 에 대한 액세스 허용 AWS 계정 및 IAM 정책 활성화 섹션을 참조하세요.

를 사용하여 키를 생성할 때 기본 KMS 키 정책 AWS Management Console

로 KMS 키를 생성 AWS Management Console하면 키 정책은에 대한 액세스를 허용 AWS 계정 하고 IAM 정책을 활성화하는 정책 설명으로 시작됩니다. 그런 다음 콘솔은 키 관리자 문, 키 사용자 문 및 (대부분의 키 유형에 대해) 보안 주체가 다른 AWS 서비스와 함께 KMS 키를 사용할 수 있도록 허용하는 문을 추가합니다. AWS KMS 콘솔의 기능을 사용하여 IAM 사용자, 및를 키 관리자IAMroles AWS 계정 로 지정하고를 키 사용자(또는 둘 다)로 지정할 수 있습니다.

권한

에 대한 액세스 허용 AWS 계정 및 IAM 정책 활성화

다음 기본 키 정책 문은 매우 중요합니다.

  • 키를 소유 AWS 계정 한에 KMS 키에 대한 전체 액세스 권한을 부여합니다KMS.

    다른 AWS 리소스 정책과 달리 AWS KMS 키 정책은 계정 또는 해당 자격 증명에 대한 권한을 자동으로 부여하지 않습니다. 계정 관리자에게 권한을 부여하려면 키 정책에 이와 같이 이 권한을 제공하는 명시적인 문이 포함되어야 합니다.

  • 이를 통해 계정은 정책을 사용하여 KMS 키 IAM 정책 외에도 키에 대한 액세스를 허용할 수 있습니다.

    이 권한이 없으면 키에 대한 액세스를 허용하는 IAM 정책은 효과가 없지만 키에 대한 액세스를 거부하는 IAM 정책은 여전히 유효합니다.

  • 이는 삭제할 수 없는 계정 루트 사용자를 포함한 계정 관리자에게 액세스 제어 권한을 부여하여 키를 관리할 수 없게 될 위험을 줄입니다.

다음 키 정책 문은 프로그래밍 방식으로 생성된 키에 대한 전체 기본 KMS 키 정책입니다. AWS KMS 콘솔에서 생성된 키에 대한 기본 KMS 키 정책의 첫 번째 정책 문입니다.

{ "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }
IAM 정책이 KMS 키에 대한 액세스를 허용하도록 허용합니다.

위에 표시된 키 정책 문은 키를 소유 AWS 계정 한에 키에 대한 모든 작업(kms:*)을 허용하는 IAM 키 정책 및 키 정책을 사용할 수 있는 권한을 부여합니다KMS.

이 키 정책 설명의 보안 주체는 계정 보안 주체이며,이 보안 주체는 형식으로 ARN로 표시됩니다arn:aws:iam::account-id:root. 계정 보안 주체는 AWS 계정과 해당 관리자를 나타냅니다.

키 정책 설명의 보안 주체가 계정 보안 주체인 경우 정책 설명에서는 IAM 보안 주체에게 KMS 키를 사용할 수 있는 권한을 부여하지 않습니다. 대신 계정을 통해 IAM 정책을 사용하여 정책 설명에 지정된 권한을 위임할 수 있습니다. 이 기본 키 정책 문을 통해 계정은 IAM 정책을 사용하여 KMS 키의 모든 작업(kms:*)에 대한 권한을 위임할 수 있습니다.

KMS 키를 관리할 수 없게 될 위험을 줄입니다.

다른 AWS 리소스 정책과 달리 AWS KMS 키 정책은 계정 또는 해당 보안 주체에게 권한을 자동으로 부여하지 않습니다. 계정 보안 주체를 포함한 모든 보안 주체에게 권한을 부여하려면 권한을 명시적으로 제공하는 키 정책 문을 사용해야 합니다. 계정 보안 주체 또는 보안 주체에게 KMS 키에 대한 액세스 권한을 부여할 필요는 없습니다. 그러나 계정 보안 주체에게 액세스 권한을 부여하면 키를 관리할 수 없게 되는 문제를 방지할 수 있습니다.

예를 들어 키에 대한 액세스 권한을 한 명만 부여하는 KMS 키 정책을 생성한다고 가정해 보겠습니다. 그런 다음 해당 사용자를 삭제하면 키를 관리할 수 없게 되며 KMS 키에 대한 액세스 권한을 다시 얻으려면 Support에 문의 AWS해야 합니다.

위에 표시된 키 정책 문은 계정 루트 사용자를 포함하여 및 해당 관리자를 나타내는 계정 보안 주체에 키를 제어할 수 있는 권한을 부여합니다. AWS 계정 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html 계정 루트 사용자는를 삭제하지 않는 한 삭제할 수 없는 유일한 보안 주체입니다 AWS 계정. IAM 모범 사례에서는 긴급 상황을 제외하고 계정 루트 사용자를 대신하여 작업을 수행하지 않는 것이 좋습니다. 그러나 KMS 키에 액세스할 수 있는 다른 모든 사용자와 역할을 삭제하는 경우 계정 루트 사용자 역할을 수행해야 할 수 있습니다.

키 관리자가 KMS 키를 관리할 수 있도록 허용

콘솔이 생성한 기본 키 정책을 통해 해당 계정에서 IAM 사용자와 역할을 선택하고 이들을 키 관리자로 지정할 수 있습니다. 이 문은 키 관리자 문이라고 합니다. 키 관리자는 KMS 키를 관리할 수 있는 권한이 있지만 암호화 작업에서 KMS 키를 사용할 수 있는 권한은 없습니다. 기본 보기 또는 정책 보기에서 KMS 키를 생성할 때 키 관리자 목록에 IAM 사용자와 역할을 추가할 수 있습니다.

주의

키 관리자는 키 정책을 변경하고 권한 부여를 생성할 수 있는 권한이 있으므로이 정책에 지정되지 않은 AWS KMS 권한을 자신과 다른 사람에게 부여할 수 있습니다.

태그 및 별칭을 관리할 권한이 있는 보안 주체도 KMS 키에 대한 액세스를 제어할 수 있습니다. 세부 정보는 AWS KMS의 ABAC을 참조하세요.

참고

IAM 모범 사례에서는 장기 자격 증명이 있는 IAM 사용자를 사용하지 않는 것이 좋습니다. 가능하면 임시 자격 증명을 제공하는 IAM 역할을 사용합니다. 자세한 내용은 IAM 사용 설명서의의 보안 모범 사례를 IAM 참조하세요.

다음은 AWS KMS 콘솔의 기본 보기에서 키 관리자 문을 나타낸 예제입니다.

콘솔의 기본 키 정책의 키 관리자, 기본 보기

다음은 AWS KMS 콘솔의 기본 보기의 예제 키 관리자 문입니다. 이 키 관리자 문은 단일 리전 대칭 암호화 KMS 키를 위한 것입니다.

참고

AWS KMS 콘솔은 명령문 식별자 아래의 키 정책에 키 관리자를 추가합니다"Allow access for Key Administrators". 이 문 식별자를 수정하면 콘솔이 문에 대한 업데이트를 표시하는 방식에 영향을 미칠 수 있습니다.

{ "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": {"AWS":"arn:aws:iam::111122223333:role/ExampleAdminRole"}, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion", "kms:RotateKeyOnDemand" ], "Resource": "*" }

가장 일반적인 키인 단일 리전 대칭 암호화 KMS 키에 대한 기본 KMS 키 관리자 문은 다음 권한을 허용합니다. 이러한 권한에 대한 자세한 내용은 AWS KMS 권한 섹션을 참조하세요.

AWS KMS 콘솔을 사용하여 KMS 키를 생성하면 콘솔은 키 관리자 명령문의 Principal 요소에 지정한 사용자와 역할을 추가합니다.

많은 경우 이러한 권한에 와일드카드 문자(*)가 포함되며, 지정된 동사로 시작하는 모든 권한이 허용됩니다. 따라서가 새 API 작업을 AWS KMS 추가하면 키 관리자가 자동으로 해당 작업을 사용할 수 있습니다. 새 작업을 포함하도록 키 정책을 업데이트할 필요는 없습니다. 키 관리자를 고정 API 작업 세트로 제한하려는 경우 키 정책을 변경할 수 있습니다.

kms:Create*

kms:CreateAliaskms:CreateGrant를 허용합니다. (kms:CreateKey권한은 IAM 정책에서만 유효합니다.)

kms:Describe*

kms:DescribeKey를 허용합니다. 에서 키의 키 세부 정보 페이지를 보려면 kms:DescribeKey 권한이 필요합니다KMS AWS Management Console.

kms:Enable*

kms:EnableKey를 허용합니다. 대칭 암호화 KMS 키의 경우 도 허용합니다kms:EnableKeyRotation.

kms:List*

kms:ListGrants, kms:ListKeyPolicieskms:ListResourceTags를 허용합니다. (에서 KMS 키를 보는 데 필요한 kms:ListAliaseskms:ListKeys 권한 AWS Management Console은 IAM 정책에서만 유효합니다.)

kms:Put*

kms:PutKeyPolicy를 허용합니다. 이 권한을 통해 키 관리자는이 키의 KMS 키 정책을 변경할 수 있습니다.

kms:Update*

kms:UpdateAliaskms:UpdateKeyDescription를 허용합니다. 다중 리전 키의 경우이 KMS 키kms:UpdatePrimaryRegion에서를 허용합니다.

kms:Revoke*

키 관리자가 권한 부여에서 사용 중지되는 보안 주체가 아니어도 권한 부여를 삭제할 수 있도록 kms:RevokeGrant를 허용합니다.

kms:Disable*

kms:DisableKey를 허용합니다. 대칭 암호화 KMS 키의 경우 도 허용합니다kms:DisableKeyRotation.

kms:Get*

kms:GetKeyPolicykms:GetKeyRotationStatus를 허용합니다. 가져온 KMS 키 구성 요소가 있는 키의 경우를 허용합니다kms:GetParametersForImport. 비대칭 KMS 키의 경우를 허용합니다kms:GetPublicKey. 에서 키의 KMS 키 정책을 보려면 kms:GetKeyPolicy 권한이 필요합니다 AWS Management Console.

kms:Delete*

kms:DeleteAlias를 허용합니다. 가져온 키 구성 요소가 있는 키의 경우 kms:DeleteImportedKeyMaterial을 허용합니다. kms:Delete* 권한은 키 관리자가 KMS 키()를 삭제하도록 허용하지 않습니다ScheduleKeyDeletion.

kms:TagResource

키 관리자가 KMS 키에 태그를 추가할 수 kms:TagResource있는를 허용합니다. 태그는 KMS 키에 대한 액세스를 제어하는 데에도 사용할 수 있으므로이 권한은 관리자가 KMS 키에 대한 액세스를 허용하거나 거부할 수 있도록 허용할 수 있습니다. 세부 정보는 AWS KMS의 ABAC을 참조하세요.

kms:UntagResource

키 관리자가 KMS 키에서 태그를 삭제할 수 kms:UntagResource있는를 허용합니다. 태그를 사용하여 키에 대한 액세스를 제어할 수 있으므로이 권한은 관리자가 KMS 키에 대한 액세스를 허용하거나 거부할 수 있도록 허용할 수 있습니다. 세부 정보는 AWS KMS의 ABAC을 참조하세요.

kms:ScheduleKeyDeletion

키 관리자가 이 KMS 키를 삭제할kms:ScheduleKeyDeletion있는를 허용합니다. 이 권한을 삭제하려면 키 관리자가 이 키를 삭제하도록 허용(Allow key administrators to delete this key) 옵션을 삭제합니다.

kms:CancelKeyDeletion

키 관리자가이 키의 삭제를 취소할 수 kms:CancelKeyDeletion있는를 허용합니다. KMS 이 권한을 삭제하려면 키 관리자가 이 키를 삭제하도록 허용(Allow key administrators to delete this key) 옵션을 삭제합니다.

kms:RotateKeyOnDemand

키 관리자가 이 KMS 키에서 키 구성 요소의 온디맨드 교체를 수행할kms:RotateKeyOnDemand있는를 허용합니다.

 

AWS KMS 는 특수 목적 키를 생성할 때 기본 키 관리자 문에 다음 권한을 추가합니다.

kms:ImportKeyMaterial

kms:ImportKeyMaterial 권한을 통해 키 관리자는 키 구성 요소를 KMS 키로 가져올 수 있습니다. 이 권한은 키 구성 요소 없이 KMS 키를 생성하는 경우에만 키 정책에 포함됩니다.

kms:ReplicateKey

kms:ReplicateKey 권한을 통해 키 관리자는 다른 AWS 리전에서 다중 리전 기본 키의 복제본을 생성할 수 있습니다. 이 권한은 다중 리전 기본 또는 복제본 키를 생성하는 경우에만 키 정책에 포함됩니다.

kms:UpdatePrimaryRegion

kms:UpdatePrimaryRegion 권한은 키 관리자가 다중 리전 복제본 키를 다중 리전 기본 키로 변경하도록 허용합니다. 이 권한은 다중 리전 기본 또는 복제본 키를 생성하는 경우에만 키 정책에 포함됩니다.

키 사용자가 KMS 키를 사용하도록 허용

콘솔에서 키에 대해 생성하는 기본 KMS 키 정책을 사용하면 계정 및 외부에서 IAM 사용자 AWS 계정와 IAM 역할을 선택하고 키 사용자를 만들 수 있습니다.

콘솔은 키 사용자에 대한 키 정책에 두 개의 정책 문을 추가합니다.

  • KMS 키 직접 사용 - 첫 번째 키 정책 문은 키 사용자에게 해당 KMS 유형의 키에 대해 지원되는 모든 암호화 작업에 KMS 키를 직접 사용할 수 있는 권한을 부여합니다.

  • 서비스와 함께 KMS AWS 키 사용 - 두 번째 정책 문은와 통합된 AWS 서비스가 Amazon S3 버킷 및 Amazon DynamoDB 테이블과 같은 리소스를 보호하기 위해 키를 사용할 수 있는 권한을 AWS KMS KMS 키 사용자에게 부여합니다.

KMS 키를 생성할 때 키 IAM 사용자 목록에 사용자, IAM 역할 및 기타 AWS 계정 를 추가할 수 있습니다. 다음 이미지에서 보듯이, 키 정책에 대한 콘솔의 기본 보기로 목록을 편집할 수도 있습니다. 키 정책의 기본 보기는 키 세부 정보 페이지에 있습니다. 다른의 사용자가 KMS 키를 사용하도록 허용하는 AWS 계정 방법에 대한 자세한 내용은 섹션을 참조하세요다른 계정의 사용자가 KMS를 사용하도록 허용.

참고

IAM 모범 사례에서는 장기 자격 증명이 있는 IAM 사용자를 사용하지 않는 것이 좋습니다. 가능하면 임시 자격 증명을 제공하는 IAM 역할을 사용합니다. 자세한 내용은 IAM 사용 설명서의의 보안 모범 사례를 IAM 참조하세요.

콘솔의 기본 키 정책의 키 사용자, 기본 보기

단일 리전 대칭에 대한 기본 키 사용자 문은 다음과 같은 권한을 허용합니다. 각 권한에 대한 자세한 내용은 AWS KMS 권한 섹션을 참조하세요.

AWS KMS 콘솔을 사용하여 KMS 키를 생성하면 콘솔은 사용자가 지정한 사용자와 역할을 각 키 사용자 명령문의 Principal 요소에 추가합니다.

참고

AWS KMS 콘솔은 문 식별자 "Allow use of the key" 및 아래의 키 정책에 키 사용자를 추가합니다"Allow attachment of persistent resources". 이러한 문 식별자를 수정하면 콘솔이 문에 대한 업데이트를 표시하는 방식에 영향을 미칠 수 있습니다.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:role/ExampleRole", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:role/ExampleRole", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} }

키 사용자가 암호화 작업에 KMS 키를 사용하도록 허용

키 사용자는 KMS 키에서 지원되는 모든 암호화 작업에서 직접 KMS 키를 사용할 수 있는 권한이 있습니다. 또한 DescribeKey 작업을 사용하여 AWS KMS 콘솔에서 또는 작업을 사용하여 KMS 키에 대한 자세한 정보를 가져올 수 있습니다 AWS KMS API.

기본적으로 AWS KMS 콘솔은 다음 예제와 같은 키 사용자 문을 기본 키 정책에 추가합니다. 서로 다른 API 작업을 지원하므로 대칭 암호화 KMS 키, HMAC KMS 키, 퍼블릭 키 암호화를 위한 비대칭 KMS 키, 서명 및 확인을 위한 비대칭 KMS 키에 대한 정책 설명의 작업은 약간 다릅니다.

대칭 암호화 KMS 키

콘솔은 대칭 암호화 키에 대한 KMS 키 정책에 다음 문을 추가합니다.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*" ], "Resource": "*" }
HMAC KMS 키

콘솔은 HMAC KMS 키에 대한 키 정책에 다음 문을 추가합니다.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:DescribeKey", "kms:GenerateMac", "kms:VerifyMac" ], "Resource": "*" }
퍼블릭 KMS 키 암호화를 위한 비대칭 키

콘솔은 키 사용량이 암호화 및 복호화인 비대칭 KMS 키에 대한 키 정책에 다음 문을 추가합니다.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:DescribeKey", "kms:GetPublicKey" ], "Resource": "*" }
서명 및 확인을 위한 비대칭 KMS 키

콘솔은 키 사용량이 서명 및 확인인 비대칭 KMS 키에 대한 키 정책에 다음 문을 추가합니다.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:DescribeKey", "kms:GetPublicKey", "kms:Sign", "kms:Verify" ], "Resource": "*" }
공유 보안 암호 도출을 위한 비대칭 KMS 키

콘솔은 키 계약을 사용하는 비대칭 KMS 키에 대한 키 정책에 다음 문을 추가합니다.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:DescribeKey", "kms:GetPublicKey", "kms:DeriveSharedSecret" ], "Resource": "*" }

이러한 문의 작업은 키 사용자에게 다음 권한을 제공합니다.

kms:Encrypt

키 사용자가이 KMS 키로 데이터를 암호화할 수 있습니다.

kms:Decrypt

키 사용자가이 KMS 키를 사용하여 데이터를 복호화할 수 있습니다.

kms:DeriveSharedSecret

키 사용자가이 KMS 키로 공유 보안 암호를 추출할 수 있도록 허용합니다.

kms:DescribeKey

키 사용자가 식별자, 생성 날짜 및 KMS 키 상태를 포함하여이 키에 대한 자세한 정보를 얻을 수 있습니다. 또한 키 사용자가 AWS KMS 콘솔에서 KMS 키에 대한 세부 정보를 표시할 수 있습니다.

kms:GenerateDataKey*

키 사용자가 클라이언트 측 암호화 작업을 위해 대칭 데이터 키 또는 비대칭 데이터 키 페어를 요청하도록 허용합니다. 콘솔은 * 와일드카드 문자를 사용하여 GenerateDataKey, GenerateDataKeyWithoutPlaintext, 및 API 작업에 대한 권한을 나타냅니다GenerateDataKeyPairGenerateDataKeyPairWithoutPlaintext. 이러한 권한은 데이터 KMS 키를 암호화하는 대칭 키에만 유효합니다.

kms:GenerateMac

키 사용자가 HMAC KMS 키를 사용하여 HMAC 태그를 생성할 수 있습니다.

kms:GetPublicKey

키 사용자가 비대칭 키의 퍼블릭 KMS 키를 다운로드할 수 있습니다. 이 퍼블릭 키를 공유하는 당사자는 외부에서 데이터를 암호화할 수 있습니다 AWS KMS. 그러나, 그 암호문은 AWS KMS에서 Decrypt 작업을 호출해야만 해독할 수 있습니다.

kms:ReEncrypt*

키 사용자가 원래이 KMS 키로 암호화된 데이터를 다시 암호화하거나이 KMS 키를 사용하여 이전에 암호화된 데이터를 다시 암호화할 수 있습니다. ReEncrypt 작업을 수행하려면 소스 키와 대상 KMS 키 모두에 액세스해야 합니다. 이를 위해 소스 KMS 키에 대한 kms:ReEncryptFrom 권한과 대상 KMS 키에 대한 kms:ReEncryptTo 권한을 허용할 수 있습니다. 그러나 간소화를 위해 콘솔은 두 KMS 키 모두에서 kms:ReEncrypt* (*와일드카드 문자 포함)를 허용합니다.

kms:Sign

키 사용자가이 KMS 키로 메시지에 서명할 수 있도록 허용합니다.

kms:Verify

키 사용자가이 KMS 키를 사용하여 서명을 확인할 수 있습니다.

kms:VerifyMac

키 사용자가 HMAC KMS 키를 사용하여 HMAC 태그를 확인할 수 있습니다.

키 사용자가 AWS 서비스와 함께 KMS 키를 사용하도록 허용

또한 콘솔의 기본 키 정책은 키 사용자에게 권한 부여를 사용하는 AWS 서비스에서 데이터를 보호하는 데 필요한 권한 부여를 제공합니다. AWS 서비스는 권한 부여를 사용하여 KMS 키를 사용할 수 있는 구체적이고 제한된 권한을 얻는 경우가 많습니다.

이 키 정책 문을 사용하면 키 사용자가 KMS 키에 대한 권한 부여를 생성, 확인 및 취소할 수 있지만 권한 부여 작업 요청이 AWS 와 통합된 서비스 AWS KMS에서 오는 경우에만 가능합니다. kms:GrantIsForAWSResource 정책 조건은 사용자가 이러한 권한 부여 작업을 직접 호출하도록 허용하지 않습니다. 키 사용자가 허용하는 경우 AWS 서비스는 사용자를 대신하여 서비스를 통해 KMS 키를 사용하여 사용자의 데이터를 보호할 수 있는 권한을 생성할 수 있습니다.

키 사용자는 통합 서비스와 함께 KMS 키를 사용하려면 이러한 권한 부여 권한이 필요하지만 이러한 권한으로는 충분하지 않습니다. 키 사용자는 통합 서비스를 사용할 수 있는 권한도 필요합니다. 와 통합되는 AWS 서비스에 대한 액세스 권한을 사용자에게 부여하는 방법에 대한 자세한 내용은 통합 서비스에 대한 설명서를 AWS KMS참조하세요.

{ "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} }

예를 들어 키 사용자는 다음과 같은 방식으로 KMS 키에 이러한 권한을 사용할 수 있습니다.

  • 이 KMS 키를 Amazon Elastic Block Store(Amazon EBS) 및 Amazon Elastic Compute Cloud(Amazon EC2)와 함께 사용하여 암호화된 EBS 볼륨을 EC2 인스턴스에 연결합니다. 키 사용자는 암시적으로 Amazon에 KMS 키를 사용하여 암호화된 볼륨을 인스턴스에 연결할 수 있는 EC2 권한을 부여합니다. 자세한 내용은 Amazon Elastic Block Store(AmazonEBS)의 사용 방식 AWS KMS 단원을 참조하십시오.

  • Amazon Redshift에서이 KMS 키를 사용하여 암호화된 클러스터를 시작합니다. 키 사용자는 암시적으로 Amazon Redshift에 KMS 키를 사용하여 암호화된 클러스터를 시작하고 암호화된 스냅샷을 생성할 수 있는 권한을 부여합니다. 자세한 내용은 Amazon Redshift의 사용 방식 AWS KMS 단원을 참조하십시오.

  • 권한 부여를 사용하여 해당 AWS 서비스와 함께 암호화된 리소스를 생성, 관리 또는 사용하는와 통합된 AWS KMS 다른 서비스와 함께이 KMS 키를 사용합니다.

기본 키 정책은 키 사용자가 권한 부여를 사용하는 모든 통합 서비스에 권한 부여 권한을 위임하도록 허용합니다. 그러나 권한을 지정된 AWS 서비스로 제한하는 사용자 지정 키 정책을 생성할 수 있습니다. 자세한 내용은 km:ViaService 조건 키를 참조하세요.