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

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

AWS KMS에서 키 정책 사용

키 정책은 AWS KMS에서 고객 마스터 키(CMK)에 대한 액세스를 제어하는 기본적인 방법입니다. 모든 CMK에는 정확히 하나의 키 정책이 있어야 합니다. 키 정책 문서의 설명은 CMK를 사용하는 권한을 가진 사람이 누구고 이를 어떻게 사용할 수 있는지 결정합니다. 를 사용할 수도 있습니다.IAM 정책권한 부여를 사용하여 CMK에 대한 액세스를 제어하지만 모든 CMK에는 키 정책이 있어야 합니다. 자세한 정보는 AWS KMS CMK에 대한 액세스 관리을 참조하십시오.

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

키 정책 개요

모든 고객 마스터 키 (CMK) 에는 단 하나의 키 정책이 있어야 합니다. 이 주요 정책은 IAM 정책 및 권한 부여와 함께 연결된 CMK에 대한 액세스만 제어합니다. 글로벌 IAM 정책과 달리 주요 정책은 지역입니다. 각 주요 정책은 CMK를 호스팅하는 지역에서만 유효합니다.

주요 정책은 다음과 같이 구현됩니다.JSON(JavaScript Object Notation)최대 문서32KB(32,768바이트) 키 정책을 생성하고 관리할 수 있습니다.AWS KMS콘솔을 사용하거나AWS KMSAPI 작업 (예:CreateKeyPutKeyPolicy.

키 정책 문서는 다른 정책 문서와 동일한 JSON 구문을 사용합니다.AWS의 기본 구조는 다음과 같습니다.

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

콘솔의 기본 보기를 키 정책에 사용하는 방법에 대한 자세한 내용은기본 키 정책키 정책 변경. JSON 정책 문서 작성 및 서식 지정에 대한 도움말은IAM JSON 정책 참조IAM 사용 설명서.

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

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

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

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

    주체가 다른 경우 AWS 계정 또는 보안 주체를 사용하는 경우 권한은 CMK 및 키 정책을 사용하여 지역에서 계정을 사용하도록 설정한 경우에만 유효합니다. 기본적으로 사용하도록 설정되지 않은 지역 (“옵트인 지역”) 에 대한 자세한 내용은관리 AWS 리전 AWS일반 참조.

    참고

    키 정책을 제한하기 위해 조건을 사용하지 않는 한 권한을 허용하는 주요 정책문에 주체를 별표 (*) 로 설정하지 않습니다. 별표는 모든의 모든 정체성을 제공합니다 AWS 계정 권한을 부여해 다른 정책문에 명시적으로 거부한 경우를 제외하고 CMK를 사용할 수 있습니다. 다른 사용자의 사용자 AWS 계정 CMK를 사용하려면 자체 계정에서 해당 IAM 권한만 있으면 됩니다.

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

  • 리소스— (필수) 키 정책에서 Resource 요소의 값은"*", 이는 “이 CMK”를 의미합니다. 별표 ("*") 키 정책이 연결되는 CMK를 식별합니다.

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

에 대한 자세한 내용AWS정책 구문에 대한 자세한 내용은AWSIAM 정책 참조IAM 사용 설명서.

기본 키 정책

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

프로그래밍 방식으로 CMK를 생성하는 경우, 즉AWS KMSAPI를 통해 포함AWSSDK,AWS Command Line InterfaceAWS Tools for PowerShell) 에서 새 CMK에 키 정책을 제공할 수 있는 옵션이 있습니다. 사용자가 제공하지 않으면 AWS KMS가 자동으로 생성합니다. 이 기본 키 정책에는 AWS 계정 CMK에 대한 모든 액세스를 CMK 액세스를 소유하고 그 계정에서 IAM 정책을 적용하여 CMK 액세스를 허용하도록 할 수 있습니다. 이 정책 설명에 대한 자세한 내용은 에 대한 액세스를 허용합니다. AWS 계정 를 사용하고 IAM 정책을 사용하도록 설정합니다 섹션을 참조하십시오.

