

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

# Tindakan, sumber daya, dan kunci kondisi untuk Bus Acara Kustom
<a name="eb-custom-bus-access-actions"></a>

Gunakan halaman ini saat Anda menulis kebijakan IAM. Ini mencant `events:` umkan setiap tindakan untuk Bus Peristiwa Kustom, sumber daya ARN yang diperiksa masing-masing, apakah akun lain dapat diberikan, dan kunci kondisi yang dapat Anda tambahkan. Misalnya, untuk membiarkan peran melampirkan pelanggan yang nama `METADATA` filter `tenant` nya sebagai`acme`, `events:CreateSubscriber` berikan pada bus dengan `ForAnyValue:StringEquals` kondisi aktif`events:Metadata/tenant`.

## Kunci syarat
<a name="eb-custom-bus-access-conditions"></a>

EventBridge menyediakan kunci kondisi berikut dari permintaan, sehingga Anda dapat mempersempit hibah di luar tindakan dan sumber daya. Untuk kunci kondisi global, lihat kunci konteks kondisi [AWS global ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) di Panduan * * Pengguna IAM.


| Kunci syarat | Nilai | Disediakan pada | 
| --- | --- | --- | 
| events:source | Sumber acara, atau sumber yang diteruskan | PutEvents, CreateEventSource, UpdateEventSource | 
| events:detail-type | Jenis detail acara | PutEvents | 
| events:Metadata/{{key}} | Nilai yang cocok METADATA dengan filter pada kunci itu | CreateSubscriber | 
| events:Metadata/{{key}}/Matcher | exact | CreateSubscriber | 
| events:ContentFilterPresent | trueketika pelanggan mendeklarasikan DATA filter | CreateSubscriber | 
| aws:ResourceTag/{{key}} | Tag pada bus, pelanggan, atau sumber acara yang sedang diperiksa | Setiap tindakan diperiksa terhadap sumber daya | 
| aws:RequestTag/{{key}}, aws:TagKeys | Tag dalam permintaan | Operasi menciptakan danTagResource, UntagResource | 

Kunci metadata disediakan sebagai sekumpulan nilai, jadi cocokkan dengan operator set seperti`ForAnyValue:StringEquals`. `METADATA`filter hanya cocok tepat, itulah sebabnya nilai pencocoknya selalu. `exact` `DATA`Filter cocok dengan JSON sewenang-wenang, jadi hanya keberadaannya yang terekspos, bukan isinya. `UpdateEventSource`menjalankan kembali pemeriksaan bus dengan `events:source` set dari konfigurasi pengganti, sehingga kondisi pada kunci itu mengatur sumber peristiwa yang ditunjuk ulang serta yang baru.

