다른 계정의 사용자가 CMK를 사용하도록 허용 - AWS Key Management Service

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

다른 계정의 사용자가 CMK를 사용하도록 허용

IAM 사용자 또는 역할을 다른AWS계정의 고객 마스터 키 (CMK) 를 사용하도록 계정을 활성화합니다. 교차 계정 액세스에는 외부 사용자 계정의 IAM 정책과 CMK의 키 정책에 대한 권한이 필요합니다.

교차 계정 권한은 다음 작업에만 적용됩니다.

다른 계정의 사용자에게 다른 작업에 대한 권한을 부여하는 경우 해당 권한은 효과가 없습니다. 예를 들어, 다른 계정의 보안 주체를 부여하는 경우KMS:목록 키권한 또는 IAM 정책에서KMS:일람표 키 삭제권한이 있는 경우 사용자의 리소스에 대한 이러한 작업을 호출하려는 시도는 여전히 실패합니다.

다른 계정에서 CMK를 사용하는 방법에 대한 자세한 내용은AWS KMS작업에 대한 자세한 내용은교차 계정 사용열 창의AWS KMS 권한다른 계정에서 CMK 사용. 또한있다교차 계정 사용섹션의 각 API 설명에서AWS Key Management ServiceAPI 참조.

주의

보안 주체에 CMK를 사용할 수 있는 권한을 부여할 때는 주의해야 합니다. 가능할 때마다최소 권한원칙을 사용합니다. 사용자에게 필요한 작업에만 필요한 CMK에 대한 액세스 권한만 제공합니다.

또한 익숙하지 않은 CMK, 특히 다른 계정의 CMK를 사용할 때는 주의해야 합니다. 악의적인 사용자가 CMK를 사용하여 사용자 또는 계정에 대한 정보를 얻을 수 있는 권한을 부여할 수 있습니다.

정책을 사용하여 계정의 리소스를 보호하는 방법에 대한 자세한 내용은 단원을 참조하십시오.IAM 정책 모범 사례.

다른 계정의 사용자 및 역할에게 CMK를 사용할 수 있는 권한을 부여하려면 다음 두 가지 유형의 정책을 사용해야 합니다.

  • CMK의 키 정책은 외부 계정(또는 외부 계정의 사용자 및 역할)에게 CMK를 사용할 수 있는 권한을 부여해야 합니다. 키 정책은 CMK를 소유하는 계정에 있습니다.

  • IAM 정책키 정책 권한을 해당 사용자 및 역할에 위임해야 합니다. 이러한 정책은 외부 계정에서 설정되며 해당 계정의 사용자 및 역할에 권한을 부여합니다.

주요 정책에 따라CANCMK에 대한 액세스 권한이 부여됩니다. IAM 정책에 따라CMK에 대한 액세스 권한이 부여됩니다. 키 정책과 IAM 정책만으로는 충분하지 않습니다. 둘 다 변경해야 합니다.

키 정책을 편집하려면정책 보기의AWS Management Console를 사용하거나CreateKey또는PutKeyPolicy작업을 수행합니다. CMK를 생성할 때 키 정책을 설정하는 방법에 대한 도움말은 다른 계정이 사용할 수 있는 CMK 생성 단원을 참조하십시오.

IAM 정책 편집에 대한 도움말은 단원을 참조하십시오.Using IAM policies with AWS KMS.

키 정책과 IAM 정책이 함께 작동하여 다른 계정에서 CMK 사용을 허용하는 방법을 보여 주는 예는 단원을 참조하십시오.예제 2: 사용자는 다른 AWS 계정 .

결과 교차 계정을 볼 수 있습니다.AWS KMS에서 CMK에 대한 작업을AWS CloudTrail로그. 다른 계정에서 CMK를 사용하는 작업은 발신자의 계정과 CMK 소유자의 계정에 모두 기록됩니다.

1단계: 로컬 계정에 키 정책 문 추가

