Amazon S3 데이터 액세스 키 관리 - AWS Data Exchange 사용자 가이드

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

Amazon S3 데이터 액세스 키 관리

이 페이지는 공급자가 SSE -를 사용하여 암호화된 객체를 공유하는 Amazon S3 데이터 액세스 유형에만 KMS 해당됩니다. 구독자는 액세스에 사용된 키에 대한 허가를 받아야 합니다.

Amazon S3 버킷에 AWS KMS 고객 관리 키를 사용하여 암호화된 데이터가 포함되어 있는 경우, 이를 AWS KMS keys AWS Data Exchange 공유하여 Amazon S3 데이터 액세스 데이터 세트를 구성해야 합니다. 자세한 내용은 3단계: Amazon S3 데이터 액세스 구성 단원을 참조하십시오.

AWS KMS 보조금 생성

Amazon S3 데이터 액세스 데이터 세트의 AWS KMS keys 일부로 제공하는 경우 각 AWS KMS key 공유에 대한 AWS KMS 권한을 AWS Data Exchange 생성합니다. 부모 지원으로 알려진 이 부여는 구독자에게 추가 부여를 생성할 AWS Data Exchange 권한을 AWS KMS 부여하는 데 사용됩니다. 이러한 추가 권한을 하위 권한이라고 합니다. 가입자당 하나의 AWS KMS 보조금을 받을 수 있습니다. 구독자는 암호를 해독할 수 있는 권한을 받습니다. AWS KMS key그러면 공유된 Amazon S3 객체 암호를 해독하여 사용할 수 있습니다. 자세한 내용은AWS Key Management Service 개발자 가이드에서 AWS KMS권한 부여를 참조하세요.

AWS Data Exchange 또한 AWS KMS 상위 권한 부여를 사용하여 생성한 권한 AWS KMS 부여의 수명 주기를 관리합니다. 구독이 종료되면 해당 AWS Data Exchange 구독자를 위해 만든 AWS KMS 자녀 보조금 사용이 중지됩니다. 수정이 취소되거나 데이터 세트가 삭제되는 경우 부모 보조금은 AWS Data Exchange 폐기됩니다. AWS KMS AWS KMS 조치에 대한 자세한 내용은 참조를 참조하십시오.AWS KMS API

암호화 컨텍스트 및 권한 부여 제약

AWS Data Exchange 요청에 지정된 암호화 컨텍스트가 포함된 경우에만 승인 제약 조건을 사용하여 암호 해독 작업을 허용합니다. Amazon S3 버킷 키 기능을 사용하여 Amazon S3 객체를 암호화하고 공유할 수 있습니다. AWS Data Exchange Amazon S3에서는 Amazon 리소스 이름 (ARN) 버킷을 암호화 컨텍스트로 암시적으로 사용합니다. 다음 예제는 ARN 버킷이 AWS Data Exchange 생성하는 모든 AWS KMS 권한 부여에 대한 권한 제한 조건으로 버킷을 사용하는 것을 보여줍니다.

"Constraints": { "EncryptionContextSubset": "aws:s3:arn": “arn:aws:s3:::<Bucket ARN>" } }

승인 모니터링 AWS KMS keysAWS Data Exchange

AWS KMS 고객 관리 키를 AWS Data Exchange공유하면 구독자 AWS Data Exchange 또는 데이터 구독자가 보내는 요청을 추적하는 AWS CloudTrail데 사용할 수 AWS KMS있습니다. 다음은 CreateGrantDecrypt 호출의 CloudTrail 로그 모양에 대한 AWS KMS예시입니다.

CreateGrant for parent

CreateGrant자체적으로 만든 학부모 AWS Data Exchange 보조금용입니다.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Provider01", "arn": "arn:aws:sts::<your-account-id>:assumed-role/Admin/Provider01", "accountId": "<your-account-id>", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::<your-account-id>:role/Admin/Provider01”, "accountId": "<your-account-id>", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-02-16T17:29:23Z", "mfaAuthenticated": "false" } }, "invokedBy": "datax.amazonaws.com" }, "eventTime": "2023-02-16T17:32:47Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-2", "sourceIPAddress": "datax.amazonaws.com", "userAgent": "datax.amazonaws.com", "requestParameters": { "keyId": "<Key ARN of the Key you shared with AWS Data Exchange>", "operations": [ "CreateGrant", "Decrypt", "RetireGrant" ], "granteePrincipal": "dataexchange.us-east-2.amazonaws.com", "retiringPrincipal": "dataexchange.us-east-2.amazonaws.com", "constraints": { "encryptionContextSubset": { aws:s3:arn": "arn:aws:s3:::<Your Bucket ARN>" } } }, "responseElements": { "grantId": "<KMS Grant ID of the created Grant>", "keyId": "<Key ARN of the Key you shared with AWS Data Exchange>" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "<Your Account Id>", "type": "AWS::KMS::Key", "ARN": "<Key ARN of the Key you shared with AWS Data Exchange>" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "<Your Account Id>", "eventCategory": "Management" }
CreateGrant for child

CreateGrant구독자를 AWS Data Exchange 위해 만든 아동 보조금용입니다.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "datax.amazonaws.com" }, "eventTime": "2023-02-15T23:15:49Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-2", "sourceIPAddress": "datax.amazonaws.com", "userAgent": "datax.amazonaws.com", "requestParameters": { "keyId": "<Key ARN of the Key you shared with AWS Data Exchange>", "operations": [ "Decrypt" ], "granteePrincipal": “<Subscriber’s account Id>”, "retiringPrincipal": "dataexchange.us-east-2.amazonaws.com", "constraints": { "encryptionContextSubset": { "aws:s3:arn": "arn:aws:s3:::<Your Bucket ARN>" } } }, "responseElements": { "grantId": "<KMS Grant ID of the created Grant>", "keyId": "<Key ARN of the Key you shared with AWS Data Exchange>" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "<Your Account Id>", "type": "AWS::KMS::Key", "ARN": "<Key ARN of the Key you shared with AWS Data Exchange>" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "<Your Account Id>", "sharedEventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE ", "eventCategory": "Management" }
Decrypt

Decrypt는 구독자가 구독한 암호화된 데이터를 읽으려고 할 때 호출합니다.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSAccount", "principalId": "AROAIGDTESTANDEXAMPLE:Subscriber01", "accountId": "<subscriber-account-id>", "invokedBy": "<subscriber’s IAM identity>" }, "eventTime": "2023-02-15T23:28:30Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-2", "sourceIPAddress": "<subscriber’s IP address>", "userAgent": "<subscriber’s user agent>", "requestParameters": { "encryptionContext": { "aws:s3:arn": "arn:aws:s3:::<Your Bucket ARN>" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": ""ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": ""ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE”, "readOnly": true, "resources": [ { "accountId": "<Your Account Id>", "type": "AWS::KMS::Key", "ARN": "<Key ARN of the Key you shared with AWS Data Exchange>" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "602466227860", "sharedEventID": "bcf4d02a-31ea-4497-9c98-4c3549f20a7b", "eventCategory": "Management" }