AWS Management Console에서 CMK를 생성하는 경우 기본 키 정책

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

권한

에 대한 액세스를 허용합니다. AWS 계정 를 사용하고 IAM 정책을 사용하도록 설정합니다

기본 키 정책은 AWS 계정 CMK에 대한 모든 액세스 권한을 갖는 (루트 사용자) 를 보유하고 있습니다. 이 방법은 다음 두 가지 효과가 있습니다.

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

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

  1. CMK의 주요 정책은IAM 사용자 한 명인 Alice를 사용하여 CMK를 관리합니다. 이 키 정책은 루트 사용자에 대한 액세스를 허용하지 않습니다.

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

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

2. IAM 정책에서 CMK에 대한 액세스를 제어할 수 있도록 허용합니다.

모든 CMK에는 키 정책이 있어야 합니다. IAM 정책을 사용하여 CMK에 대한 액세스를 제어할 수도 있지만 키 정책에서 허용하는 경우에만 제어할 수 있습니다. 키 정책에서 허용하지 않는 경우 CMK에 대한 액세스를 제어하려는 IAM 정책은 효과가 없습니다.

IAM 정책이 CMK에 대한 액세스를 제어하도록 허용하려면 키 정책에 AWS 계정 다음과 같이 CMK에 대한 모든 액세스를 허용합니다. 자세한 정보는 AWS KMS CMK에 대한 액세스 관리을 참조하십시오.

다음 예제에서는 예제를 제공하는 정책 설명을 보여 줍니다. AWS 계정 CMK에 대한 모든 액세스 권한을 제공합니다. 이 정책 설명을 통해 해당 계정이 키 정책과 함께 IAM 정책을 사용하여 CMK에 대한 액세스를 제어할 수 있습니다.

이와 같은 정책 설명은 기본 키 정책의 일부입니다.

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

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

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

주의

키 관리자는 키 정책을 변경하고 권한 부여를 생성할 수 있는 권한을 가지고 있기 때문에AWS KMS이 정책에서 지정되지 않은 권한입니다.

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

CMK를 생성할 때 키 관리자 목록에 IAM 사용자와 역할을 추가할 수 있습니다. 다음 이미지에서 보듯이, 키 정책에 대한 콘솔의 기본 보기로 목록을 편집할 수도 있습니다. 키 정책의 기본 보기는 각 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:만들기*— 키 관리자가 별칭을 생성하고권한 부여이 CMK

  • KMS:설명*— 키 관리자가 식별자, 생성일, 상태 등을 포함해 이 CMK에 대한 정보를 가져오도록 허용합니다. AWS Management Console에서 키 세부 정보 페이지를 보려면 이 권한이 필요합니다.

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

  • KMS:목록*— 키 관리자가 이 CMK에 대한 별칭, 권한 부여, 키 정책, 태그 목록을 가져오도록 허용합니다. AWS Management Console에서 CMK의 목록을 보려면 이 권한이 필요합니다.

  • KMS:넣기*— 키 관리자가 이 CMK에 대한 키 정책을 변경하도록 허용합니다.

  • KMS:업데이트*— 키 관리자가 별칭의 대상을 이 CMK로 변경하고 이 CMK의 설명을 변경하도록 허용합니다.

  • KMS:취소*- 키 관리자가 이 CMK에 대한 권한을 취소하도록 허용합니다. 이 CMK의 권한은권한 부여.

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

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

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

  • KMS:가져오기 키 재질— 키 관리자가 키 구성 요소를 CMK로 가져올 수 있습니다. 이 권한은 키 구성 요소 없이 CMK를 생성하는 경우에만 키 정책에 포함됩니다.

    참고

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

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

  • KMS:언태그 리소스- 키 관리자가 이 CMK에서 태그를 제거할 수 있도록 허용합니다.

  • KMS:일람표 키 삭제— 키 관리자가CMK 삭제.

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