CMK에 대한 키 정책은 누가 CMK에 액세스할 수 있으며 어떤 작업을 수행할 수 있는지에 대한 주요 결정 요인입니다. 키 정책은 항상 CMK를 소유하는 계정에 있습니다. IAM 정책과 달리, 키 정책은 리소스를 지정하지 않습니다. 리소스는 키 정책과 연결된 CMK입니다.

외부 계정에게 CMK를 사용할 수 있는 권한을 부여하려면 외부 계정을 지정하는 문을 키 정책에 추가합니다. 키 정책의 Principal 요소에 외부 계정의 Amazon 리소스 이름(ARN)을 입력합니다.

키 정책에서 외부 계정을 지정하면 외부 계정의 IAM 관리자는 IAM 정책을 사용하여 해당 권한을 외부 계정의 사용자 및 역할에게 위임할 수 있습니다. 또한 키 정책에 지정된 작업 중 어떤 작업을 사용자 및 역할이 수행할 수 있는지도 결정할 수 있습니다.

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

예를 들어, 444455556666 계정이 111122223333 계정의 대칭 CMK를 사용하도록 허용하려고 한다고 가정합니다. 이렇게 하려면 다음 예제와 같은 정책 문을 111122223333 계정의 CMK에 대한 키 정책에 추가합니다. 다음 예제 키 정책 문은 외부 계정인 4444555566666666에게 암호화 작업에서 CMK를 사용할 수 있는 권한을 부여합니다.