Kebijakan sumber daya berikut memungkinkan akun `444455556666` membuat pelanggan di `orders` bus hanya jika `METADATA` filter pelanggan sama `tenant` persis dengan`acme`. Pelanggan tanpa `METADATA` filter, atau yang menyebutkan penyewa lain, ditolak. EventBridge menyediakan kunci kondisi metadata hanya untuk bidang yang dideklarasikan filter, jadi `Null` kondisinya adalah apa yang menolak filter yang dihilangkan`tenant`.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "SubscribeToAcmeEventsOnly",
            "Effect": "Allow",
            "Principal": { "AWS": "arn:aws:iam::444455556666:root" },
            "Action": "events:CreateSubscriber",
            "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef",
            "Condition": {
                "Null": { "events:Metadata/tenant": "false" },
                "ForAnyValue:StringEquals": { "events:Metadata/tenant": "acme" },
                "StringEquals": { "events:Metadata/tenant/Matcher": "exact" }
            }
        }
    ]
}
```

## Tindakan dan sumber daya yang diperiksa
<a name="eb-custom-bus-access-actions-table"></a>

Tabel berikut mencantumkan setiap tindakan, ARN sumber daya yang akan dimasukkan ke dalam `Resource` elemen kebijakan, dan apakah pemilik bus dapat memberikan tindakan ke akun lain melalui kebijakan sumber daya atau AWS RAM berbagi. Keti `List` ga tindakan tidak diperiksa terhadap sumber daya apa pun, jadi berikan mereka`"Resource": "*"`.


| Tindakan IAM | Diperiksa terhadap | Dapat diberikan ke akun lain | 
| --- | --- | --- | 
| events:CreateEventBus | Bus yang sedang dibuat | Tidak. Dibuat di akun penelepon sendiri | 
| events:DescribeEventBus | Bus | Ya | 
| events:UpdateEventBus | Bus | Tidak. Hanya pemilik bus | 
| events:DeleteEventBus | Bus | Tidak. Hanya pemilik bus | 
| events:ListEventBuses | Tidak ada. Account-wide | Tidak. Daftar bus penelepon sendiri dan bus bersama | 
| events:PutEvents | Bus, sekali per entri dalam permintaan | Ya | 
| events:PutRawEvents | Bus, sekali per entri dalam permintaan | Ya | 
| events:CreateSubscriber | Bus, dan pelanggan sedang dibuat | Ya | 
| events:DescribeSubscriber | Pelanggan | Pemilik pelanggan mengizinkannya | 
| events:UpdateSubscriber | Pelanggan | Pemilik pelanggan mengizinkannya | 
| events:DeleteSubscriber | Pelanggan | Pemilik pelanggan mengizinkannya | 
| events:ListSubscribers | Tidak ada. Account-wide | Tidak. Mendaftarkan pelanggan penelepon sendiri | 
| events:RevokeResource | Bus | Tidak. Hanya pemilik bus | 
| events:CreateEventSource | Bus, dan sumber acara yang sedang dibuat | Ya | 
| events:DescribeEventSource | Sumber acara | Pemilik sumber acara mengizinkannya | 
| events:UpdateEventSource | Sumber acara, dan bus lagi | Ya, untuk pemeriksaan bus | 
| events:DeleteEventSource | Sumber acara | Pemilik sumber acara mengizinkannya | 
| events:ListEventSources | Tidak ada. Account-wide | Tidak. Mendaftarkan sumber acara penelepon sendiri | 
| events:PutResourcePolicy | Bus | Tidak. Hanya pemilik bus | 
| events:GetResourcePolicy | Bus | Ya | 
| events:DeleteResourcePolicy | Bus | Tidak. Hanya pemilik bus | 
| events:ListResourcePolicies | Bus | Ya | 
| events:TagResource | Bus, pelanggan, atau sumber acara yang disebutkan dalam permintaan | Bus: ya. Pelanggan atau sumber acara: pemiliknya | 
| events:UntagResource | Bus, pelanggan, atau sumber acara yang disebutkan dalam permintaan | Bus: ya. Pelanggan atau sumber acara: pemiliknya | 
| events:ListTagsForResource | Bus, pelanggan, atau sumber acara yang disebutkan dalam permintaan | Bus: ya. Pelanggan atau sumber acara: pemiliknya | 

Untuk membuat pelanggan atau sumber acara di bus, penelepon membutuhkan tindakan di bus serta pada sumber daya baru. Itulah yang memungkinkan pemilik bus memutuskan, dalam kebijakan bus sendiri, akun mana yang dapat melampirkan apa pun padanya. `CreateSubscriber`membuat empat pemeriksaan otorisasi terpisah, dan keempatnya harus memungkinkan: `events:CreateSubscriber` di bus, `events:CreateSubscriber` `iam:PassRole` pada pelanggan, pada peran di`InvokeConfiguration.RoleArn`, dan `events:TagResource` pada pelanggan ketika permintaan membawa tag. `CreateEventSource`menjalankan pemeriksaan yang sama tanpa`iam:PassRole`, karena sumber peristiwa tidak memiliki peran.

**catatan**  
Sumber daya yang belum ada tidak memiliki ARN lengkap, jadi pemeriksaan buat menggunakan ARN yang diakhiri dengan wildcard, seperti`arn:aws:events:us-east-1:111122223333:subscriber/{{name}}/*`. Oleh karena itu, kebijakan yang dicakup untuk satu pelanggan cocok dengan awalan nama, tidak persis. Create yang tidak diberi tag menyediakan no `aws:ResourceTag` untuk sumber daya baru, jadi `StringEquals` kondisi pada kunci itu menyangkalnya.

## Contoh kebijakan berbasis identitas
<a name="eb-custom-bus-access-identity"></a>

Seorang ** produser ** membutuhkan `events:PutEvents``events:PutRawEvents`, atau keduanya, di bus ARN. Berikan tindakan yang cocok dengan API yang dipanggilnya. Produsen ke bus yang dienkripsi dengan kunci yang dikelola pelanggan juga memerlukan akses ke kunci itu; lihat[Mengenkripsi peristiwa pada Bus Acara Kustom](eb-custom-bus-encryption.md). Pemilik ** pelanggan ** perlu `events:CreateSubscriber` di bus dan pelanggan, `iam:PassRole` pada peran pengiriman, dan deskripsi, pembaruan, dan hapus tindakan pelanggan pada pelanggan yang dikelolanya. Administrator ** bus ** memerlukan tindakan membuat, memperbarui, dan menghapus bus, empat tindakan kebijakan sumber daya, dan`events:RevokeResource`.

Kebijakan berikut memungkinkan produsen mempublikasikan ke satu bus dengan API publikasi, dan membaca bus sehingga dapat mengonfirmasi bahwa bus adalah yang `ACTIVE` pertama. Penerbitan diotorisasi sekali untuk setiap entri dalam permintaan, dan tidak ada otorisasi parSIAL: jika satu entri gagal memeriksa kondisi EventBridge , menolak seluruh permintaan, termasuk entri yang akan dilewati.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublishToOrdersBus",
            "Effect": "Allow",
            "Action": [
                "events:PutEvents",
                "events:PutRawEvents",
                "events:DescribeEventBus"
            ],
            "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef"
        }
    ]
}
```

## Penandaan
<a name="eb-custom-bus-access-tagging"></a>

Anda dapat menandai bus, pelanggan, atau sumber acara. A `Tags` tur panggilan buat, atau gunakan `TagResource``UntagResource`, dan setel `ListTagsForResource` ahnya. Setiap sumber daya membawa set tag sendiri, jadi menandai bus tidak menandai pelanggan atau sumber acara yang dilampirkan padanya.

```
aws eventsv2 tag-resource \
    --resource-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \
    --tags team=payments,environment=production
```

Tanggapan create tidak menggemakan tag yang Anda berikan, jadi bacalah kembali `list-tags-for-resource` saat Anda perlu mengonfirmasinya. Kunci yang dimulai dengan `aws:` dicadangkan AWS dan ditolak pada setiap tulisan, termasuk`UntagResource`. Untuk mengontrol siapa yang dapat menandai, dan untuk menulis kebijakan yang bergantung pada tag, gunakan tiga tindakan tag di tabel sebelumnya dan kunci `aws:RequestTag``aws:ResourceTag`,, dan `aws:TagKeys` kondisi.