Amazon Managed Service untuk Apache Flink (Amazon MSF) sebelumnya dikenal sebagai Amazon Kinesis Data Analytics 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 AWSatau kunci terkelola pelanggan Anda sendiri (CMKs) untuk mengenkripsi data. CMKs in AWS Key Management Service (AWS KMS) adalah kunci enkripsi yang Anda buat, miliki, dan kelola sendiri.
Di halaman ini
Enkripsi transparan di Amazon MSF
Secara default, Amazon MSF menggunakan Kunci milik AWS (AOKs) untuk mengenkripsi data Anda dalam penyimpanan sementara (menjalankan penyimpanan aplikasi) dan penyimpanan tahan lama (penyimpanan aplikasi tahan lama). Ini berarti semua data yang tunduk pada pos pemeriksaan atau snapshot Flink akan dienkripsi secara default. AOKs 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.
Kunci yang dikelola pelanggan di Amazon MSF
Di Amazon MSF, CMK adalah fitur di mana Anda dapat mengenkripsi data aplikasi Anda dengan kunci yang Anda buat, miliki, dan kelola. AWS KMS
Dalam bagian ini
Dengan apa dienkripsi? CMKs
Dalam aplikasi Amazon MSF, data yang tunduk pada pos pemeriksaan Flink atau snapshot akan dienkripsi dengan CMK yang Anda tentukan untuk aplikasi itu. Secara singkat, CMK Anda akan mengenkripsi data yang disimpan baik dalam penyimpanan aplikasi yang sedang berjalan atau penyimpanan aplikasi yang tahan lama. Bagian berikut menjelaskan prosedur CMKs untuk mengatur aplikasi Amazon MSF Anda.
Kebijakan rotasi kunci
Amazon MSF tidak mengelola kebijakan rotasi kunci untuk Anda CMKs. Anda bertanggung jawab atas rotasi kunci Anda sendiri. Ini karena Anda membuat dan memelihara CMKs. Untuk informasi tentang cara menggunakan kebijakan rotasi kunci Anda dengan CMK di Amazon MSF, lihat. Kebijakan rotasi kunci
Apa yang tidak dienkripsi? CMKs
Sumber dan wastafel
Enkripsi sumber data dan sink tidak dikelola oleh Amazon MSF. Ini dikelola oleh konfigurasi sumber atau sink Anda atau konfigurasi konektor aplikasi.
Aplikasi enkripsi retroaktif
CMK di Amazon MSF tidak memberikan dukungan untuk berlaku surut ke snapshot CMKs 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 perjalanan. Secara default, Amazon MSF mengenkripsi semua data dalam perjalanan 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 ARN kunci.
-
kms:Decrypt
Memberikan izin untuk mengakses status aplikasi yang tahan lama dan penyediaan yang menjalankan penyimpanan aplikasi.
-
km: GenerateDataKey
Memberikan izin untuk menyimpan status aplikasi yang tahan lama.
-
km: GenerateDataKeyWithoutPlaintext
Memberikan izin untuk menyediakan penyimpanan aplikasi yang 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 berjalan terenkripsi, Amazon MSF CMK membuat hibah dengan tipe kendala yang EncryptionContextSubsetmemastikan bahwa hanya operasi Dekripsi yang diizinkan. "kms:GrantOperations": "Decrypt"
Kebijakan rotasi kunci
Amazon MSF tidak mengelola kebijakan rotasi kunci untuk Anda CMKs. Anda bertanggung jawab atas rotasi kunci Anda sendiri karena Anda membuat dan memelihara CMKs.
Di KMS Anda menggunakan rotasi kunci otomatis atau manual untuk membuat materi kriptografi baru untuk Anda. CMKs Untuk informasi tentang cara memutar kunci, lihat Memutar AWS KMS keys di Panduan AWS Key Management Service Pengembang.
Saat Anda memutar kunci CMKs di Amazon MSF, Anda harus memastikan bahwa operator (pemanggil API) memiliki izin untuk kunci sebelumnya dan 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 berhenti dan memulai ulang aplikasi Anda, materi kunci baru hanya akan diterapkan pada penyimpanan aplikasi yang tahan lama. Menjalankan penyimpanan aplikasi akan terus dienkripsi menggunakan bahan kunci rotasi sebelumnya.
Jika Anda mengubah AWS KMS key ARN yang digunakan untuk CMK, Anda harus menggunakan di UpdateApplicationAmazon 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 ARN kunci dan menyimpan ARN kunci sebagai kunci yang dikonfigurasi untuk aplikasi.
Pernyataan kebijakan kunci yang paling tidak memiliki hak istimewa
Untuk informasi tentang pernyataan kebijakan utama, lihat Buat kebijakan kunci KMS danIzin operator siklus hidup aplikasi (pemanggil API) .
Contoh entri AWS CloudTrail log
Saat Amazon MSF menggunakannya AWS KMS, CMKs secara AWS CloudTrail otomatis mencatat semua panggilan AWS KMS API dan detail terkait. Log ini berisi informasi, seperti Layanan AWS membuat permintaan, ARN kunci KMS, 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 Dekripsi panggilan API menggunakan peran yang diasumsikan di Amazon MSF
CloudTrail Log berikut menunjukkan Amazon MSF melakukan pengujian KMS: Dekripsi operasi pada CMK. Amazon MSF membuat permintaan ini menggunakan Operator
peran saat menggunakan CreateApplicationAPI. Log berikut mencakup detail penting, seperti ARN kunci KMS target, aplikasi MSF Amazon 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 pengujian KMS: Dekripsi operasi pada CMK. Amazon MSF membuat permintaan ini melalui AWS service-to-service otentikasi langsung alih-alih mengambil peran. Log berikut mencakup detail penting, seperti ARN kunci KMS target, aplikasi MSF Amazon 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" }