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

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

AWS KMS에서 키 정책 사용

키 정책은 고객 마스터 키에서 CMKs(AWS KMS)에 대한 액세스를 제어하는 기본적인 방법입니다. 액세스를 제어하는 유일한 방법은 아니지만, 이 방법을 사용하지 않고 액세스를 제어할 수 없습니다. 자세한 내용은 AWS KMS에 대한 액세스 관리CMKs 단원을 참조하십시오.

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

키 정책 개요

키 정책은 JSON(JavaScript Object Notation)을 이용해 권한을 지정하는 문서입니다. 이러한 JSON 문서로 직접 작업하거나 AWS Management 콘솔을 통해 기본 보기라는 그래픽 인터페이스를 사용해 작업할 수 있습니다.

키 정책에 대한 콘솔의 기본 보기에 대한 자세한 내용은 기본 키 정책키 정책 변경 단원을 참조하십시오. JSON 정책 문서 작성 및 서식 지정에 대한 도움말은 IAM 사용 설명서IAM JSON 정책 참조를 참조하세요..

키 정책 문서는 32KB(32,768바이트)를 초과할 수 없습니다. 키 정책 문서는 AWS의 다른 정책 문서와 동일한 JSON 구문을 사용하며 다음과 같은 기본 구조를 갖습니다.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "statement identifier", "Effect": "effect", "Principal": "principal", "Action": "action", "Resource": "resource", "Condition": {"condition operator": {"condition context key": "context key value"}} }] }

키 정책 문서에는 Version 요소가 있어야 합니다. 버전을 2012-10-17(최신 버전)로 설정하는 것이 좋습니다. 또한 키 정책 문서에는 하나 이상의 문이 있어야 하고 각 문은 최대 6개 요소로 구성됩니다.

  • Sid – (선택 사항) Sid는 문 식별자로서, 문 식별에 사용할 수 있는 임의 문자열입니다.

  • Effect – (필수) 정책 설명에서 권한을 허용할지 거부할지 지정합니다. Effect는 Allow 또는 Deny여야 합니다. 에 대한 액세스를 명시적으로 허용하지 않으면 액세스가 암시적으로 거부됩니다.CMK 에 대한 액세스를 명시적으로 거부할 수도 있습니다.CMK 다른 정책에서 액세스 권한을 허용하더라도 사용자가 해당 CMK에 액세스할 수 없도록 하려고 할 때 이러한 작업을 수행할 수 있습니다.

  • Principal – (필수) 보안 주체는 정책 설명에 지정된 권한을 갖는 자격 증명입니다. AWS 계정(루트), IAM 사용자, IAM 역할, 일부 AWS 서비스를 키 정책에서 보안 주체로 지정할 수 있습니다. IAM 그룹은 유효한 보안 주체가 아닙니다.

    참고

    조건을 사용하여 키 정책을 제한하는 경우를 제외하고, 권한을 허용하는 키 정책 문에 보안 주체를 별표(*)로 설정하지 마시기 바랍니다. 별표는 다른 정책문에서 명백하게 거부한 경우를 제외하고 모든 AWS 계정 내 모든 자격 증명에게 CMK를 사용할 수 있도록 허가합니다. 다른 AWS 계정의 사용자는 본인의 계정에서 CMK를 사용할 수 있는 해당 IAM 허가만 있으면 됩니다.

  • Action – (필수) 허용하거나 거부할 API 작업을 지정합니다. 예를 들어 kms:Encrypt 작업은 AWS KMS Encrypt 작업에 해당합니다. 정책 설명에 두 개 이상의 Action을 나열할 수 있습니다. 자세한 내용은 AWS KMS API 권한 참조 단원을 참조하십시오.

  • 리소스 – (필수) 키 정책에서 리소스 요소의 값은 "*"이며 "이 CMK"를 의미합니다. 별표("*")는 키 정책이 연결된 CMK를 식별합니다.

  • Condition – (선택 사항) 키 정책이 적용되기 위해 충족해야 하는 요구 사항을 지정합니다. 이를 통해 AWS는 API 요청의 컨텍스트를 평가해 정책 설명의 적용 여부를 판단할 수 있습니다. 자세한 내용은 정책 조건 사용 단원을 참조하십시오.

