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

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

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

한 IAM 계정의 AWS 사용자 또는 역할이 다른 고객 마스터 키 계정의 CMK(AWS)를 사용하도록 허용할 수 있습니다. 을 생성하거나 기존 CMK에 대한 권한을 변경할 때 이러한 권한을 추가할 수 있습니다.CMK

주의

보안 주체에 CMKs를 사용할 수 있는 권한을 부여하지 않도록 주의하십시오. 가능하면 최소 권한 원칙을 따르십시오. 사용자에게 필요한 작업에만 필요한 CMKs에 대한 액세스 권한을 부여합니다.

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

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

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

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

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

키 정책은 누가 에 액세스할 수 있는CMK지 결정합니다. 정책은 누가 IAM에 액세스할 수 있는지를 결정합니다.CMK 키 정책과 IAM 정책만으로는 충분하지 않습니다—두 가지 모두를 변경해야 합니다.

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

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

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

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

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

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

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

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

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

{ "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": "*" }

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

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

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

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

{ "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 허가만 있으면 됩니다.

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

외부 계정에게 CMK암호화 작업에서 를 사용할 수 있는 권한을 부여하고 CMK와 통합된 AWS 서비스와 함께 AWS KMS를 사용할 수 있습니다. 이렇게 하려면 키 사용자AWS Management 콘솔 섹션을 사용합니다. 자세한 내용은 다른 계정이 사용할 수 있는 CMKs 생성을(를) 참조하십시오.

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

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

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

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

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

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

{ "Version": "2012-10-17", "Statement": [ { "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 요소는 보안 주체가 사용할 수 있는 IAM를 식별합니다.CMK 를 지정하려면 CMK키 ARN 요소에 추가합니다.Resource

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

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

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

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

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

에서 CMK를 생성할 때 해당 키 정책도 생성합니다.AWS Management 콘솔 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를 사용하도록 허용합니다.

이러한 권한은 CMKsAWS 같은 서비스에서 사용자 데이터를 암호화하는 Amazon WorkMail를 위해 설계되었습니다. 이러한 서비스는 일반적으로 권한 부여를 사용하여 사용자를 대신하여 CMK를 사용하는 데 필요한 권한을 얻습니다. 자세한 내용은 서비스에 외부 CMKs 사용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" } } }

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

서비스에 외부 CMKs 사용AWS

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

키 정책은 외부 사용자 또는 외부 사용자의 계정에 CMK를 사용할 권한을 부여해야 합니다. 추가로, 사용자에게 AWS 서비스를 사용할 수 있는 권한을 부여하는 IAM 정책을 자격 증명에 연결해야 합니다.

또한 특정 서비스에서 사용자는 키 정책에 있는 추가 권한이 필요할 수 있습니다. 예를 들어 CMK에 대한 권한 부여를 생성, 나열 및 취소하는 권한이 필요할 수 있습니다. 또는 특정 IAM 정책이 필요할 수 있습니다. 세부 정보는 해당 서비스에 대한 설명서를 참조하십시오.

마지막으로, 통합 서비스에 대한 CMKs에 표시되는 AWS Management 콘솔 목록에는 외부 계정에 CMKs가 포함되지 않습니다. 사용자 또는 역할이 해당 키를 사용할 권한을 가지고 있는 경우에도 마찬가지입니다. 외부 계정의 CMK를 사용하려면 사용자가 CMK의 ID 또는 ARN을 입력해야 합니다. 세부 정보는 해당 서비스의 콘솔 설명서를 참조하십시오.