기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon DataZone에 대한 저장 데이터 암호화
저장 데이터를 기본적으로 암호화하면 민감한 데이터 보호와 관련된 운영 오버헤드와 복잡성을 줄이는 데 도움이 됩니다. 동시에 엄격한 암호화 규정 준수 및 규제 요구 사항을 충족하는 안전한 애플리케이션을 구축할 수 있습니다.
Amazon DataZone은 기본 AWS소유 키를 사용하여 저장 데이터를 자동으로 암호화합니다. AWS 소유 키의 사용을 보거나 관리하거나 감사할 수 없습니다. 자세한 내용은 AWS 소유 키를 참조하세요.
이 암호화 계층을 비활성화하거나 대체 암호화 유형을 선택할 수는 없지만 Amazon DataZone 도메인을 생성할 때 고객 관리형 키를 선택하여 기존 AWS 소유 암호화 키에 두 번째 암호화 계층을 추가할 수 있습니다. Amazon DataZone은 기존 소유 암호화에 두 번째 암호화 계층을 추가하기 위해 생성, 소유 및 관리할 수 있는 대칭 고객 관리 AWS 형 키 사용을 지원합니다. 이 암호화 계층을 완전히 제어할 수 있으므로 다음과 같은 작업을 수행할 수 있습니다.
-
키 정책 수립 및 관리
-
IAM 정책 및 권한 부여 수립 및 관리
-
키 정책 활성화 및 비활성화
-
키 암호화 자료 교체
-
태그 추가
-
키 별칭 생성
-
키 삭제 예약
자세한 내용은 고객 관리형 키를 참조하세요.
참고
Amazon DataZone은 AWS 소유 키를 사용하여 저장 시 암호화를 자동으로 활성화하여 고객 데이터를 무료로 보호합니다.
AWS 고객 관리형 키를 사용하는 경우 KMS 요금이 적용됩니다. 요금에 대한 자세한 내용은 AWS Key Management Service 요금
Amazon DataZone이 AWS KMS에서 권한 부여를 사용하는 방법
Amazon DataZone에서 고객 관리형 키를 사용하려면 권한 부여가 필요합니다. 고객 관리형 키로 암호화된 Amazon DataZone 도메인을 생성하면 Amazon DataZone은 CreateGrant 요청을 AWS KMS로 전송하여 사용자를 대신하여 권한 부여 및 하위 권한 부여를 생성합니다. AWS KMS의 권한 부여는 Amazon DataZone에 계정의 KMS 키에 대한 액세스 권한을 부여하는 데 사용됩니다. Amazon DataZone은 다음 내부 작업에 대해 고객 관리형 키를 사용하기 위한 권한 부여가 필요합니다.
다음 작업을 위해 저장 데이터를 암호화할 수 있는 권한 1개:
-
AWS KMS에 DescribeKey 요청을 전송하여 Amazon DataZone 도메인 컬렉션을 생성할 때 입력한 대칭 고객 관리형 KMS 키 ID가 유효한지 확인합니다.
-
GenerateDataKeyrequests를 AWS KMS로 전송하여 고객 관리형 키로 암호화된 데이터 키를 생성합니다.
-
AWS KMS에 Decrypt 요청을 보내 암호화된 데이터 키를 복호화하여 데이터를 암호화하는 데 사용할 수 있도록 합니다.
-
도메인이 삭제될 때 부여를 사용 중지하려면 RetireGrant를 선택합니다.
데이터 검색 및 검색에 대한 두 가지 권한 부여:
-
권한 부여 2:
-
DataZone에서 내부적으로 사용하는 AWS 서비스에 대한 하위 권한 부여를 생성하려면 CreateGrant를 선택합니다.
-
권한 부여 3:
언제든지 권한 부여에 대한 액세스 권한을 취소하거나 고객 관리형 키에 대한 서비스 액세스를 제거할 수 있습니다. 그렇게 하면 Amazon DataZone은 고객 관리형 키로 암호화된 데이터에 액세스할 수 없게 되며, 이는 해당 데이터에 의존하는 작업에 영향을 미칩니다. 예를 들어 Amazon DataZone에서 액세스할 수 없는 환경 세부 정보를 가져오려고 하면 작업에서 AccessDeniedException
오류가 반환됩니다.
고객 관리형 키 생성
AWS Management Console 또는 AWS KMS APIs.
대칭 고객 관리형 키를 생성하려면 AWS Key Management Service 개발자 안내서의 대칭 고객 관리형 키 생성 단계를 따르세요.
키 정책 - 고객 관리형 키에 대한 액세스를 제어합니다. 모든 고객 관리형 키에는 키를 사용할 수 있는 사람과 키를 사용하는 방법을 결정하는 문장이 포함된 정확히 하나의 키 정책이 있어야 합니다. 고객 관리형 키를 만들 때 키 정책을 지정할 수 있습니다. 자세한 내용은 AWS Key Management Service 개발자 안내서의 고객 관리형 키에 대한 액세스 관리를 참조하세요.
Amazon DataZone 리소스와 함께 고객 관리형 키를 사용하려면 키 정책에서 다음 API 작업을 허용해야 합니다.
-
kms:CreateGrant – 고객 관리형 키에 권한 부여를 추가합니다. Amazon DataZone에 필요한 권한 부여 작업에 대한 액세스를 허용하는 지정된 KMS 키에 대한 제어 액세스 권한을 부여합니다. 권한 부여 사용에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서를 참조하세요.
-
kms:DescribeKey - Amazon DataZone이 키를 검증할 수 있도록 고객 관리형 키 세부 정보를 제공합니다.
-
kms:GenerateDataKey - KMS 외부에서 사용할 고유한 대칭 데이터 키를 반환합니다.
-
kms:Decrypt – KMS 키로 암호화된 사이퍼텍스트를 해독합니다.
다음은 Amazon DataZone에 추가할 수 있는 정책 설명 예시입니다.
"Statement" : [ { "Sid" : "Allow access to principals authorized to manage Amazon DataZone", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::<account_id>:root" }, "Action" : [ "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource" : "arn:aws:kms:region:<account_id>:key/key_ID", } ]
참고
Amazon DataZone 데이터 포털을 통해 액세스하는 리소스에는 KMS 정책 거부가 적용되지 않습니다.
정책에서 권한을 지정하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서를 참조하세요.
키 액세스 문제 해결에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서를 참조하세요.
Amazon DataZone에 대한 고객 관리형 키 지정
Amazon DataZone 암호화 컨텍스트
암호화 컨텍스트는 데이터에 대한 추가 컨텍스트 정보를 포함하는 선택적 키-값 페어 세트입니다.
AWS KMS는 암호화 컨텍스트를 추가 인증 데이터로 사용하여 인증된 암호화를 지원합니다. 데이터 암호화 요청에 암호화 컨텍스트를 포함하면 AWS KMS는 암호화 컨텍스트를 암호화된 데이터에 바인딩합니다. 요청에 동일한 암호화 컨텍스트를 포함해야 이 데이터를 해독할 수 있습니다.
Amazon DataZone은 다음과 같은 암호화 컨텍스트를 사용합니다.
"encryptionContextSubset": { "aws:datazone:domainId": "{root-domain-uuid}" }
모니터링에 암호화 컨텍스트 사용 - 대칭형 고객 관리형 키를 사용하여 Amazon DataZone을 암호화하는 경우 감사 레코드 및 로그의 암호화 컨텍스트를 사용하여 고객 관리형 키가 사용되는 방식을 식별할 수도 있습니다. 암호화 컨텍스트는 AWS CloudTrail 또는 Amazon CloudWatch Logs에서 생성된 로그에도 나타납니다.
고객 관리형 키 액세스 제어를 위해 암호화 컨텍스트 사용 - 키 정책 및 IAM 정책에서 암호화 컨텍스트를 조건으로 사용하여 대칭형 고객 관리형 키에 대한 액세스를 제어할 수도 있습니다. 또한 권한 부여에서 암호화 컨텍스트 제약 조건을 사용할 수 있습니다.
Amazon DataZone은 권한 부여 시 암호화 컨텍스트 제약 조건을 사용하여 계정 또는 리전의 고객 관리형 키에 대한 액세스를 제어합니다. 권한 부여 제약 조건에 따라 권한 부여가 허용하는 작업은 지정된 암호화 컨텍스트를 사용해야 합니다.
다음은 특정 암호화 컨텍스트에서 고객 관리형 키에 대한 액세스 권한을 부여하는 키 정책 설명의 예입니다. 이 정책 설명의 조건에 따라 권한 부여에는 암호화 컨텍스트를 지정하는 암호화 컨텍스트 제약 조건이 있어야 합니다.
{ "Sid": "Enable DescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action": "kms:DescribeKey", "Resource": "*" },{ "Sid": "Enable Decrypt, GenerateDataKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:datazone:domainId": "{root-domain-uuid}" } } }
Amazon DataZone에 대한 암호화 키 모니터링
Amazon DataZone 리소스와 함께 AWS KMS 고객 관리형 키를 사용하는 경우 AWS CloudTrail을 사용하여 Amazon DataZone이 AWS KMS로 보내는 요청을 추적할 수 있습니다. 다음 예제는 CreateGrant
, GenerateDataKey
, 및 DescribeKey
에 대한 AWS CloudTrail 이벤트로Decrypt
, Amazon DataZone에서 고객 관리형 키로 암호화된 데이터에 액세스하기 위해 호출한 KMS 작업을 모니터링합니다. AWS KMS 고객 관리형 키를 사용하여 Amazon DataZone 도메인을 암호화하면 Amazon DataZone은 사용자를 대신하여 AWS 계정의 KMS 키에 액세스하라는 CreateGrant
요청을 보냅니다. Amazon DataZone이 생성하는 권한 부여는 AWS KMS 고객 관리형 키와 연결된 리소스에만 적용됩니다. 또한Amazon DataZone은 도메인을 삭제하면 RetireGrant
작업을 사용하여 권한 부여를 제거합니다. 다음 예제 이벤트는 CreateGrant
작업을 기록합니다.
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-04-22T17:02:00Z" } }, "invokedBy": "datazone.amazonaws.com" }, "eventTime": "2021-04-22T17:07:02Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "constraints": { "encryptionContextSubset": { "aws:datazone:domainId": "SAMPLE-root-domain-uuid" } }, "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "operations": [ "Decrypt", "GenerateDataKey", "RetireGrant", "DescribeKey" ], "granteePrincipal": "datazone.us-west-2.amazonaws.com" }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }
암호화된 AWS Glue 카탈로그가 포함된 Data Lake 환경 생성
고급 사용 사례에서는 암호화된 AWS Glue 카탈로그로 작업할 때 고객 관리형 KMS 키를 사용하려면 Amazon DataZone 서비스에 대한 액세스 권한을 부여해야 합니다. 사용자 지정 KMS 정책을 업데이트하고 키에 태그를 추가하여 이 작업을 수행할 수 있습니다. 암호화된 AWS Glue 카탈로그의 데이터로 작업할 수 있도록 Amazon DataZone 서비스에 대한 액세스 권한을 부여하려면 다음을 완료하세요.
-
사용자 지정 KMS 키에 다음 정책을 추가합니다. 자세한 내용은 키 정책 변경을 참조하세요.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow datazone environment roles to decrypt using the key", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:glue_catalog_id": "<GLUE_CATALOG_ID>" }, "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::<ENVIRONMENT_ACCOUNT_1>:role/*datazone_usr*", "arn:aws:iam::<ENVIRONMENT_ACCOUNT_2>:role/*datazone_usr*" ] } } }, { "Sid": "Allow datazone environment roles to describe the key", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::<ENVIRONMENT_ACCOUNT_1>:role/*datazone_usr*", "arn:aws:iam::<ENVIRONMENT_ACCOUNT_2>:role/*datazone_usr*" ] } } } ] }
중요
-
환경을 생성하려는 계정 IDs를 사용하여 정책의
"aws:PrincipalArn"
ARNs을 수정해야 합니다. 환경을 생성하려는 각 계정은 정책에 로 나열되어야 합니다"aws:PrincipalArn"
. -
또한 <GLUE_CATALOG_ID>를 AWS Glue 카탈로그가 위치한 유효한 AWS 계정 ID로 바꿔야 합니다.
-
이 정책은 지정된 계정(들)의 모든 Amazon DataZone 환경 사용자 역할에 키를 사용할 수 있는 액세스 권한을 부여합니다. 특정 환경 사용자 역할만 키를 사용하도록 허용하려면 와일드카드 형식이 아닌 전체 환경 사용자 역할 이름(예:
arn:aws:iam::<ENVIRONMENT_ACCOUNT_ID>:role/datazone_usr_<ENVIRONMENT_ID>
(여기서 <ENVIRONMENT_ID>는 환경의 ID)을 지정해야 합니다.
-
-
사용자 지정 KMS 키에 다음 태그를 추가합니다. 자세한 내용은 태그를 사용하여 KMS 키에 액세스 제어를 참조하세요.
key: AmazonDataZoneEnvironment value: all