정책 구문에 대한 자세한 내용은 AWS의 AWS IAM 정책 참조를 참조하십시오.IAM 사용 설명서

기본 키 정책

프로그래밍 방식으로 CMK를 생성하는 경우 기본 키 정책

프로그래밍 방식으로 CMK을 생성하는 경우—즉 APIAWS KMS( AWSSDKs 및 명령줄 도구 포함)를 사용하여새 에 키 정책을 제공할 수 있습니다.—CMK 사용자가 제공하지 않으면 AWS KMS가 자동으로 생성합니다. 이 기본 키 정책에는 AWS에 대한 모든 CMK 액세스 권한을 소유하고 계정의 IAM 정책이 CMK에 대한 액세스를 허용하도록 하는 CMK 계정(루트 사용자)에 대한 정책 설명이 하나 있습니다. 이 정책 설명에 대한 자세한 내용은 AWS 계정에 대한 액세스 허용 및 IAM 정책 활성화 섹션을 참조하십시오.

를 사용하여 CMK를 생성할 때의 기본 키 정책AWS Management 콘솔

를 사용하여 을 생성CMK할 때 AWS Management 콘솔에 대한 액세스 권한이 부여된 사용자, IAM 역할 및 IAM 계정을 선택할 수 있습니다.AWSCMK 콘솔이 자동으로 생성한 기본 키 정책에 선택한 사용자, 역할, 계정이 추가됩니다. 콘솔에서 기본 보기를 이용해 이 키 정책을 보고 수정할 수도 있고, 키 정책 문서로 바로 작업할 수도 있습니다. 콘솔이 생성한 기본 키 정책은 다음 권한을 허용합니다. 각 권한에 대해서는 해당 섹션에서 설명합니다.

권한

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

기본 키 정책은 AWS를 소유하는 CMK 계정(루트 사용자)에 CMK에 대한 전체 액세스 권한을 부여하므로 다음 두 가지 결과를 달성합니다.

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

계정의 루트 사용자는 삭제할 수 없으므로 이 사용자에 대한 액세스를 허용하면 AWS를 관리할 수 없게 될 위험이 줄어듭니다.CMK 다음 시나리오를 고려하십시오.

  1. 의 키 정책은 CMK사용자 한 명 Alice만 를 관리하도록 허용합니다.IAMCMK 이 키 정책은 루트 사용자에 대한 액세스를 허용하지 않습니다.

  2. 누군가 IAM 사용자 Alice를 삭제합니다.

이 시나리오에서는 이제 CMK를 관리할 수 없으므로 에 대한 액세스 권한을 다시 얻으려면 AWS Support에 문의해야 합니다.CMK 루트 사용자는 키 정책에서 명시적으로 허용하는 경우에만 CMK에 액세스할 수 있으므로 루트 사용자는 CMK에 액세스할 수 없습니다. 루트 사용자에 대한 액세스를 묵시적으로 허용하는 AWS의 다른 대다수 리소스와 다릅니다.

2. 정책을 활성화하여 IAM에 대한 액세스를 허용합니다.CMK

IAM 정책만으로는 CMK에 대한 액세스를 허용하기에 충분하지 않습니다. 그러나 키 정책에서 이를 활성화하는 경우 이를 CMK의 키 정책과 함께 사용할 수 있습니다. 계정에 대한 모든 액세스 권한을 부여하면 AWS 정책을 사용하여 계정의 CMK 사용자 및 역할에 IAM에 대한 액세스 권한을 부여할 수 있습니다.IAMCMK 그 자체로는 IAM 사용자나 역할에 CMK에 대한 액세스 권한을 부여하지 않지만, IAM 정책을 사용하여 부여할 수 있습니다. 자세한 내용은 AWS KMS에 대한 액세스 관리CMKs 단원을 참조하십시오.