앞의 목록에서 마지막 두 권한 kms:ScheduleKeyDeletionkms:CancelKeyDeletionCMK를 생성하면 기본적으로 포함됩니다. 그렇지만 [Allow key administrators to delete this key]의 확인란을 선택 취소하여 CMK를 생성할 때 선택적으로 키 정책에서 제거할 수도 있습니다. 같은 방식으로 키 세부 정보 페이지를 이용해 기존 CMK의 기본 키 정책에서 제거할 수 있습니다. 자세한 정보는 키 편집을 참조하십시오.

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

참고

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

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

콘솔이 대칭 CMK에 대해 생성하는 기본 키 정책을 통해 해당 계정에서 IAM 사용자와 역할을 선택하고 외부 AWS 계정 , 그리고 그들을주요 사용자.

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

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


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

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

{ "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 작업을 사용하여 AWS KMS 콘솔에서 또는 AWS KMS API 작업을 사용하여 CMK에 대한 세부 정보를 가져올 수 있습니다.

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

대칭 CMK

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

{ "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": "*" }
퍼블릭 키 암호화를 위한 비대칭 CMK

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

{ "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": "*" }
서명 및 확인을 위한 비대칭 CMK

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

{ "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에 대한 세부 정보를 가져오도록 허용합니다. 또한 키 사용자가 AWS KMS 콘솔에서 CMK에 대한 세부 정보를 표시할 수 있습니다.

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

  • KMS:게퍼블리키— 키 사용자가 비대칭 CMK의 퍼블릭 키를 다운로드하도록 허용합니다. 이 퍼블릭 키를 공유하는 당사자는 AWS KMS 외부의 데이터를 암호화할 수 있습니다. 그러나, 그 암호문은 호출하여 해독 할 수있다암호화 해제에서 하는 작업AWS KMS.

  • KMS:다시 암호화* — 키 사용자가 원래 이 CMK로 암호화한 데이터를 다시 암호화하거나, 이 CMK를 이용해 앞서 암호화한 데이터를 다시 암호화하도록 허용합니다. ReEncrypt 작업을 수행하려면 소스 및 대상 CMK 모두에 대한 액세스 권한이 필요합니다. 이를 위해 원본 CMK에 대한 kms:ReEncryptFrom 권한과 대상 CMK에 대한 kms:ReEncryptTo 권한을 허용할 수 있습니다. 그러나 단순화를 위해 콘솔에서는 두 CMK 모두에 대해 kms:ReEncrypt*를 허용합니다(* 와일드카드 문자 사용).

  • KMS:기호- 키 사용자가 이 CMK를 사용하여 메시지에 서명하도록 허용합니다.

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

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

콘솔의 기본 키 정책은 키 사용자에게 AWS KMS와 통합된 AWS 서비스(특히 권한 부여를 사용하는 서비스)가 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에서 이러한 권한을 사용할 수 있습니다.

  • Amazon Elastic 블록 스토어 (Amazon EBS) 및 Amazon Elastic Compute Cloud (Amazon EC2) 와 함께 이 CMK를 이용해 암호화된 EBS 볼륨을 EC2 인스턴스에 연결할 수 있습니다. 키 사용자는 CMK를 사용할 수 있는 권한을 묵시적으로 부여해 암호화된 볼륨을 인스턴스에 연결할 수 있습니다. 자세한 정보는 Amazon Elastic Block Store (Amazon EBS) 가AWS KMS을 참조하십시오.

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

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

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

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

예제 키 정책

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

  • 를 허용합니다. AWS 계정 (루트 사용자) 111122223333 CMK에 대한 모든 액세스를 허용하므로 계정에서 IAM 정책을 적용하여 CMK에 액세스를 허용할 수 있습니다.

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

  • IAM 사용자 CMK사용자, IAM 역할 CMK역할 및 AWS 계정 CMK를 사용하는 데 문제가 발생하지 않습니다.

{ "Version": "2012-10-17", "Id": "key-consolepolicy-2", "Statement": [ { "Sid": "Enable IAM policies", "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"}} } ] }

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


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