Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengenkripsi peristiwa pada Bus Acara Kustom
Bus mengenkripsi semua yang disimpannya: muatan acara, metadata acara, filter pelanggan, dan konfigurasi target pelanggan. Secara default ia menggunakan kunci yang dimiliki, AWS dan Anda tidak mengkonfigurasi apa pun. Untuk mengenkripsi bus dengan AWS KMS kunci Anda sendiri, EncryptionConfiguration.KmsKeyIdentifier tetapkan kapan Anda membuat atau memperbarui busaws eventsv2 create-event-bus --name orders --encryption-configuration
KmsKeyIdentifier=arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab, misalnya, dan tambahkan tiga pernyataan Menulis Kebijakan Kunci ke kebijakan kunci.
Memilih kunci yang mengenkripsi bus
Menghilangkan EncryptionConfiguration dan EventBridge mengenkripsi bus dengan AES 256-bit di bawah kunci yang dimiliki. AWS Anda tidak dapat melihat atau mengelola kunci itu, penggunaannya tidak muncul di CloudTrail log Anda, tidak ada biaya, tidak dihitung terhadap ku AWS KMS ota Anda, dan memut AWS arnya setiap bulan. DescribeEventBustidak kembali EncryptionConfiguration untuk bus seperti itu. Untuk informasi selengkapnya, lihat kunci yang AWS dimiliki di Panduan AWS KMS Pengembang.
Mengatur EncryptionConfiguration.KmsKeyIdentifier dan EventBridge mengenkripsi bus dengan kunci yang dikelola pelanggan Anda. Anda kemudian mengontrol kebijakan kunci, rotasi, penonaktifan, dan penghapusan, dan Anda melihat setiap penggunaan kunci masuk CloudTrail. Kunci dikenakan biaya kunci AWS KMS bulanan dan biaya permintaan. Karena EventBridge mengenkripsi dan mendekripsi peristiwa secara lokal di bawah kunci cabang yang di-cache (lihatBagaimana bus menggunakan kunci Anda), itu membuat beberapa AWS KMS permintaan per bus per jendela cache ditambah rotasi; jumlah permintaan tidak bertambah dengan volume acara Anda. Untuk informasi selengkapnya, lihat harga AWS KMS
KmsKeyIdentifiermenerima ID kunci, kunci ARN, nama alias sepertialias/orders, atau alias ARN. EventBridge memenuhi syarat ID kunci kosong atau nama alias di akun dan Wilayah Anda, jadi kunci di akun lain harus diberi nama dengan kunci lengkapnya ARN. Alias diselesaikan ke kuncinya saat Anda membuat atau memperbarui bus, dan respons create and description mengembalikan kunci tersebut ARN. Re-pointing alias nanti tidak mengubah kunci yang digunakan bus. Kunci harus berupa kunci enkripsi simetris (SYMMETRIC_DEFAULT, penggunaan kunciENCRYPT_DECRYPT); EventBridge menolak kunci asimetris dan HMAC. Kunci Multi-wilayah berfungsi sebagai kunci biasa: beri nama replika di Wilayah bus, karena tidak mer EventBridge eplikasi data Anda maupun materi kunci Anda di seluruh Wilayah. Kunci dengan bahan kunci yang diimpor dan kunci di penyimpanan kunci eksternal didukung.
aws eventsv2 create-event-bus \ --name orders \ --encryption-configuration KmsKeyIdentifier=arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
Kunci Anda mengenkripsi muatan acara dan metadata yang disimpan bus, salinan yang disimpan untuk setiap pelanggan selama pengiriman, dan filter pelanggan dan konfigurasi target. Empat hal tidak dienkripsi dengan kunci Anda, karena mem EventBridge butuhkannya untuk merutekan dan mencari peristiwa: nama bus, ARN, dan ID akun; ID grup peristiwa yang memesan pengiriman FIFO, jadi jangan memasukkan data sensitif di dalamnya; ID deduplikasi, yang EventBridge disimpan sebagai hash satu arah; dan hasil kecocokan internal dan nomor urut. Layanan penyimpanan mengenkripsi mereka yang diam dengan kunci mereka sendiri.
Bagaimana bus menggunakan kunci Anda
Saat Anda mengonfigurasi kunci yang dikelola pelanggan EventBridge , buat kunci cabang untuk bus: kunci perantara, disimpan dalam tabel yang dikelola layanan dan dibungkus oleh AWS KMS kunci Anda, mengikuti Keyring Hierarchical SDK AWS Encryption. EventBridge memperoleh kunci data dari kunci cabang untuk setiap peristiwa, sehingga mengenkripsi dan mendekripsi peristiwa secara lokal tanpa AWS KMS panggilan per peristiwa.
Saat Anda menerbitkan acara, EventBridge mengenkripsinya di bawah kunci cabang bus sebelum menuliskannya ke penyimpanan.
Saat EventBridge mengirimkan acara, ia mendekripsi acara untuk mengevaluasi filter dan mengirimkannya. Target menerima peristiwa yang didekripsi; enkripsi pada target adalah tanggung jawab layanan target.
EventBridge menyimpan kunci cabang dalam memori hingga 15 menit. Ketika cache kedaluwarsa,
kms:Decryptia memanggil kunci Anda untuk membuka kembali kunci cabang.EventBridge membuat versi kunci cabang baru setiap 30 hari dan menyimpan versi yang lebih lama, sehingga acara yang ditulis sebelumnya tetap dapat dibaca selama periode retensi bus.
EventBridge mencapai kunci Anda di dua jalur, dan kebijakan kunci harus mengizinkan keduanya. Untuk pemeriksaan yang dijalankan saat panggilan API Anda sedang berlangsung, ia menggunakan kredenSIAL Anda, diteruskan dari panggilan. Untuk pekerjaan yang dilakukannya setelah panggilan kembali, seperti mengirimkan acara dan mengelola kunci cabang, ia bertindak sebagai prinsipal events.amazonaws.com layanan, karena kredenSIAL Anda tidak lagi tersedia.
Menulis Kebijakan Kunci
Tambahkan tiga pernyataan ke kebijakan kunci: satu yang memungkinkan kepala sekolah Anda memvalidasi kunci, satu yang memungkinkan mereka lulus pemeriksaan akses yang EventBridge berjalan dengan kredensialnya, dan satu untuk prinsipal events.amazonaws.com layanan. Setiap AWS KMS permintaan EventBridge yang dibuat untuk bus membawa kunci konteks enkripsi aws:events:event-busv2:arn dengan bus ARN, pada kedua jalur akses, sehingga pernyataan kedua dan ketiga dicakup ke satu bus. Bus ARN berakhir dengan akhiran yang dihasilkan EventBridge saat pembuatan, jadi cocokkan dengan StringLike dan trail /* ing. Simpan pernyataan administrasi kunci Anda sendiri dalam kebijakan juga. Ganti nama akun, Wilayah, peran, dan bus dalam contoh berikut.
{ "Version": "2012-10-17", "Id": "eventbridge-custom-event-bus-key-policy", "Statement": [ { "Sid": "AllowKeyValidationThroughEventBridge", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "events.us-east-1.amazonaws.com" } } }, { "Sid": "AllowKeyUseThroughEventBridge", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "events.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:events:event-busv2:arn": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/*" } } }, { "Sid": "AllowEventBridgeServicePrincipal", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:events:event-busv2:arn": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/*" } } } ] }
AllowKeyValidationThroughEventBridgememungkinkan kepala sekolah Anda memvalidasi kunci saat mereka membuat atau memperbarui bus. EventBridge panggilan kms:DescribeKey dengan kredenSIAL Anda untuk mengonfirmasi bahwa kunci ada, simetris, dan diaktifkan. DescribeKeytidak mengambil konteks enkripsi, jadi pernyataan ini tidak memilik kms:ViaService inya; membatasi pada permintaan yang masuk EventBridge.
AllowKeyUseThroughEventBridgemengotorisasi pemeriksaan akses yang EventBridge berjalan dengan kredensional Anda sebelum menerima konfigurasi kunci dan sebelum menulis atau membaca data terenkripsi untuk Anda, sehingga Anda tidak dapat mengonfigurasi kunci yang tidak dapat digunakan oleh pekerjaan asinkron layanan nanti. Pemeriksaan bersifat AWS KMS dry run: mereka mengotorisasi tetapi tidak mengenkripsi dan mendekripsi apa pun. Mereka ditagih sebagai AWS KMS permintaan standar dan dihitung terhadap kuota AWS KMS permintaan Anda; lihat Meng uji izin Anda di Panduan Peng AWS KMS embang. Setiap operasi memeriksa tindakan yang dilakukan oleh pekerjaan selanjutnya:
CreateEventBusdengan pemeriksaan kunci yang dikelola pelanggankms:GenerateDataKeyWithoutPlaintext,kms:ReEncryptFrom,kms:ReEncryptTo, dankms:Decrypt, tindakan yang dilakukan pembuatan kunci cabang dan pembacaan nanti.UpdateEventBusyang mengubah pemeriksaan kuncikms:Decryptpada kunci saat ini,kms:Encryptdankms:Decryptpada kunci baru.PutEventsdanPutRawEventsdi bus dengan pemeriksaan kunci yang dikelola pelanggankms:Decrypt. Seorang produser yang tidak dapat membaca kembali peristiwa bus juga tidak dapat menulisnya. Tanpa itu, panggilan publikasi gagal denganAccessDeniedExceptionpenamaanKMS_ACCESS_DENIED.CreateSubscriberdanUpdateSubscriberperiksakms:Decrypt, karena konfigurasi pelanggan dienkripsi di bawah kunci bus.
Jadi pernyataan ini harus mencakup setiap peran yang membuat atau memperbarui bus, menerbitkannya, atau membuat pelanggan di dalamnya. Principal Buat daftar ARN peran, atau beri nama kepala akar akun untuk mendelegasikan keputusan ke kebijakan IAM di akun Anda.
AllowEventBridgeServicePrincipalmengotorisasi pekerjaan EventBridge yang dilakukan sebagai layanan setelah panggilan Anda selesai. kms:GenerateDataKeyWithoutPlaintext,kms:ReEncryptFrom, dan kms:ReEncryptTo buat kunci cabang bus dan versi barunya pada rotasi. kms:Decryptmembuka kunci cabang untuk mengirimkan peristiwa, memuat konfigurasi pelanggan, dan mengembalikan konfigurasi yang didekripsi pada panggilan deskripsi. kms:Decryptdengan kms:Encrypt membungkus kembali kunci cabang saat Anda mengganti kunci bus.
Kunci dapat berada di akun lain, misalnya akun keamanan pusat. Masukkan ketiga pernyataan dalam kebijakan kunci itu, dengan peran akun bus sebagai prinsipal dari dua yang pertama dan bus ARN akun bus dalam nilai konteks enkripsi. Peran akun bus juga memerlukan kebijakan identitas IAM yang memungkinkan AWS KMS tindakan yang sama pada ARN kunci, karena AWS KMS akses lintas akun memerlukan izin di kedua sisi. Beri nama kunci dengan kunci lengkapnya ARN.
Mencakup kebijakan utama untuk satu bus
Untuk membatasi pernyataan pada satu bus, sesuaikankms:EncryptionContext:aws:events:event-busv2:arn. Sebelum bus ada, gunakan StringLike dengan trailing/*, seperti pada kebijakan sebelumnya. Untuk bus yang ada, Anda dapat mencocokkan ARN yang tepat yang DescribeEventBus dikembalikanStringEquals. Setiap permintaan yang dibuat dengan kredensi Anda juga kms:ViaService diisi denganevents., sehingga Anda dapat membatasi prinsipal Anda untuk menggunakan kunci melalui EventBridge saja.region.amazonaws.com
Permintaan EventBridge yang dibuat sebagai kepala layanan dibawa aws:SourceArn dengan bus ARN dan aws:SourceAccount dengan akun bus. Tambahkan mereka AllowEventBridgeServicePrincipal sehingga EventBridge dapat menggunakan kunci Anda hanya untuk bus Anda sendiri.
"Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/*" } }
Operasi penerbitan dan pengiriman individu menggunakan kunci cabang yang di-cache dan tidak memeriksa ulang kebijakan kunci per peristiwa. Perubahan kebijakan utama, termasuk yang menghapus EventBridge akses, berlaku pada penanganan data bus ketika kunci cabang yang di-cache kedaluwarsa, dalam waktu 15 menit.
Mengubah atau menghapus kunci di bus
Panggil UpdateEventBus untuk memindahkan bus dari kunci yang AWS dimiliki ke kunci yang dikelola pelanggan, dari satu kunci yang dikelola pelanggan ke kunci lain, atau kembali ke kunci yang AWS dimiliki. Untuk kembali ke kunci yang AWS dimiliki, kirim EncryptionConfiguration hadiah dan kosong, seperti--encryption-configuration '{}'. Hilangkan EncryptionConfiguration seluruhnya dan bus menyimpan kuncinya saat ini.
Bus masuk UPDATING sambil EventBridge membungkus kembali kunci cabang di bawah kunci baru, lalu kembali keACTIVE. Kunci cabang itu sendiri tidak berubah, jadi EventBridge mengenkripsi ulang tidak ada peristiwa yang disimpan, perubahan selesai dengan cepat apa pun yang dimiliki bus, dan peristiwa yang ditulis sebelumnya tetap dapat dibaca apa pun keadaan kunci lama. Setelah DescribeEventBus menunjukkan bus ACTIVE dengan kunci baru, Anda dapat menonaktifkan kunci lama.
Jika EventBridge tidak dapat menggunakan kunci baru, bus akan menetap UPDATE_FAILED dan terus bekerja dengan kunci sebelumnya: ia masih menerima dan mengirimkan acara, dan DescribeEventBus terus melaporkan kunci lama. Kunci yang gagal tidak pernah menjadi kunci bus. Panggil UpdateEventBus lagi dengan kunci yang dapat digunakan, atau kunci yang sama setelah Anda memperbaiki kebijakannya, dan bus kembali keACTIVE. Bus yang pembuatannya gagal pada kunci menetap CREATE_FAILED dengan StateReason penamaan pen AWS KMS olakan; negara itu hanya menerimaDeleteEventBus, dan UpdateEventBus ditolak dengan pesan yang menamai status yang diterimanya,[ACTIVE, UPDATE_FAILED]. Perbaiki kebijakan kunci, hapus bus, dan buat lagi. Untuk negara bagian, lihatStatus bus dan apa yang masing-masing memungkinkan.
Jika Anda mengaktifkan rotasi kunci otomatis pada kunci Anda, AWS KMS putar bahan pendukung di belakang tombol yang sama ARN. Kunci cabang tetap dibungkus oleh bahan yang membungkusnya terakhir, dan versi kunci cabang berikutnya, dibuat sekitar setiap 30 hari, menggunakan materi saat ini. Jadi AWS KMS rotasi mencapai bus Anda dalam waktu sekitar satu bulan.
Ketika kunci menjadi tidak dapat digunakan
Jika Anda menonaktifkan kunci, menjadwalkannya untuk dihapus, atau menghapus EventBridge akses ke sana, bus akan terus bekerja sampai kunci cabang yang di-cache kedaluwarsa, dalam waktu 15 menit. Kemudian penerbitan ke bus gagal dengan kesalahan AWS KMS akses, dan pengiriman berhenti. EventBridge tidak menjatuhkan peristiwa yang telah diterimanya dan tidak mengirimkannya ke antrian surat mati; itu menahan dan mencobanya lagi, karena kegagalan akses kunci adalah kondisi yang dapat Anda perbaiki. Saat Anda memulihkan akses, penerbitan dan pengiriman dilanjutkan dengan sendirinya. Tidak ada acara yang hilang kecuali pemadaman melebihi periode retensi bus.
Menghapus kunci bersifat permanen. Setelah AWS KMS menghapus kunci yang dikonfigurasi pada bus, tidak EventBridge dapat lagi membuka kunci cabang bus, dan setiap peristiwa yang masih disimpan di bus tidak dapat dibaca selama sisa periode retensinya. Nonaktifkan kunci terlebih dahulu, konfirmasikan efeknya, dan baru kemudian jadwalkan penghapusan; lihat Mengh apus AWS KMS kunci di Panduan AWS KMS Pengembang. DeleteEventBustidak memerlukan kunci: itu berhasil ketika kunci dinonaktifkan atau dihapus.
Pemantauan penggunaan kunci di CloudTrail
Setiap permintaan yang EventBridge dibuat ke kunci yang dikelola pelanggan Anda direkam di CloudTrail; lihat Penc at AWS KMS atan panggilan API dengan CloudTrail. Tabel berikut mencantumkan peristiwa yang diharapkan.
eventName |
Saat | Memanggil identitas |
|---|---|---|
DescribeKey |
Validasi kunci pada pembuatan dan pembaruan bus | Kepala sekolah Anda, melalui EventBridge |
Decrypt,Encrypt,GenerateDataKeyWithoutPlaintext, ReEncrypt (lari kering) |
Pemeriksaan akses pada pembuatan bus dan pembaruan, publikasi, dan pembuatan dan pembaruan pelanggan | Kepala sekolah Anda, melalui EventBridge |
GenerateDataKeyWithoutPlaintext, ReEncrypt |
Pembuatan kunci cabang di pembuatan bus, dan rotasi kunci cabang sekitar setiap 30 hari | events.amazonaws.com |
Decrypt |
Kunci cabang dibuka saat cache kedaluwarsa: pengiriman acara, beban konfigurasi pelanggan, jelaskan panggilan | events.amazonaws.com |
Decrypt dan Encrypt |
Kunci cabang membungkus ulang saat UpdateEventBus mengubah kunci |
events.amazonaws.com |
CloudTrail merekam ReEncrypt panggilan sebagai satu peristiwa; kms:ReEncryptFrom dan kms:ReEncryptTo izin keduanya mengizinkannya. Entri dry run yang ditampilkan DryRunOperationException adalah pemeriksaan akses yang lulus, bukan kesalahan dalam konfigurasi Anda; entri yang ditampilkan AccessDeniedException berarti penelepon tidak memiliki izin yang diperiksa. Setiap entr requestParameters.encryptionContext i termasuk aws:events:event-busv2:arn dengan bus ARN Anda. Entri kunci cabang juga membawa bidang Hierarchical Keyring: branch-key-id (bus ARN),,type,create-time, tablenamehierarchy-version, dankms-arn. Per-event enkripsi dan dekripsi menggunakan kunci data yang diturunkan secara lokal dari kunci cabang yang di-cache, sehingga peristiwa individual tidak muncul di. CloudTrail
Enkripsi saat bergerak
Semua panggilan API Event Bus Kustom menuju ke titik akhir HTTPSeventsv2., dan setiap permintaan harus ditandatangani dengan kredenSIAL Anda. Titik akhir FIPS,region.amazonaws.comeventsv2-fips., tersedia di mana Anda membutuhkannya. Untuk perlindungan EventBridge data secara umum, lihatEventBridge Keamanan Amazon.region.amazonaws.com