다음 예는 AWS 계정에 대한 액세스를 허용하고 따라서 IAM 정책을 활성화하는 정책 설명을 보여줍니다.

{ "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Action": "kms:*", "Resource": "*" }

키 관리자가 CMK를 관리하도록 허용

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

주의

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

태그와 별칭을 관리할 권한이 있는 보안 주체도 CMK에 대한 액세스를 제어할 수 있습니다. 자세한 내용은 에 ABAC 사용AWS KMS을(를) 참조하십시오.

를 생성할 때 키 관리자 목록에 IAM 사용자와 역할을 추가할 수 있습니다.CMK 다음 이미지에서 보듯이, 키 정책에 대한 콘솔의 기본 보기로 목록을 편집할 수도 있습니다. 키 정책의 기본 보기는 각 CMK의 키 세부 정보 페이지에서 사용할 수 있습니다.


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

콘솔의 기본 보기를 이용해 키 관리자 목록을 수정하면 콘솔이 키 정책의 특정 문에서 Principal 요소를 수정합니다. 이 문은 키 관리자 문이라고 합니다. 다음은 키 관리자 문을 나타낸 예제입니다.

{ "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/KMSAdminUser", "arn:aws:iam::111122223333:role/KMSAdminRole" ]}, "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" ], "Resource": "*" }

키 관리자 문은 다음 권한을 허용합니다.

  • kms:Create* – 키 관리자가 이 에 대한 별칭을 생성하고 권한 부여CMK를 하도록 허용합니다.

  • kms:Describe* 키 관리자가 식별자, 생성 날짜, 상태 등을 포함하여 이 –에 대한 정보를 가져오도록 허용합니다.CMK AWS Management 콘솔에서 키 세부 정보 페이지를 보려면 이 권한이 필요합니다.

  • kms:Enable* – 키 관리자가 이 CMK의 상태를 활성화 상태로 설정하도록 허용합니다. 대칭 CMKs의 경우, 키 관리자가 의 키 구성 요소 연간 교체CMK를 지정할 수 있습니다.

  • kms:List* – 키 관리자가 이 CMK에 대한 별칭, 권한 부여, 키 정책 및 태그 목록을 가져오도록 허용합니다. 에서 CMKs 목록을 보려면 이 권한이 필요합니다.AWS Management 콘솔

  • kms:Put* – 키 관리자가 이 CMK에 대한 키 정책을 변경하도록 허용합니다.

  • kms:Update* – 키 관리자가 별칭의 대상을 이 CMK로 변경하고 이 CMK의 설명을 변경하도록 허용합니다.

  • kms:Revoke* – 키 관리자가 CMK권한 부여에서 허용하는 이 에 대한 권한을 취소하도록 허용합니다.

  • kms:Disable* – 키 관리자가 이 CMK의 키 상태를 비활성화로 설정하도록 허용합니다. 대칭 CMKs의 경우, 키 관리자가 이 CMK의 키 구성 요소 연간 교체를 비활성화할 수 있습니다.

  • kms:Get* – 키 관리자가 이 CMK에 대한 키 정책을 가져오고 이 CMK의 키 구성 요소가 매년 교체되는지 결정하도록 허용합니다. 가져온 키 구성 요소가 있는 CMKs대칭 의 경우, 키 관리자가 키 구성 요소를 로 가져오는 데 필요한 가져오기 토큰과 퍼블릭 키를 다운로드할 수도 있습니다.CMK 비대칭 CMKs의 경우 키 관리자가 퍼블릭 키를 다운로드할 수 있습니다.CMK

  • kms:Delete* – 키 관리자가 이 CMK와 연결된 별칭을 삭제하도록 허용합니다. 가져온 키 구성 요소CMKs가 있는 대칭 의 경우 키 관리자가 가져온 키 구성 요소를 삭제할 수 있습니다. 이 권한은 키 관리자가 를 삭제CMK하도록 허용하지 않습니다.

  • kms:ImportKeyMaterial – 키 관리자가 키 구성 요소를 CMK로 가져오도록 허용합니다. 이 권한은 키 구성 요소 없이 CMK를 생성하는 경우에만 키 정책에 포함됩니다.

    참고

    이 역할은 앞의 예제 정책 설명에 표시되지 않습니다.

  • kms:TagResource – 키 관리자가 이 CMK에 대한 태그를 추가하고 업데이트하도록 허용합니다.

  • kms:UntagResource – 키 관리자가 이 CMK에서 태그를 제거하도록 허용합니다.

  • kms:ScheduleKeyDeletion – 키 관리자가 이 CMK를 삭제하도록 허용합니다.

  • kms:CancelKeyDeletion – 키 관리자가 이 CMK의 보류 중인 삭제를 취소하도록 허용합니다.

