기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
고급 KMS 키 정책 설명
고급 KMS 키 정책 설명을 사용하여 고객 관리형 KMS 키에 대한 보다 세분화된 액세스 제어를 구현합니다. 이러한 정책은 암호화 컨텍스트 조건 및 서비스별 제한을 추가하여 기준 KMS 키 및 IAM 정책 설명 섹션을 기반으로 합니다. 고급 KMS 키 정책 설명을 사용할지 여부를 결정하기 전에 관련 고려 사항을 검토해야 합니다.
암호화 컨텍스트를 사용하여 액세스 제한
키 정책 설명에 암호화 컨텍스트 조건을 지정하여 KMS 키 사용을 특정 IAM Identity Center 인스턴스로 제한할 수 있습니다. 기준 키 정책 설명에는 일반 값과 함께 이 컨텍스트가 이미 포함되어 있습니다. 키가 의도한 인스턴스에서만 작동하도록 “*” 와일드카드를 특정 Identity Center 인스턴스 ARN 및 Identity Store ARN으로 바꿉니다. KMS 키의 교차 계정 사용을 위해 구성된 IAM 정책에 동일한 암호화 컨텍스트 조건을 추가할 수도 있습니다.
자격 증명 센터
"StringEquals": { "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef" }
아이덴티티 스토어
"StringEquals": { "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890" }
이러한 식별자를 찾는 데 도움이 필요한 경우 필요한 식별자를 찾을 수 있는 위치 섹션을 참조하세요.
참고
IAM Identity Center의 조직 인스턴스에서만 고객 관리형 KMS 키를 사용할 수 있습니다. 고객 관리형 키는 AWS 조직의 관리 계정에 있어야 합니다. 이렇게 하면 키를 단일 IAM Identity Center 인스턴스와 함께 사용할 수 있습니다. 그러나 암호화 컨텍스트 메커니즘은 단일 인스턴스 사용에 대한 독립적인 기술적 보호 기능을 제공합니다. Identity Center 및 Identity Store 서비스 위탁자를 위한 KMS 키 정책 설명에서 aws:SourceArn 조건 키를 사용할 수도 있습니다.
암호화 컨텍스트 조건 구현 시 고려 사항
암호화 컨텍스트 조건을 구현하기 전에 다음 요구 사항을 검토합니다.
-
DescribeKey 작업. 암호화 컨텍스트는 IAM Identity Center 관리자가 사용할 수 있는 ‘kms:DescribeKey’ 작업에 적용할 수 없습니다. KMS 키 정책을 구성할 때 IAM Identity Center 인스턴스의 적절한 작동을 보장하기 위해 이 특정 작업에 대한 암호화 컨텍스트를 제외합니다.
-
새 인스턴스 설정. 고객 관리형 KMS 키를 사용하여 새 IAM Identity Center 인스턴스를 활성화하는 경우 고객 관리형 KMS 키 및 고급 KMS 키 정책에 대한 고려 사항 섹션을 참조하세요.
-
자격 증명 소스 변경. 자격 증명 소스를 Active Directory로 변경하거나 Active Directory에서 변경할 때 암호화 컨텍스트에 특별한 주의가 필요합니다. ID 소스 변경 시 고려 사항을(를) 참조하세요.
정책 템플릿
보안 요구 사항에 따라 이러한 고급 정책 템플릿 중에서 선택합니다. 세분화된 액세스 제어와 해당 제어가 도입하는 관리 오버헤드의 균형을 맞춥니다.
여기에서 다루는 주제는 다음과 같습니다.
-
특정 IAM Identity Center 인스턴스의 읽기 전용 사용에 대한 KMS 정책 설명. 이 섹션에서는 IAM Identity Center에 대한 읽기 전용 액세스에 암호화 컨텍스트를 사용하는 방법을 보여줍니다.
-
AWS 관리형 애플리케이션 사용을 위한 KMS 키 정책 설명 개선. 이 섹션에서는 애플리케이션 서비스 보안 주체, 애플리케이션 ARN 및 AWS 계정 ID와 같은 암호화 컨텍스트 및 애플리케이션 정보를 사용하여 AWS 관리형 애플리케이션에 대한 KMS 키 정책을 구체화하는 방법을 보여줍니다.
특정 IAM Identity Center 인스턴스의 읽기 전용 사용에 대한 KMS 정책 설명
이 정책은 IAM Identity Center에 대한 읽기 액세스 권한만 필요한 보안 감사자 및 기타 직원이 KMS 키를 사용하도록 허용합니다.
이 정책을 사용하려면 다음을 수행합니다.
-
예제 읽기 전용 관리자 IAM 위탁자를 실제 관리자 IAM 위탁자로 바꾸기
-
예제 IAM Identity Center 인스턴스 ARN을 실제 인스턴스 ARN으로 바꾸기
-
예제 Identity Store ARN을 실제 Identity Store ARN으로 바꾸기
-
위임된 관리를 사용하는 경우 4단계: KMS 키의 교차 계정 사용을 위한 IAM 정책 구성 섹션을 참조하세요.
이러한 식별자의 값을 찾는 데 도움이 필요한 경우 필요한 식별자를 찾을 수 있는 위치 섹션을 참조하세요.
템플릿을 값으로 업데이트한 후 2단계: KMS 키 정책 설명 준비 섹션으로 돌아가 필요에 따라 추가 KMS 키 정책 설명을 준비합니다.
kms:Decrypt 작업만으로는 읽기 전용 작업에 대한 액세스를 제한하지 않습니다. IAM 정책은 IAM Identity Center 서비스 API에 대한 읽기 전용 액세스를 적용해야 합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowReadOnlyAccessToIdentityCenterAPI", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyAdminRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "sso.*.amazonaws.com", "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef" } } }, { "Sid": "AllowReadOnlyAccessToIdentityStoreAPI", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyAdminRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890" } } } ] }
AWS 관리형 애플리케이션 사용을 위한 KMS 키 정책 설명 개선
이러한 정책 템플릿은 KMS 키를 사용할 수 있는 AWS 관리형 애플리케이션을 보다 세밀하게 제어할 수 있습니다.
참고
일부 AWS 관리형 애플리케이션은 고객 관리형 KMS 키로 구성된 IAM Identity Center와 함께 사용할 수 없습니다. IAM Identity Center와 함께 사용할 수 있는AWS 관리형 애플리케이션을 참조하세요.
는 동일한 AWS 조직의 모든 계정에서 AWS 관리형 애플리케이션이 KMS 키를 사용하도록 AWS 관리형 애플리케이션 사용을 위한 기준 KMS 키 및 IAM 정책 설명 허용합니다. 다음과 같이 세분화된 정책을 사용하여 액세스를 제한합니다.
-
애플리케이션 서비스 위탁자
-
애플리케이션 인스턴스 ARN
-
AWS 계정 IDs
-
특정 IAM Identity Center 인스턴스의 암호화 컨텍스트
참고
서비스 보안 주체는 AWS 서비스의 고유 식별자로, 일반적으로 servicename.amazonaws.com 형식입니다(예: Amazon EMR의 경우 elasticmapreduce.amazonaws.com).
계정으로 제한
이 KMS 키 정책 설명 템플릿을 사용하면 특정 AWS 계정의 AWS 관리형 애플리케이션이 특정 IAM Identity Center 인스턴스를 사용하여 KMS 키를 사용할 수 있습니다.
이 정책을 사용하려면 다음을 수행합니다.
-
예제 서비스 위탁자를 실제 애플리케이션 서비스 위탁자로 바꾸기
-
예제 계정 ID를 AWS 관리형 애플리케이션이 배포된 실제 계정 ID로 바꾸기
-
예제 Identity Store ARN을 실제 Identity Store ARN으로 바꾸기
-
예제 IAM Identity Center 인스턴스 ARN을 실제 인스턴스 ARN으로 바꾸기
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowServiceInSpecificAccountsToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "Service": "myapp.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": [ "111122223333", "444455556666" ] }, "StringLike": { "kms:ViaService": "sso.*.amazonaws.com", "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } }, { "Sid": "AllowServiceInSpecificAccountsToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "Service": "myapp.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": [ "111122223333", "444455556666" ] }, "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } } ] }
애플리케이션 인스턴스로 제한
이 KMS 키 정책 설명 템플릿을 사용하면 특정 AWS 관리형 애플리케이션 인스턴스가 특정 IAM Identity Center 인스턴스를 사용하여 KMS 키를 사용할 수 있습니다.
이 정책을 사용하려면 다음을 수행합니다.
-
예제 서비스 위탁자를 실제 애플리케이션 서비스 위탁자로 바꾸기
-
예제 애플리케이션 ARN을 실제 애플리케이션 인스턴스 ARN으로 바꾸기
-
예제 Identity Store ARN을 실제 Identity Store ARN으로 바꾸기
-
예제 IAM Identity Center 인스턴스 ARN을 실제 인스턴스 ARN으로 바꾸기
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSpecificAppInstanceToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "Service": "myapp.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceARN": "arn:aws:myapp:us-east-1:111122223333:application/my-application" }, "StringLike": { "kms:ViaService": "sso.*.amazonaws.com", "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } }, { "Sid": "AllowSpecificAppInstanceToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "Service": "myapp.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceARN": "arn:aws:myapp:us-east-1:111122223333:application/my-application" }, "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } } ] }