Manajemen kunci untuk akses data Amazon S3 - AWS Data Exchange Panduan Pengguna

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Manajemen kunci untuk akses data Amazon S3

Halaman ini khusus untuk jenis akses data Amazon S3 tempat penyedia berbagi objek yang dienkripsi menggunakan SSE-KMS. Pelanggan harus memiliki hibah pada kunci yang digunakan untuk akses.

Jika bucket Amazon S3 berisi data yang dienkripsi menggunakan kunci terkelola AWS KMS pelanggan, Anda harus membagikannya AWS Data Exchange untuk mengonfigurasi AWS KMS keys kumpulan data akses data Amazon S3. Untuk informasi selengkapnya, lihat Langkah 2: Konfigurasikan akses data Amazon S3.

Membuat AWS KMS hibah

Saat Anda memberikan AWS KMS keys sebagai bagian dari kumpulan data akses data Amazon S3, AWS Data Exchange buat AWS KMS hibah pada setiap AWS KMS key yang dibagikan. Hibah ini, yang dikenal sebagai hibah induk, digunakan untuk memberikan AWS Data Exchange izin untuk membuat AWS KMS hibah tambahan bagi pelanggan. Hibah tambahan ini dikenal sebagai hibah anak. Setiap pelanggan diizinkan satu AWS KMS hibah. Pelanggan mendapatkan izin untuk mendekripsi. AWS KMS key Kemudian, mereka dapat mendekripsi dan menggunakan objek Amazon S3 terenkripsi yang dibagikan dengan mereka. Untuk informasi selengkapnya, lihat Hibah AWS KMS di Panduan AWS Key Management Service Pengembang.

AWS Data Exchange juga menggunakan hibah AWS KMS induk untuk mengelola siklus hidup AWS KMS hibah yang dibuatnya. Ketika langganan berakhir, AWS Data Exchange pensiun hibah AWS KMS anak yang dibuat untuk pelanggan yang sesuai. Jika revisi dicabut, atau kumpulan data dihapus, AWS Data Exchange menghentikan hibah induk. AWS KMS Untuk informasi selengkapnya tentang AWS KMS tindakan, lihat referensi AWS KMS API.

Konteks enkripsi dan batasan hibah

AWS Data Exchange menggunakan batasan hibah untuk mengizinkan operasi dekripsi hanya jika permintaan menyertakan konteks enkripsi yang ditentukan. Anda dapat menggunakan fitur Amazon S3 Bucket Key untuk mengenkripsi objek Amazon S3 Anda dan membagikannya. AWS Data Exchange Bucket Amazon Resource Name (ARN) secara implisit digunakan oleh Amazon S3 sebagai konteks enkripsi. Contoh berikut menunjukkan bahwa AWS Data Exchange menggunakan bucket ARN sebagai batasan hibah untuk semua AWS KMS hibah yang dibuatnya.

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

Memantau Anda AWS KMS keys di AWS Data Exchange

Saat Anda berbagi kunci yang dikelola AWS KMS pelanggan AWS Data Exchange, Anda dapat menggunakannya AWS CloudTrailuntuk melacak permintaan yang dikirimkan oleh pelanggan AWS Data Exchange atau data AWS KMS. Berikut ini adalah contoh dari apa CloudTrail log Anda akan terlihat seperti untuk CreateGrant dan Decrypt panggilan ke AWS KMS.

CreateGrant for parent

CreateGrantadalah untuk hibah induk yang dibuat oleh AWS Data Exchange untuk dirinya sendiri.

{ "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

CreateGrantadalah untuk hibah anak yang dibuat oleh AWS Data Exchange untuk pelanggan.

{ "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" }
Dekripsi

Decryptdipanggil oleh pelanggan ketika mereka mencoba membaca data terenkripsi di mana mereka berlangganan.

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