앞의 목록에서 마지막 두 권한인 kms:ScheduleKeyDeletionkms:CancelKeyDeletion을 생성CMK할 때 기본적으로 포함됩니다. 그러나 CMK 키 관리자가 이 키를 삭제하도록 허용 확인란을 선택 취소하여 를 생성할 때 선택적으로 키 정책에서 제거할 수 있습니다. 동일한 방식으로 키 세부 정보 페이지를 사용하여 기존 CMKs의 기본 키 정책에서 제거할 수 있습니다. 자세한 내용은 키 편집 단원을 참조하십시오.

많은 경우 이러한 권한에 와일드카드 문자(*)가 포함됩니다. 즉 AWS KMS가 이후에 새 API 작업을 추가하면 키 관리자는 자동으로 Create, Describe, Enable, List, Put, Update, Revoke, Disable, Get, 또는 Delete로 시작하는 모든 새 API 작업을 수행할 수 있습니다.

참고

앞부분에서 설명한 키 관리자 문은 기본 키 정책의 최신 버전에 수록되어 있습니다. 이전 버전의 기본 키 정책에 대한 자세한 내용은 키 정책을 최신으로 유지하기 섹션을 참조하십시오.

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

콘솔에서 대칭 CMKs에 대해 생성하는 기본 키 정책을 사용하여 계정 및 외부 IAM 계정에서 AWS 사용자와 역할을 선택하고 이들을 키 사용자로 지정할 수 있습니다.

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

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


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

콘솔의 기본 보기를 이용해 키 사용자 목록을 변경하면 콘솔이 키 정책의 두 설명문에서 Principal 요소를 변경합니다. 이러한 문을 키 사용자 문이라고 합니다. 다음 예제에서는 대칭 CMKs에 대한 키 사용자 문을 보여 줍니다.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/CMKUser", "arn:aws:iam::111122223333:role/CMKRole", "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:user/CMKUser", "arn:aws:iam::111122223333:role/CMKRole", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} }

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

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

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

