

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
<a name="eb-custom-bus-encryption"></a>

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 bus`aws 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](#eb-custom-bus-encryption-key-policy) ke kebijakan kunci.

## Memilih kunci yang mengenkripsi bus
<a name="eb-custom-bus-encryption-at-rest"></a>

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. `DescribeEventBus`tidak kembali `EncryptionConfiguration` untuk bus seperti itu. Untuk informasi selengkapnya, lihat kunci yang [AWS dimiliki ](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) 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 (lihat[Bagaimana bus menggunakan kunci Anda](#eb-custom-bus-encryption-branch-key)), 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](https://aws.amazon.com/kms/pricing/).

`KmsKeyIdentifier`menerima ID kunci, kunci ARN, nama alias seperti`alias/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 kunci`ENCRYPT_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
<a name="eb-custom-bus-encryption-branch-key"></a>

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. ](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/use-hierarchical-keyring.html) 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:Decrypt` ia 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
<a name="eb-custom-bus-encryption-key-policy"></a>

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/*"
                }
            }
        }
    ]
}
```

`AllowKeyValidationThroughEventBridge`memungkinkan 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. `DescribeKey`tidak mengambil konteks enkripsi, jadi pernyataan ini tidak memilik `kms:ViaService` inya; membatasi pada permintaan yang masuk EventBridge.

`AllowKeyUseThroughEventBridge`mengotorisasi 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 ](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) di Panduan * Peng *AWS KMS embang. Setiap operasi memeriksa tindakan yang dilakukan oleh pekerjaan selanjutnya:
+ `CreateEventBus`dengan pemeriksaan kunci yang dikelola pelanggan`kms:GenerateDataKeyWithoutPlaintext`,`kms:ReEncryptFrom`,`kms:ReEncryptTo`, dan`kms:Decrypt`, tindakan yang dilakukan pembuatan kunci cabang dan pembacaan nanti.
+ `UpdateEventBus`yang mengubah pemeriksaan kunci `kms:Decrypt` pada kunci saat ini, `kms:Encrypt` dan `kms:Decrypt` pada kunci baru.
+ `PutEvents`dan `PutRawEvents` di bus dengan pemeriksaan kunci yang dikelola pelanggan`kms:Decrypt`. Seorang produser yang tidak dapat membaca kembali peristiwa bus juga tidak dapat menulisnya. Tanpa itu, panggilan publikasi gagal dengan `AccessDeniedException` penamaan`KMS_ACCESS_DENIED`.
+ `CreateSubscriber`dan `UpdateSubscriber` periksa`kms: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.

`AllowEventBridgeServicePrincipal`mengotorisasi 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:Decrypt`membuka kunci cabang untuk mengirimkan peristiwa, memuat konfigurasi pelanggan, dan mengembalikan konfigurasi yang didekripsi pada panggilan deskripsi. `kms:Decrypt`dengan `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
<a name="eb-custom-bus-encryption-scope"></a>

Untuk membatasi pernyataan pada satu bus, sesuaikan`kms: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` dikembalikan`StringEquals`. Setiap permintaan yang dibuat dengan kredensi Anda juga `kms:ViaService` diisi dengan`events.{{region}}.amazonaws.com`, sehingga Anda dapat membatasi prinsipal Anda untuk menggunakan kunci melalui EventBridge saja.

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
<a name="eb-custom-bus-encryption-change"></a>

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 ke`ACTIVE`. 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 ke`ACTIVE`. Bus yang pembuatannya gagal pada kunci menetap `CREATE_FAILED` dengan `StateReason` penamaan pen AWS KMS olakan; negara itu hanya menerima`DeleteEventBus`, dan `UpdateEventBus` ditolak dengan pesan yang menamai status yang diterimanya,`[ACTIVE, UPDATE_FAILED]`. Perbaiki kebijakan kunci, hapus bus, dan buat lagi. Untuk negara bagian, lihat[Status bus dan apa yang masing-masing memungkinkan](eb-custom-bus-create.md#eb-custom-bus-lifecycle-states).

Jika Anda mengaktifkan rotasi kunci [ otomatis ](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) 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
<a name="eb-custom-bus-encryption-key-unusable"></a>

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 ](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) apus AWS KMS kunci di Panduan *AWS KMS Pengembang*. `DeleteEventBus`tidak memerlukan kunci: itu berhasil ketika kunci dinonaktifkan atau dihapus.

## Pemantauan penggunaan kunci di CloudTrail
<a name="eb-custom-bus-encryption-cloudtrail"></a>

Setiap permintaan yang EventBridge dibuat ke kunci yang dikelola pelanggan Anda direkam di CloudTrail; lihat Penc [ at AWS KMS atan panggilan API dengan CloudTrail](https://docs.aws.amazon.com/kms/latest/developerguide/logging-using-cloudtrail.html). 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`, `tablename``hierarchy-version`, dan`kms-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
<a name="eb-custom-bus-encryption-transit"></a>

Semua panggilan API Event Bus Kustom menuju ke titik akhir HTTPS`eventsv2.{{region}}.amazonaws.com`, dan setiap permintaan harus ditandatangani dengan kredenSIAL Anda. Titik akhir FIPS,`eventsv2-fips.{{region}}.amazonaws.com`, tersedia di mana Anda membutuhkannya. Untuk perlindungan EventBridge data secara umum, lihat[EventBridge Keamanan Amazon](eb-security.md).