View a markdown version of this page

Manajemen kunci di Amazon Managed Service untuk Apache Flink - Layanan Terkelola untuk Apache Flink

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

Manajemen kunci di Amazon Managed Service untuk Apache Flink

Di Amazon MSF, Anda dapat memilih untuk menggunakan salah satu Kunci yang dikelola AWS atau kunci yang dikelola pelanggan (CMK) Anda sendiri untuk mengenkripsi data. CMK di AWS Key Management Service (AWS KMS) adalah kunci enkripsi yang Anda buat, miliki, dan kelola sendiri.

Secara default, Amazon MSF menggunakan Kunci milik AWS (AOK) untuk mengenkripsi data Anda dalam penyimpanan sementara (menjalankan penyimpanan aplikasi) dan tahan lama (penyimpanan aplikasi tahan lama). Ini berarti semua data yang tunduk pada pos pemeriksaan atau snapshot Flink akan dienkripsi secara default. AOK adalah metode enkripsi default di Amazon MSF dan tidak diperlukan pengaturan tambahan. Untuk mengenkripsi data dalam perjalanan, Amazon MSF menggunakan TLS dan HTTP+SSL secara default dan tidak memerlukan pengaturan atau konfigurasi tambahan.

Di Amazon MSF, CMK adalah fitur di mana Anda dapat mengenkripsi data aplikasi Anda dengan kunci yang Anda buat, miliki, dan kelola. AWS KMS

Apa yang dienkripsi dengan CMK?

Dalam aplikasi Amazon MSF, data yang tunduk pada pos pemeriksaan atau snapshot Flink akan dienkripsi dengan CMK yang Anda tentukan untuk aplikasi tersebut. Akibatnya, CMK Anda akan mengenkripsi data yang disimpan baik di penyimpanan aplikasi yang sedang berjalan atau penyimpanan aplikasi yang tahan lama. Bagian berikut menjelaskan prosedur untuk menyiapkan CMK untuk aplikasi Amazon MSF Anda.

Kebijakan rotasi kunci

Amazon MSF tidak mengelola kebijakan rotasi kunci untuk CMK Anda. Anda bertanggung jawab atas rotasi kunci Anda sendiri. Ini karena Anda membuat dan memelihara CMK. Untuk informasi tentang cara menggunakan kebijakan rotasi kunci dengan CMK di Amazon MSF, lihat. Kebijakan rotasi kunci

Apa yang tidak dienkripsi dengan CMK?

Sumber dan wastafel

Enkripsi sumber data dan sink tidak dikelola oleh Amazon MSF. Ini dikelola oleh konfigurasi sumber atau wastafel Anda atau konfigurasi konektor aplikasi.

Aplikasi enkripsi retroaktif

CMK di Amazon MSF tidak memberikan dukungan untuk menerapkan CMK secara retroaktif ke snapshot historis yang ada.

Enkripsi log

Saat ini, Amazon MSF tidak mendukung enkripsi log menggunakan KMS CMK untuk log yang dihasilkan oleh jar kode aplikasi Anda. Anda harus memastikan log tidak berisi data yang memerlukan enkripsi CMK.

Mengenkripsi data saat transit

Anda tidak dapat menggunakan CMK untuk mengenkripsi data dalam transit. Secara default, Amazon MSF mengenkripsi semua data yang sedang transit menggunakan TLS atau HTTP dan SSL.

Jenis kunci KMS yang didukung

CMK di Amazon MSF mendukung kunci simetris.

Izin kunci KMS

CMK di Amazon MSF memerlukan izin untuk melakukan tindakan KMS berikut. Izin ini diperlukan untuk memvalidasi akses, membuat penyimpanan aplikasi berjalan terenkripsi CMK, dan menyimpan status aplikasi terenkripsi CMK dalam penyimpanan aplikasi yang tahan lama.

  • km: DescribeKey

    Memberikan izin untuk menyelesaikan alias kunci KMS ke kunci ARN.

  • kms:Decrypt

    Memberikan izin untuk mengakses status aplikasi yang tahan lama dan menyediakan penyimpanan aplikasi yang sedang berjalan.

  • km: GenerateDataKey

    Memberikan izin untuk menyimpan status aplikasi yang tahan lama.

  • km: GenerateDataKeyWithoutPlaintext

    Memberikan izin untuk menyediakan penyimpanan aplikasi yang sedang berjalan.

  • km: CreateGrant

    Memberikan izin untuk mengakses penyimpanan aplikasi yang sedang berjalan.

Konteks dan kendala enkripsi KMS

CMK di Amazon MSF menyediakan konteks enkripsi saat mengakses kunci untuk membaca atau menulis data terenkripsi, yaitu,. kms:EncryptionContext:aws:kinesisanalytics:arn Selain konteks enkripsi, konteks sumber aws: SourceArn dan aws: SourceAccount disediakan saat membaca atau menulis penyimpanan aplikasi yang tahan lama.

Saat membuat hibah untuk penyediaan penyimpanan aplikasi yang sedang berjalan terenkripsi, Amazon MSF CMK membuat hibah dengan jenis kendala yang EncryptionContextSubset memastikan bahwa hanya https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html operasi Decrypt yang diizinkan melalui. "kms:GrantOperations": "Decrypt"

Kebijakan rotasi kunci

Amazon MSF tidak mengelola kebijakan rotasi kunci untuk CMK Anda. Anda bertanggung jawab atas rotasi kunci Anda sendiri karena Anda membuat dan memelihara CMK.

Di KMS Anda menggunakan rotasi kunci otomatis atau manual untuk membuat materi kriptografi baru untuk CMK Anda. Untuk informasi tentang cara memutar kunci, lihat Putar AWS KMS keys di Panduan Peng AWS Key Management Service embang.