대칭 CMKs

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

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/CMKUser"}, "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*" ], "Resource": "*" }
퍼블릭 키 암호화를 위한 비대칭 CMKs

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

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

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

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/CMKUser"}, "Action": [ "kms:DescribeKey", "kms:GetPublicKey", "kms:Sign", "kms:Verify" ], "Resource": "*" }

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

  • kms:Encrypt – 키 사용자가 이 CMK를 사용하여 데이터를 암호화하도록 허용합니다.

  • kms:Decrypt – 키 사용자가 이 CMK를 사용하여 데이터를 해독하도록 허용합니다.

  • kms:DescribeKey – 키 사용자가 식별자, 생성 날짜, 키 상태 등 이 CMK에 대한 세부 정보를 가져오도록 허용합니다. 또한 키 사용자가 CMK 콘솔에서 AWS KMS에 대한 세부 정보를 표시할 수 있습니다.

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

  • kms:GetPublicKey – 키 사용자가 비대칭 CMK의 퍼블릭 키를 다운로드하도록 허용합니다. 이 퍼블릭 키를 공유하는 당사자는 AWS KMS 외부의 데이터를 암호화할 수 있습니다. 그러나 이러한 암호화 텍스트는 에서 DecryptAWS KMS 작업을 호출해야만 해독할 수 있습니다.

  • kms:ReEncrypt* – 키 사용자가 원래 이 CMK로 암호화되었던 데이터를 다시 암호화하거나, 이 CMK를 사용하여 이전에 암호화된 데이터를 다시 암호화하도록 허용합니다. ReEncrypt 작업은 소스 및 대상 에 모두 액세스할 수 있어야 합니다.CMKs 이를 위해 원본 kms:ReEncryptFrom에 대한 CMK 권한과 대상 kms:ReEncryptTo에 대한 CMK 권한을 허용할 수 있습니다. 그러나 간소화를 위해 콘솔에서는 두 kms:ReEncrypt*에 대해 *(CMKs 와일드카드 문자 포함)를 허용합니다.

  • kms:Sign – 키 사용자가 이 CMK를 사용하여 메시지에 서명하도록 허용합니다.

  • kms:Verify – 키 사용자가 이 CMK를 사용하여 서명을 확인하도록 허용합니다.

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

콘솔의 기본 키 정책은 키 사용자에게 AWS와 통합된 AWS KMS 서비스CMK, 특히 권한 부여를 사용하는 서비스를 사용할 수 있는 권한도 부여합니다.

키 사용자는 CMK를 제한된 특정 방식으로 사용할 수 있는 권한을 이러한 서비스에 묵시적으로 부여할 수 있습니다. 이 묵시적 위임은 권한 부여를 통해 이루어집니다. 이러한 권한 부여를 통해 통합 AWS 서비스는 CMK를 사용하여 계정의 리소스를 보호할 수 있습니다.

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

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

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

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

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

kms:GrantIsForAWSResource 조건 키를 사용하면 키 사용자가 권한 부여를 생성하고 관리할 수 있지만 피부여자가 권한 부여를 사용하는 AWS 서비스인 경우에만 가능합니다. 이 권한은 키 사용자가 권한 부여를 사용하는 모든 통합 서비스를 사용하도록 허용합니다. 그러나 특정 AWS 서비스가 키 사용자를 대신하여 CMK를 사용하도록 허용하는 사용자 지정 키 정책을 생성할 수 있습니다. 자세한 내용은 kms:ViaService 조건 키를 참조하십시오.

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

예제 키 정책

다음 예제에서는 대칭 CMK에 대한 전체 키 정책을 보여 줍니다. 이 키 정책은 앞의 기본 키 정책 섹션의 예제 정책 설명을 단일 키 정책에 결합하여 다음을 달성합니다.

  • 계정(루트 사용자) AWS에 대한 모든 액세스를 허용하고, 따라서 계정에서 111122223333에 대한 액세스를 허용하도록 CMK 정책을 활성화합니다.IAMCMK

  • 사용자 IAM 및 KMSAdminUser 역할 IAM가 KMSAdminRole를 관리하도록 허용합니다.CMK

  • 사용자 IAM사용자, CMK 역할 IAM역할 및 CMK 계정 AWS가 444455556666를 사용하도록 허용합니다.CMK

{ "Version": "2012-10-17", "Id": "key-consolepolicy-2", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/KMSAdminUser", "arn:aws:iam::111122223333:role/KMSAdminRole" ]}, "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" ], "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/CMKUser", "arn:aws:iam::111122223333:role/CMKRole", "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:user/CMKUser", "arn:aws:iam::111122223333:role/CMKRole", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": "true"}} } ] }

다음 이미지는 키 정책에 대한 콘솔의 기본 보기로 봤을 때 이 키 정책이 어떻게 보이는지 알 수 있는 예입니다.


        키 정책에 대한 콘솔의 기본 보기의 키 정책