기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
다른의 사용자 또는 역할이 계정에서 KMS 키를 AWS 계정 사용하도록 허용할 수 있습니다. 교차 계정 액세스에는 KMS 키의 키 정책과 외부 사용자 계정의 IAM 정책에 대한 권한이 필요합니다.
교차 계정 권한은 다음 작업에만 적용됩니다.
다른 계정의 사용자에게 다른 작업에 대한 권한을 부여하면 해당 권한은 영향을 주지 않습니다. 예를 들어 다른 계정의 보안 주체에 IAM 정책의 kms:ListKeys 권한을 부여하거나 키 정책의 KMS 키에 대한 kms:ScheduleKeyDeletion 권한을 부여하는 경우 리소스에서 해당 작업을 호출하려는 사용자의 시도는 여전히 실패합니다.
AWS KMS 작업을 위해 여러 계정에서 KMS 키를 사용하는 방법에 대한 자세한 내용은 AWS KMS 권한 및의 교차 계정 사용 열을 참조하세요다른 계정에서 KMS 키 사용. 또한 AWS Key Management Service API 참조서의 각 API 설명에 교차 계정 사용 섹션도 있습니다.
주의
보안 주체에 KMS 키를 사용할 수 있는 권한을 부여할 때는 주의해야 합니다. 가능하면 최소 권한 원칙을 따르십시오. 사용자에게 필요한 작업에만 필요한 KMS 키에만 액세스할 수 있도록 합니다.
또한 익숙하지 않은 KMS 키, 특히 다른 계정의 KMS 키를 사용할 때는 주의해야 합니다. 악의적인 사용자는 KMS 키를 사용하여 본인이나 계정에 대한 정보를 얻을 수 있는 권한을 부여할 수 있습니다.
정책을 사용하여 계정의 리소스를 보호하는 방법에 대한 자세한 내용은 IAM 정책 모범 사례 섹션을 참조하십시오.
다른 계정의 사용자 및 역할에게 KMS 키를 사용할 수 있는 권한을 부여하려면 다음 두 가지 유형의 정책을 사용해야 합니다.
-
KMS 키의 키 정책은 외부 계정(또는 외부 계정의 사용자 및 역할)에게 KMS 키를 사용할 수 있는 권한을 부여해야 합니다. 키 정책은 KMS 키를 소유하는 계정에 있습니다.
-
외부 계정의 IAM 정책은 키 정책 권한을 해당 사용자 및 역할에 위임해야 합니다. 이러한 정책은 외부 계정에 설정되며 해당 계정의 사용자 및 역할에 권한을 부여합니다.
키 정책은 누가 KMS 키에 대한 액세스 권한을 가질 수 있는지를 결정합니다. IAM 정책은 누가 KMS 키에 대한 액세스 권한을 가질 수 있는지를 결정합니다. 키 정책과 IAM 정책만으로는 충분하지 않습니다. 둘 다 변경해야 합니다.
키 정책을 편집하려면 AWS Management Console 에서 정책 보기를 사용하거나 CreateKey 또는 PutKeyPolicy작업을 사용할 수 있습니다.
IAM 정책 편집에 대한 도움말은 에서 IAM 정책 사용 AWS KMS 섹션을 참조하십시오.
키 정책과 IAM 정책이 함께 작동하여 다른 계정에서 KMS 키 사용을 허용하는 방법을 보여 주는 예는 예제 2: 사용자가 다른에서 KMS 키를 사용할 수 있는 권한이 있는 역할을 수임함 AWS 계정 섹션을 참조하십시오.
AWS CloudTrail 로그의 KMS 키에서 결과 교차 계정 AWS KMS 작업을 볼 수 있습니다. 다른 계정의 KMS 키를 사용하는 작업은 호출자의 계정과 KMS 키 소유자 계정 모두에 기록됩니다.
참고
이 주제의 예제에서는 키 정책과 IAM 정책을 함께 사용하여 KMS 키에 대한 액세스를 제공하고 제한하는 방법을 보여 줍니다. 이러한 일반 예제는 KMS 키에 대해 특정에 AWS 서비스 필요한 권한을 나타내기 위한 것이 아닙니다. 에 AWS 서비스 필요한 권한에 대한 자세한 내용은 서비스 설명서의 암호화 주제를 참조하세요.
1단계: 로컬 계정에서 키 정책 문 추가
KMS 키에 대한 키 정책은 누가 KMS 키에 액세스할 수 있으며 어떤 작업을 수행할 수 있는지에 대한 주요 결정 요인입니다. 키 정책은 항상 KMS 키를 소유하는 계정에 있습니다. IAM 정책과 달리, 키 정책은 리소스를 지정하지 않습니다. 리소스는 키 정책과 연결된 KMS 키입니다. 교차 계정 권한을 제공할 때 KMS 키의 키 정책은 외부 계정(또는 외부 계정의 사용자 및 역할)에게 KMS 키를 사용할 수 있는 권한을 부여해야 합니다.
외부 계정에게 KMS 키를 사용할 수 있는 권한을 부여하려면 외부 계정을 지정하는 문을 키 정책에 추가합니다. 키 정책의 Principal
요소에 외부 계정의 Amazon 리소스 이름(ARN)을 입력합니다.
키 정책에서 외부 계정을 지정하면 외부 계정의 IAM 관리자는 IAM 정책을 사용하여 해당 권한을 외부 계정의 사용자 및 역할에게 위임할 수 있습니다. 또한 키 정책에 지정된 작업 중 어떤 작업을 사용자 및 역할이 수행할 수 있는지도 결정할 수 있습니다.
외부 계정 및 보안 주체에 부여된 사용 권한은 KMS 키와 키 정책을 호스팅하는 리전에서 외부 계정을 사용하도록 설정한 경우에만 유효합니다. 기본적으로 사용하도록 설정되지 않은 리전(‘옵트인 리전’)에 대한 자세한 내용은 AWS 일반 참조의 AWS 리전관리를 참조하세요.
예를 들어 계정 444455556666
이 계정 111122223333
에서 대칭 암호화 KMS 키를 사용하도록 허용한다고 가정합니다. 이렇게 하려면 다음 예제와 같은 정책 문을 111122223333
계정의 KMS 키에 대한 키 정책에 추가합니다. 이 정책문은 대칭 암호화 KMS 키에 대한 암호화 작업에서 KMS 키를 사용할 수 있는 권한을 외부 계정 444455556666
에 부여합니다.
참고
다음 예는 KMS 키를 다른 계정과 공유하기 위한 샘플 키 정책을 나타냅니다. 예제 Sid
, Principal
및 Action
값을 KMS 키의 용도에 맞는 유효한 값으로 바꾸세요.
{
"Sid": "Allow an external account to use this KMS key
",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::444455556666:root
"
]
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*"
}
외부 계정에게 권한을 부여하는 대신, 키 정책에서 특정 외부 사용자 및 역할을 지정할 수 있습니다. 하지만 이러한 사용자 및 역할은 외부 계정의 IAM 관리자가 적절한 IAM 정책을 해당 자격 증명에 연결할 때까지 KMS 키를 사용할 수 없습니다. IAM 정책은 키 정책에 지정된 외부 사용자 및 역할의 일부 또는 전부에게 권한을 부여할 수 있습니다. 그리고 이 정책은 키 정책에 지정된 작업의 일부 또는 전부를 허용할 수 있습니다.
키 정책에서 자격 증명을 지정하면 외부 계정의 IAM 관리자가 제공할 수 있는 권한이 제한됩니다. 하지만 이렇게 하면 두 계정의 정책 관리가 더 복잡해집니다. 예를 들어, 사용자 또는 역할을 추가해야 한다고 가정합니다. KMS 키를 소유하는 계정에서 키 정책에 해당 자격 증명을 추가하고 자격 증명의 계정에서 IAM 정책을 생성해야 합니다.
키 정책에서 특정 외부 사용자 또는 역할을 지정하려면 Principal
요소에 외부 계정의 사용자 또는 역할의 Amazon 리소스 이름(ARN)을 입력합니다.
예를 들어, 다음 예제 키 정책 문은 444455556666
계정의 ExampleRole
이 111122223333
계정의 KMS 키를 사용하도록 허용합니다. 이 키 정책문은 대칭 암호화 KMS 키에 대한 암호화 작업에서 KMS 키를 사용할 수 있는 권한을 외부 계정 444455556666
에 부여합니다.
참고
다음 예는 KMS 키를 다른 계정과 공유하기 위한 샘플 키 정책을 나타냅니다. 예제 Sid
, Principal
및 Action
값을 KMS 키의 용도에 맞는 유효한 값으로 바꾸세요.
{
"Sid": "Allow an external account to use this KMS key
",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::444455556666:role/ExampleRole"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*"
}
참고
조건을 사용하여 키 정책을 제한하지 않는 한 권한을 허용하는 키 정책문에서 보안 주체를 별표(*)로 설정하지 마세요. 별표는 다른 정책 문이 명시적으로 거부하지 않는 한 KMS 키를 사용할 수 있는 모든 AWS 계정 권한을 모든 자격 증명에 부여합니다. 다른의 사용자는 자신의 계정에 해당 권한이 있을 때마다 KMS 키를 사용할 AWS 계정 수 있습니다.
또한 외부 계정에게 어떤 권한을 부여할지도 결정해야 합니다. 예를 들어, 암호화 해제할 수 있지만 암호화할 수 없는 권한을 부여하거나, KMS 키를 볼 수 있지만 사용할 수 없는 권한을 부여해야 할 수 있습니다. KMS 키에 대한 권한 목록은 AWS KMS 권한 섹션을 참조하세요.
- KMS 키를 생성하는 경우 키 정책 설정
-
CreateKey 작업을 사용하여 KMS 키를 생성하는 경우
Policy
파라미터를 사용하여 외부 계정 또는 외부 사용자 및 역할에게 KMS 키를 사용할 권한을 부여하는 키 정책을 지정할 수 있습니다.에서 KMS 키를 생성할 때 키 정책 AWS Management Console도 생성합니다. Key Administrators(키 관리자) 및 Key Users(키 사용자) 섹션에서 자격 증명을 선택하면 AWS KMS 는 해당 자격 증명에 대한 정책 문을 KMS 키의 키 정책에 추가합니다. 또한 Key Users(키 사용자) 섹션을 사용하여 외부 계정을 키 사용자로 추가할 수도 있습니다.
외부 계정의 계정 ID를 입력하면가 키 정책에 두 개의 문을 AWS KMS 추가합니다. 이 작업은 키 정책에만 영향을 미칩니다. 해당 사용자 및 역할에 이러한 권한의 일부 또는 전부를 부여하는 IAM 정책을 연결할 때까지 외부 계정의 사용자 및 역할은 KMS 키를 사용할 수 없습니다.
첫 번째 키 정책문은 외부 계정에게 암호화 작업에서 KMS 키를 사용할 수 있는 권한을 부여합니다. 두 번째 키 정책 문은 외부 계정이 KMS 키에 대한 권한 부여를 생성, 확인 및 취소할 수 있도록 허용하지만 요청이 AWS 와 통합된 서비스 AWS KMS
에서 오는 경우에만 허용됩니다. 이러한 권한을 통해 사용자 데이터를 암호화하는 다른 AWS 서비스에서 KMS 키를 사용할 수 있습니다. 이러한 권한은 AWS 서비스의 사용자 데이터를 암호화하는 KMS 키용으로 설계되었습니다.
2단계: 외부 계정에서 IAM 정책 추가
KMS 키를 소유하는 계정의 키 정책은 권한의 유효 범위를 설정합니다. 그러나 해당 권한을 위임하는 IAM 정책을 연결하거나 권한 부여를 사용하여 KMS 키에 대한 액세스를 관리할 때까지 외부 계정의 사용자 및 역할은 KMS 키를 사용할 수 없습니다. IAM 정책은 외부 계정에서 설정됩니다.
키 정책이 외부 계정에게 권한을 부여하는 경우 계정의 어떠한 사용자 또는 역할에든 IAM 정책을 연결할 수 있습니다. 키 정책이 지정된 사용자 또는 역할에게 권한을 부여하는 경우 IAM 정책은 지정된 사용자 및 역할의 일부 또는 전부에게만 해당 권한을 부여할 수 있습니다. IAM 정책이 기타 외부 사용자 또는 역할에게 KMS 키 액세스 권한을 부여하는 경우 해당 권한은 효과가 없습니다.
키 정책은 IAM 정책의 작업도 제한합니다. IAM 정책은 키 정책에 지정된 작업의 일부 또는 전부를 위임할 수 있습니다. IAM 정책이 키 정책에 지정되지 않은 작업을 나열하는 경우 해당 권한은 효과가 없습니다.
다음 예제 IAM 정책은 보안 주체가 111122223333
계정의 KMS 키를 암호화 작업에 사용하도록 허용합니다. 이 권한을 444455556666
계정의 사용자 및 역할에 부여하려면 444455556666
계정의 사용자 또는 역할에 정책을 연결합니다.
참고
다음 예제는 KMS 키를 다른 계정과 공유하기 위한 샘플 IAM 정책을 나타냅니다. 예제 Sid
, Resource
및 Action
값을 KMS 키의 용도에 맞는 유효한 값으로 바꾸세요.
{
"Sid": "AllowUseOfKeyInAccount111122223333
",
"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 정책에서 보안 주체는 정책이 연결되는 자격 증명입니다. -
IAM 정책의
Resource
요소는 보안 주체가 사용할 수 있는 KMS 키를 식별합니다. KMS 키를 지정하려면 해당 키 ARN을Resource
요소에 추가합니다. -
Resource
요소에서 KMS 키를 두 개 이상 지정할 수 있습니다. 하지만Resource
요소에서 특정 KMS 키를 지정하지 않으면 의도한 것보다 많은 KMS 키에 대한 액세스 권한을 실수로 부여할 수 있습니다. -
외부 사용자가 AWS KMS와 통합된AWS 서비스
에 KMS 키를 사용하도록 허용하려면 키 정책 또는 IAM 정책에 권한을 추가해야 할 수 있습니다. 자세한 내용은 AWS 서비스에서 외부 KMS 키 사용 허용 섹션을 참조하세요.
IAM 정책 작업에 대한 자세한 내용은 IAM 정책 섹션을 참조하십시오.
AWS 서비스에서 외부 KMS 키 사용 허용
다른 계정의 사용자에게 AWS KMS와 통합된 서비스에 KMS 키를 사용할 권한을 부여할 수 있습니다. 예를 들어, 외부 계정의 사용자는 KMS 키를 사용하여 Amazon S3 버킷의 객체를 암호화하거나 객체가 AWS Secrets Manager에 저장하는 비밀을 암호화할 수 있습니다.
키 정책은 외부 사용자 또는 외부 사용자의 계정에게 KMS 키를 사용할 수 있는 권한을 부여해야 합니다. 추가로, 사용자에게 AWS 서비스를 사용할 수 있는 권한을 부여하는 IAM 정책을 자격 증명에 연결해야 합니다. 서비스에서 사용자에게 키 정책 또는 IAM 정책에 대한 추가 권한이 필요할 수도 있습니다. 에서 고객 관리형 키에 AWS 서비스 필요한 권한 목록은 서비스 사용 설명서 또는 개발자 안내서의 보안 장의 데이터 보호 주제를 참조하세요.
다른 계정에서 KMS 키 사용
다른에서 KMS 키를 사용할 권한이 있는 경우 AWS Management Console, AWS 계정, AWS SDKs AWS CLI및에서 KMS 키를 사용할 수 있습니다 AWS Tools for PowerShell.
셸 명령 또는 API 요청에서 다른 계정의 KMS 키를 식별하려면 다음 키 식별자를 사용합니다.
-
암호화 작업, DescribeKey 및 GetPublicKey의 경우 KMS 키의 키 ARN 또는 별칭 ARN을 사용합니다.
-
CreateGrant, GetKeyRotationStatus, ListGrants 및 RevokeGrant의 경우 KMS 키의 키 ARN을 사용합니다.
키 ID 또는 별칭 이름만 입력하면 KMS 키가 계정에 있다고 AWS 가정합니다.
AWS KMS 콘솔에는 다른 계정에 KMS 키가 표시되지 않습니다. 사용자가 KMS 키를 사용할 권한이 있더라도 마찬가지입니다. 또한 다른 AWS 서비스의 콘솔에 표시되는 KMS 키 목록에는 다른 계정의 KMS 키가 포함되어 있지 않습니다.
AWS 서비스의 콘솔에서 다른 계정에 KMS 키를 지정하려면 KMS 키의 키 ARN 또는 별칭 ARN을 입력해야 합니다. 필요한 키 식별자는 서비스에 따라 다르며, 서비스 콘솔과 API 작업마다 다를 수 있습니다. 세부 정보는 서비스 문서를 참조하세요.