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

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.

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.

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

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