Saat Anda memutar kunci untuk CMK di Amazon MSF, Anda harus memastikan bahwa operator (pemanggil API) memiliki izin untuk kunci sebelumnya dan kunci baru.

catatan

Aplikasi dapat dimulai dari snapshot yang dienkripsi dengan AOK setelah dikonfigurasi untuk menggunakan CMK. Aplikasi juga dapat dimulai dari snapshot yang dienkripsi dengan CMK yang lebih lama. Untuk memulai aplikasi dari snapshot, operator (pemanggil API) harus memiliki izin untuk kunci lama dan baru.

Di Amazon MSF, kami menyarankan Anda menghentikan dan memulai ulang aplikasi Anda menggunakan enkripsi CMK. Ini memastikan kunci master rotasi baru diterapkan ke semua data dalam menjalankan penyimpanan aplikasi dan penyimpanan aplikasi yang tahan lama. Jika Anda tidak menghentikan dan memulai ulang aplikasi Anda, materi kunci baru hanya akan diterapkan pada penyimpanan aplikasi yang tahan lama. Menjalankan penyimpanan aplikasi akan terus dienkripsi menggunakan materi kunci rotasi sebelumnya.

Jika Anda mengubah AWS KMS key ARN yang digunakan untuk CMK, Anda harus menggunakan UpdateApplication di Amazon MSF. Ini akan memastikan aplikasi Flink Anda akan restart sebagai bagian dari UpdateApplication penerapan perubahan CMK.

catatan

Saat Anda memberikan alias atau alias ARN, Amazon MSF menyelesaikan alias ke kunci ARN dan menyimpan kunci ARN sebagai kunci yang dikonfigurasi untuk aplikasi.

Least-privileged pernyataan kebijakan utama

Untuk informasi tentang pernyataan kebijakan utama, lihat Membuat kebijakan kunci KMS danIzin operator siklus hidup aplikasi (pemanggil API).

Contoh AWS CloudTrail entri log

Saat Amazon MSF menggunakan CMK AWS KMS, secara AWS CloudTrail otomatis mencatat semua panggilan AWS KMS API dan detail terkait. Log ini berisi informasi, seperti Layanan AWS membuat permintaan, kunci KMS ARN, tindakan API yang dilakukan, dan stempel waktu yang tidak termasuk data terenkripsi. Log ini menyediakan jejak audit penting untuk kepatuhan, pemantauan keamanan, dan pemecahan masalah dengan menunjukkan layanan mana yang mengakses kunci Anda dan kapan.

Contoh 1: AWS KMS Mendekripsi panggilan API menggunakan peran yang diasumsikan di Amazon MSF

CloudTrail Log berikut menunjukkan Amazon MSF melakukan uji operasi KMS:Decrypt pada CMK. Amazon MSF membuat permintaan ini menggunakan Operator peran saat menggunakan CreateApplication API. Log berikut mencakup detail penting, seperti kunci KMS target ARN, aplikasi Amazon MSF terkait (MyCmkApplication), dan stempel waktu operasi.

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "REDACTED", "arn": "arn:aws:sts::123456789012:assumed-role/Operator/CmkTestingSession", "accountId": "123456789012", "accessKeyId": "REDACTED", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "REDACTED", "arn": "arn:aws:iam::123456789012:role/Operator", "accountId": "123456789012", "userName": "Operator" }, "attributes": { "creationDate": "2025-08-07T13:29:28Z", "mfaAuthenticated": "false" } }, "invokedBy": "kinesisanalytics.amazonaws.com" }, "eventTime": "2025-08-07T13:45:45Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "kinesisanalytics.amazonaws.com", "userAgent": "kinesisanalytics.amazonaws.com", "errorCode": "DryRunOperationException", "errorMessage": "The request would have succeeded, but the DryRun option is set.", "requestParameters": { "encryptionContext": { "aws:kinesisanalytics:arn": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/MyCmkApplication" }, "keyId": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "dryRun": true }, "responseElements": null, "additionalEventData": { "keyMaterialId": "REDACTED" }, "requestID": "56764d19-1eb1-48f1-8044-594aa7dd05c4", "eventID": "1371b402-f1dc-4c47-8f3a-1004e4803c5a", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }
Contoh 2: AWS KMS Dekripsi panggilan API di Amazon MSF dengan otentikasi layanan langsung

CloudTrail Log berikut menunjukkan Amazon MSF melakukan uji operasi KMS:Decrypt pada CMK. Amazon MSF membuat permintaan ini melalui otentikasi layanan- AWS ke-layanan langsung alih-alih mengambil peran. Log berikut mencakup detail penting, seperti kunci KMS target ARN, aplikasi Amazon MSF terkait (MyCmkApplication), dan ID peristiwa bersama operasi.

{ "eventVersion": "1.11", "userIdentity": { "type": "AWSService", "invokedBy": "kinesisanalytics.amazonaws.com" }, "eventTime": "2025-08-07T13:45:45Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "kinesisanalytics.amazonaws.com", "userAgent": "kinesisanalytics.amazonaws.com", "errorCode": "DryRunOperationException", "errorMessage": "The request would have succeeded, but the DryRun option is set.", "requestParameters": { "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "keyId": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionContext": { "aws:kinesisanalytics:arn": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/MyCmkApplication" }, "dryRun": true }, "responseElements": null, "additionalEventData": { "keyMaterialId": "REDACTED" }, "requestID": "5fe45ada-7519-4608-be2f-5a9b8ddd62b2", "eventID": "6206b08f-ce04-3011-9ec2-55951d357b2c", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "Application-account-ID", "sharedEventID": "acbe4a39-ced9-4f53-9f3c-21ef7e89dc37", "eventCategory": "Management" }