{ "Sid": "Allow an external account to use this CMK", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:root" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

외부 계정에게 권한을 부여하는 대신, 키 정책에서 특정 외부 사용자 및 역할을 지정할 수 있습니다. 그러나 이러한 사용자 및 역할은 외부 계정의 IAM 관리자가 적절한 IAM 정책을 해당 자격 증명에 연결할 때까지 CMK를 사용할 수 없습니다. IAM 정책은 키 정책에 지정된 외부 사용자 및 역할의 일부 또는 전부에게 권한을 부여할 수 있습니다. 그리고 이 정책은 키 정책에 지정된 작업의 일부 또는 전부를 허용할 수 있습니다.

키 정책에서 자격 증명을 지정하면 외부 계정의 IAM 관리자가 제공할 수 있는 권한이 제한됩니다. 하지만 이렇게 하면 두 계정의 정책 관리가 더 복잡해집니다. 예를 들어, 사용자 또는 역할을 추가해야 한다고 가정합니다. CMK를 소유하는 계정에서 키 정책에 해당 자격 증명을 추가하고 자격 증명의 계정에서 IAM 정책을 생성해야 합니다.

키 정책에서 특정 외부 사용자 또는 역할을 지정하려면 Principal 요소에 외부 계정의 사용자 또는 역할의 Amazon 리소스 이름(ARN)을 입력합니다.

예를 들어, 다음 예제 키 정책 문은 444455556666 계정의 ExampleRole 및 ExampleUser가 111122223333 계정의 CMK를 사용하도록 허용합니다. 이 키 정책 문은 외부 계정인 444455556666에게 암호화 작업에서 CMK를 사용할 수 있는 권한을 부여합니다.

{ "Sid": "Allow an external account to use this CMK", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/ExampleRole", "arn:aws:iam::444455556666:user/ExampleUser" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }
참고

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

또한 외부 계정에게 어떤 권한을 부여할지도 결정해야 합니다. CMK에 대한 권한 목록은 AWS KMS 권한 단원을 참조하십시오.

외부 계정에게 암호화 작업에서 CMK를 사용할 수 있는 권한을 부여하고 AWS KMS와 통합된 AWS 서비스에 CMK를 사용할 수 있습니다. 이렇게 하려면주요 사용자의 단원AWS Management Console. 자세한 내용은 단원을 참조하십시오다른 계정이 사용할 수 있는 CMK 생성

키 정책에서 기타 권한을 지정하려면 키 정책 문서를 편집합니다. 예를 들어, 암호화 해제할 수 있지만 암호화할 수 없는 권한을 부여하거나, CMK를 볼 수 있지만 사용할 수 없는 권한을 부여해야 할 수 있습니다. 키 정책 문서를 편집하려면정책 보기의AWS Management Console또는CreateKey또는PutKeyPolicy작업을 수행합니다.

2단계: 외부 계정에 IAM 정책 추가

CMK를 소유하는 계정의 키 정책은 권한의 유효 범위를 설정합니다. 하지만 외부 계정의 사용자 및 역할은 해당 권한을 위임하는 IAM 정책을 연결하거나 권한 부여를 사용하여 CMK에 대한 액세스를 관리할 때까지 CMK를 사용할 수 없습니다. IAM 정책은 외부 계정에서 설정됩니다.

키 정책이 외부 계정에게 권한을 부여하는 경우 계정의 어떠한 사용자 또는 역할에든 IAM 정책을 연결할 수 있습니다. 하지만 키 정책이 지정된 사용자 또는 역할에게 권한을 부여하는 경우 IAM 정책은 지정된 사용자 및 역할의 일부 또는 전부에게만 해당 권한을 부여할 수 있습니다. IAM 정책이 다른 외부 사용자 또는 역할에 CMK 액세스 권한을 부여하는 경우에는 효과가 없습니다.

키 정책은 IAM 정책의 작업도 제한합니다. IAM 정책은 키 정책에 지정된 작업의 일부 또는 전부를 위임할 수 있습니다. IAM 정책이 키 정책에 지정되지 않은 작업을 나열하는 경우 해당 권한은 효과가 없습니다.

다음 예제 IAM 정책문은 보안 주체가 계정의 CMK를 암호화 작업에 사용하도록 허용합니다. 계정의 사용자 및 역할에 이 권한을 부여하려면444455556666,정책을 연결합니다.계정의 사용자 또는 역할에444455556666.

{ "Sid": "AllowUseOfCMKInAccount111122223333", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }

이 정책에 대한 다음 세부 정보를 참고하십시오.

  • 키 정책과 달리 IAM 정책 문에는Principal요소를 사용합니다. IAM 정책에서 보안 주체는 정책이 연결되는 자격 증명입니다.

  • Resource요소는 보안 주체가 사용할 수 있는 CMK를 식별합니다. CMK를 지정하려면 해당 키 ARNResource 요소에 추가합니다.

  • Resource 요소에서 CMK를 두 개 이상 지정할 수 있습니다. 하지만 Resource 요소에서 특정 CMK를 지정하지 않으면 의도한 것보다 많은 CMK에 대한 액세스 권한을 실수로 부여할 수 있습니다.

  • 외부 사용자가 다음과 같이 CMK를 사용하도록 허용하려면AWS서비스와 통합되는 서비스AWS KMS,키 정책 또는 IAM 정책에 권한을 추가해야 할 수 있습니다. 자세한 내용은 단원을 참조하십시오외부 CMK 사용 허용AWS서비스

IAM 정책 작업에 대한 자세한 내용은 단원을 참조하십시오.IAM 정책 사용.

다른 계정이 사용할 수 있는 CMK 생성

CreateKey 작업을 사용하여 CMK를 생성하는 경우 Policy 파라미터를 사용하여 외부 계정 또는 외부 사용자 및 역할에게 CMK를 사용할 권한을 부여하는 키 정책을 지정할 수 있습니다. 추가해야 합니다.IAM 정책이 키 정책에 사용자 및 역할이 지정되더라도 계정의 사용자 및 역할에게 이러한 권한을 위임하는 외부 계정에서 이러한 작업을 수행할 수 있습니다. 언제든지 PutKeyPolicy 작업을 사용하여 키 정책을 변경할 수 있습니다.

AWS Management Console에서 CMK를 생성할 때 해당 키 정책도 생성합니다. Key Administrators(키 관리자)Key Users(키 사용자) 섹션에서 자격 증명을 선택하면 AWS KMS는 해당 자격 증명에 대한 정책 문을 CMK의 키 정책에 추가합니다.

또한 Key Users(키 사용자) 섹션을 사용하여 외부 계정을 키 사용자로 추가할 수도 있습니다.


                외부 계정을 CMK에 대한 키 정책에 추가하는 콘솔 요소입니다.

외부 계정의 계정 ID를 입력하면 AWS KMS는 두 개의 문을 키 정책에 추가합니다. 이 작업은 키 정책에만 영향을 미칩니다. 외부 계정의 사용자 및 역할은 연결할 때까지 CMK를 사용할 수 없습니다.IAM 정책를 사용하여 이러한 사용 권한의 일부 또는 전부를 제공합니다.

첫 번째 키 정책 문은 외부 계정에게 암호화 작업에서 CMK를 사용할 수 있는 권한을 부여합니다.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

두 번째 키 정책 문은 외부 계정이 CMK에 대한 권한 부여를 생성, 보기 및 취소하도록 허용하지만,AWS와 통합 된 서비스AWS KMS. 이러한 권한은 사용자 데이터를 암호화하는 서비스와 같은 기타 AWS 서비스가 CMK를 사용하도록 허용합니다.

이러한 사용 권한은 사용자 데이터를 암호화하는 CMK를 위해 설계되었습니다.AWS서비스 (예:Amazon WorkMail. 이러한 서비스는 일반적으로 권한 부여를 사용하여 사용자 대신 CMK를 사용하기 위해 필요한 권한을 얻습니다. 자세한 내용은 단원을 참조하십시오외부 CMK 사용 허용AWS서비스

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

이러한 권한이 필요에 맞지 않으면 콘솔의 policy view(정책 보기)에서 또는 PutKeyPolicy 작업을 사용하여 권한을 편집할 수 있습니다. 외부 계정에게 권한을 부여하는 대신, 특정 외부 사용자 및 역할을 지정할 수 있습니다. 정책이 지정하는 작업을 변경할 수 있습니다. 그리고 글로벌 및 AWS KMS 정책 조건을 사용하여 권한을 세부적으로 지정할 수 있습니다.

외부 CMK 사용 허용AWS서비스

다른 계정의 사용자에게 AWS KMS와 통합된 서비스에 CMK를 사용할 권한을 부여할 수 있습니다. 예를 들어 외부 계정의 사용자는 CMK를 사용하여Amazon S3 버킷의 객체 암호화또는그들이 저장하는 비밀을 암호화하십시오.AWS Secrets Manager.

키 정책은 외부 사용자 또는 외부 사용자의 계정에게 CMK를 사용할 수 있는 권한을 부여해야 합니다. 또한 사용자에게 자격 증명에 IAM 정책을 연결해야 합니다.AWS서비스를 사용합니다. 또한 이 서비스에서 사용자는 키 정책 또는 IAM 정책에 있는 추가 권한이 필요할 수 있습니다. 세부 정보는 해당 서비스에 대한 설명서를 참조하십시오.

다른 계정에서 CMK 사용

다른 CMK를 사용할 수 있는 허가가있는 경우 AWS 계정 에서 CMK를 사용할 수 있습니다.AWS Management Console,AWSSDK,AWS CLI, 및AWS Tools for PowerShell.

셸 명령 또는 API 요청에서 다른 계정의 CMK를 식별하려면 다음키 식별자.

키 ID 또는 별칭 이름만 입력하는 경우AWS는 CMK가 계정에 있다고 가정합니다.

이AWS KMS콘솔은 CMK를 사용할 수 있는 권한이 있더라도 다른 계정의 CMK를 표시하지 않습니다. 또한 다른 CMK 목록도 콘솔에 표시됩니다.AWS서비스는 다른 계정의 CMK를 포함하지 않습니다. 콘솔에서 외부 CMK를 지정하려면AWS서비스에 연결하려면 CMK의 키 ARN 입력해야합니다. 세부 정보는 해당 서비스의 콘솔 설명서를 참조하십시오.