

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

# Menggunakan kondisi kebijakan IAM di Amazon EventBridge
<a name="eb-use-conditions"></a>

Untuk memberikan izin, Anda menggunakan bahasa kebijakan IAM dalam pernyataan kebijakan untuk menetapkan ketentuan ketika kebijakan akan berlaku. Misalnya, Anda dapat memiliki kebijakan yang diterapkan hanya setelah tanggal tertentu.

Sebuah syarat dalam kebijakan terdiri dari pasangan nilai kunci. Kunci syarat tidak memedulikan huruf besar atau kecil. 

Jika Anda menentukan beberapa kondisi atau kunci dalam satu kondisi, semua kondisi dan kunci harus dipenuhi EventBridge untuk memberikan izin. Jika Anda menentukan kondisi tunggal dengan beberapa nilai untuk satu kunci, EventBridge memberikan izin jika salah satu nilai terpenuhi.

Anda juga dapat menggunakan placeholder atau *variabel kebijakan* saat menetapkan ketentuan. Untuk informasi selengkapnya, lihat [Variabel Kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/policyvariables.html) dalam *Panduan Pengguna IAM*. Untuk informasi selengkapnya tentang menetapkan ketentuan dalam bahasa kebijakan IAM, lihat [Syarat](https://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#Condition) dalam *Panduan Pengguna IAM*.

Secara default, pengguna dan peran IAM tidak dapat mengakses[peristiwa](eb-events.md) di akun Anda. Untuk mengakses peristiwa, pengguna harus berwenang untuk `PutRule`tindakan API. Jika pengguna atau peran IAM diotorisasi untuk tindakan `events:PutRule`, mereka dapat membuat [aturan](eb-rules.md) yang cocok dengan peristiwa tertentu. Namun, agar aturan berguna, pengguna juga harus memiliki izin untuk `events:PutTargets` tindakan karena, jika Anda ingin aturan melakukan lebih dari mempublikasikan CloudWatch metrik, Anda juga harus menambahkan [target](eb-targets.md) ke aturan.

Anda dapat memberikan syarat dalam pernyataan kebijakan peran atau pengguna IAM yang memungkinkan pengguna atau peran untuk membuat aturan yang hanya cocok dengan serangkaian sumber dan jenis peristiwa tertentu. Untuk memberikan akses ke sumber dan jenis peristiwa tertentu, gunakan `events:source` dan `events:detail-type` kunci syarat.

Demikian pula, Anda dapat memberikan syarat dalam pernyataan kebijakan pengguna atau peran IAM yang memungkinkan pengguna atau peran untuk membuat aturan yang hanya cocok dengan sumber daya tertentu di akun Anda. Untuk memberikan akses ke sumber daya tertentu, gunakan `events:TargetArn`kunci syarat.

## EventBridge kunci kondisi
<a name="conditions-table"></a>

Tabel berikut menunjukkan kunci kondisi dan pasangan kunci dan nilai yang dapat Anda gunakan dalam kebijakan EventBridge.


| Kunci syarat | Pasangan nilai kunci | Jenis evaluasi | 
| --- | --- | --- | 
|  aws: SourceAccount  |  Akun di mana aturan yang ditetapkan oleh `aws:SourceArn` ada.  |  Account Id, Null  | 
|  aws: SourceArn  |  ARN aturan yang mengirimkan acara tersebut.  |  ARN, Null  | 
|  events:creatorAccount  |  `"events:creatorAccount":"creatorAccount"` Untuk*creatorAccount*, gunakan ID akun untuk akun yang membuat aturan. Gunakan syarat ini untuk mengesahkan panggilan API pada aturan dari akun tertentu.  |  creatorAccount, Null  | 
|  events:detail-type  |  `"events:detail-type":"detail-type "` Di *detail-type* mana string literal untuk bidang **tipe detail** acara seperti dan. `"AWS API Call via CloudTrail"` `"EC2 Instance State-change Notification"`   |  Detail Type, Null  | 
|  acara: detail. eventTypeCode  |  `"events:detail.eventTypeCode":"eventTypeCode"` Untuk*eventTypeCode*, gunakan string literal untuk **detailnya. eventTypeCode**bidang acara, seperti`"AWS_ABUSE_DOS_REPORT"`.  |  eventTypeCode, Null  | 
|  Event: detail.service  |  `"events:detail.service":"service"` Untuk*service*, gunakan string literal untuk bidang **detail.service** acara, seperti. `"ABUSE"`  |  service, Null  | 
|  events: detail.userIdentity.principalId  |  `"events:detail.userIdentity.principalId":"principal-id"` Untuk*principal-id*, gunakan string literal untuk bidang **detail.userIdentity.Principalid** acara dengan tipe detail seperti. `"AWS API Call via CloudTrail"` `"AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName."`  |  Principal Id, Null  | 
|  peristiwa: eventBusInvocation  |  `"events:eventBusInvocation":"boolean"` Untuk*boolean*, gunakan true ketika aturan mengirim acara ke target yang merupakan bus acara di akun lain. Gunakan SALAH ketika ketika `PutEvents` panggilan API digunakan.  |  eventBusInvocation, Null  | 
|  peristiwa: ManagedBy  |  Digunakan secara internal oleh AWS layanan. Untuk aturan yang dibuat oleh AWS layanan atas nama Anda, nilainya adalah nama utama layanan yang membuat aturan.  |  Tidak dimaksudkan untuk digunakan dalam kebijakan pelanggan.  | 
|  events:source  |  `"events:source":"source "` Gunakan *source* untuk string literal untuk bidang sumber acara seperti `"aws.ec2"` atau`"aws.s3"`. Untuk nilai yang lebih mungkin*source*, lihat contoh peristiwa di[Acara dari AWS layanan](eb-events.md#eb-service-event).  |  Source, Null  | 
|  peristiwa: TargetArn  |  `"events:TargetArn":"target-arn "` Untuk*target-arn*, gunakan ARN target untuk aturan, misalnya. `"arn:aws:lambda:*:*:function:*"`  |  ArrayOfARN, Null  | 

Misalnya pernyataan kebijakan untuk EventBridge, lihat[Mengelola izin akses ke sumber daya Amazon EventBridge Anda](eb-manage-iam-access.md).

**Topics**
+ [

## EventBridge kunci kondisi
](#conditions-table)
+ [

## EventBridge Spesifikasi pipa
](#eb-pipes-condition-diff)
+ [

## Contoh: Menggunakan `creatorAccount` syarat
](#eb-events-creator-account)
+ [

## Contoh: Menggunakan `eventBusInvocation` syarat
](#eb-events-bus-invocation)
+ [

## Contoh: Membatasi akses ke sumber tertentu
](#eb-events-limit-access-control)
+ [

## Contoh: Mendefinisikan beberapa sumber yang dapat digunakan dalam pola peristiwa individual
](#eb-events-pattern-sources)
+ [

## Contoh: Memastikan bahwa sumber didefinisikan dalam pola peristiwa
](#eb-source-defined-events-pattern)
+ [

## Contoh: Mendefinisikan daftar sumber yang diperbolehkan dalam pola peristiwa dengan beberapa sumber
](#eb-allowed-sources-events-pattern)
+ [

## Contoh: Membatasi `PutRule` akses oleh `detail.service`
](#eb-limit-rule-by-service)
+ [

## Contoh: Membatasi `PutRule` akses oleh `detail.eventTypeCode`
](#eb-limit-rule-by-type-code)
+ [

## Contoh: Memastikan bahwa hanya AWS CloudTrail peristiwa untuk panggilan API dari panggilan tertentu `PrincipalId` yang diizinkan
](#eb-consume-specific-events)
+ [

## Contoh: Membatasi akses ke target
](#eb-limiting-access-to-targets)

## EventBridge Spesifikasi pipa
<a name="eb-pipes-condition-diff"></a>

EventBridge Pipa tidak mendukung kunci kondisi kebijakan IAM tambahan.

## Contoh: Menggunakan `creatorAccount` syarat
<a name="eb-events-creator-account"></a>

Contoh pernyataan kebijakan berikut menunjukkan cara menggunakan `creatorAccount` syarat dalam kebijakan untuk hanya mengizinkan aturan yang akan dibuat jika akun ditetapkan sebagai`creatorAccount` adalah akun yang membuat aturan.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutRuleForOwnedRules",
            "Effect": "Allow",
            "Action": "events:PutRule",
            "Resource": "*",
            "Condition": {
                "StringEqualsIfExists": {
                    "events:creatorAccount": "${aws:PrincipalAccount}"
                }
            }
        }
    ]
}
```

------

## Contoh: Menggunakan `eventBusInvocation` syarat
<a name="eb-events-bus-invocation"></a>

`eventBusInvocation` menunjukkan apakah permintaan berasal dari target lintas-akun atau `PutEvents` permintaan API. Nilai adalah **BETUL** ketika hasil permintaan dari aturan yang mencakup target lintas-akun, seperti ketika target adalah bus peristiwa di akun lain. Nilai adalah **SALAH** ketika hasil permintaan dari `PutEvents` permintaan API. Contoh berikut menunjukkan permintaan dari target lintas-akun.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCrossAccountInvocationEventsOnly",
      "Effect": "Allow",
      "Action": "events:PutEvents",
      "Resource": "*",
      "Condition": {
        "BoolIfExists": {
          "events:eventBusInvocation": "true"
        }
      }
    }
  ]
}
```

------

## Contoh: Membatasi akses ke sumber tertentu
<a name="eb-events-limit-access-control"></a>

Contoh kebijakan berikut dapat disematkan ke pengguna IAM. Kebijakan A memungkinkan `PutRule` tindakan API untuk semua peristiwa, sementara Kebijakan B memungkinkan `PutRule` hanya jika pola peristiwa aturan yang dibuat cocok dengan peristiwa Amazon EC2.

**Kebijakan A: izinkan semua acara**

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutRuleForAllEvents",
            "Effect": "Allow",
            "Action": "events:PutRule",
            "Resource": "*"
        }
    ]
    }
```

------

**Kebijakan B: —izinkan acara hanya dari Amazon EC2** 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
    "Sid": "AllowPutRuleForAllEC2Events",
    "Effect": "Allow",
    "Action": "events:PutRule",
    "Resource": "*",
    "Condition": {
    "ForAllValues:StringEquals": {
    "events:source": "aws.ec2"
    }
    }
    }
    ]
    }
```

------

`EventPattern` adalah argumen wajib untuk `PutRule`. Oleh karena itu, jika pengguna dengan Kebijakan B memanggil `PutRule`dengan pola peristiwa seperti berikut ini.

```
{
    "source": [ "aws.ec2" ]
}
```

Aturan akan dibuat karena kebijakan memungkinkan untuk sumber khusus ini: yaitu, `"aws.ec2"`. Namun, jika pengguna dengan Kebijakan B memanggil `PutRule` dengan pola peristiwa seperti berikut ini, pembuatan aturan akan ditolak karena kebijakan tidak mengizinkan sumber spesifik ini: yaitu, `"aws.s3"`.

```
{
    "source": [ "aws.s3" ]
}
```

Pada dasarnya, pengguna dengan Kebijakan B hanya diperbolehkan untuk membuat aturan yang akan cocok dengan peristiwa yang berasal dari Amazon EC2; maka, mereka hanya diperbolehkan mengakses ke peristiwa dari Amazon EC2.

Lihat tabel berikut untuk perbandingan Kebijakan A dan Kebijakan B.


| Pola Peristiwa | Diperbolehkan oleh Kebijakan A | Diperbolehkan oleh Kebijakan B | 
| --- | --- | --- | 
|  <pre>{<br />    "source": [ "aws.ec2" ]<br />}</pre>  |  Ya  |  Ya  | 
|  <pre>{<br />    "source": [ "aws.ec2", "aws.s3" ]<br />}</pre>  |  Ya  |  Tidak (Sumber aws.s3 tidak diizinkan)  | 
|  <pre>{<br />    "source": [ "aws.ec2" ],<br />    "detail-type": [ "EC2 Instance State-change Notification" ]<br />}</pre>  |  Ya  |  Ya  | 
|  <pre>{<br />    "detail-type": [ "EC2 Instance State-change Notification" ]<br />}</pre>  |  Ya  |  Tidak (Sumber harus ditentukan)  | 

## Contoh: Mendefinisikan beberapa sumber yang dapat digunakan dalam pola peristiwa individual
<a name="eb-events-pattern-sources"></a>

Kebijakan berikut memungkinkan pengguna atau peran IAM untuk membuat aturan di mana sumber dalam `EventPattern` adalah Amazon EC2 atau Amazon ECS.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
    "Sid": "AllowPutRuleIfSourceIsEC2OrECS",
    "Effect": "Allow",
    "Action": "events:PutRule",
    "Resource": "*",
    "Condition": {
    "ForAllValues:StringEquals": {
    "events:source": [
    "aws.ec2",
    "aws.ecs"
    ]
    }
    }
    }
    ]
    }
```

------

Tabel berikut menunjukkan beberapa contoh pola peristiwa yang diizinkan atau ditolak oleh kebijakan ini.


| Pola peristiwa | Diizinkan oleh kebijakan | 
| --- | --- | 
|  <pre>{<br />    "source": [ "aws.ec2" ]<br />}</pre>  |  Ya  | 
|  <pre>{<br />    "source": [ "aws.ecs" ]<br />}</pre>  |  Ya  | 
|  <pre>{<br />    "source": [ "aws.s3" ]<br />}</pre>  |  Tidak  | 
|  <pre>{<br />    "source": [ "aws.ec2", "aws.ecs" ]<br />}</pre>  |  Tidak  | 
|  <pre>{<br />    "detail-type": [ "AWS API Call via CloudTrail" ]<br />}</pre>  |  Tidak  | 

## Contoh: Memastikan bahwa sumber didefinisikan dalam pola peristiwa
<a name="eb-source-defined-events-pattern"></a>

Kebijakan berikut memungkinkan pengguna untuk hanya membuat aturan dengan `EventPatterns` yang memiliki bidang sumber. Dengan kebijakan ini, pengguna atau peran IAM tidak dapat membuat aturan dengan `EventPattern` yang tidak menyediakan sumber tertentu.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutRuleIfSourceIsSpecified",
            "Effect": "Allow",
            "Action": "events:PutRule",
            "Resource": "*",
            "Condition": {
                "Null": {
                    "events:source": "false"
                }
            }
        }
    ]
}
```

------

Tabel berikut menunjukkan beberapa contoh pola peristiwa yang diizinkan atau ditolak oleh kebijakan ini.


| Pola Peristiwa | Diperbolehkan oleh Kebijakan | 
| --- | --- | 
|  <pre>{<br />    "source": [ "aws.ec2" ],<br />    "detail-type": [ "EC2 Instance State-change Notification" ]<br />}</pre>  |  Ya  | 
|  <pre>{<br />    "source": [ "aws.ecs", "aws.ec2" ]<br />}</pre>  |  Ya  | 
|  <pre>{<br />    "detail-type": [ "EC2 Instance State-change Notification" ]<br />}</pre>  |  Tidak  | 

## Contoh: Mendefinisikan daftar sumber yang diperbolehkan dalam pola peristiwa dengan beberapa sumber
<a name="eb-allowed-sources-events-pattern"></a>

Kebijakan berikut memungkinkan pengguna untuk membuat aturan dengan `EventPatterns` yang memiliki banyak sumber di dalamnya. Setiap sumber dalam pola peristiwa harus menjadi anggota dari daftar yang disediakan dalam syarat tersebut. Ketika Anda menggunakan`ForAllValues` syarat, pastikan bahwa setidaknya salah satu item dalam daftar syarat didefinisikan.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutRuleIfSourceIsSpecifiedAndIsEitherS3OrEC2OrBoth",
            "Effect": "Allow",
            "Action": "events:PutRule",
            "Resource": "*",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "events:source": [ "aws.ec2", "aws.s3" ]
                },
                "Null": {
                    "events:source": "false"
                }
            }
        }
    ]
}
```

------

Tabel berikut menunjukkan beberapa contoh pola peristiwa yang diizinkan atau ditolak oleh kebijakan ini.


| Pola Peristiwa | Diperbolehkan oleh Kebijakan | 
| --- | --- | 
|  <pre>{<br />    "source": [ "aws.ec2" ]<br />}</pre>  |  Ya  | 
|  <pre>{<br />    "source": [ "aws.ec2", "aws.s3" ]<br />}</pre>  |  Ya  | 
|  <pre>{<br />    "source": [ "aws.ec2", "aws.autoscaling" ]<br />}</pre>  |  Tidak  | 
|  <pre>{<br />    "detail-type": [ "EC2 Instance State-change Notification" ]<br />}</pre>  |  Tidak  | 

## Contoh: Membatasi `PutRule` akses oleh `detail.service`
<a name="eb-limit-rule-by-service"></a>

Anda dapat membatasi pengguna atau peran IAM untuk membuat aturan hanya untuk peristiwa yang memiliki nilai tertentu dalam `events:details.service`bidang. Nilai `events:details.service` belum tentu nama AWS layanan.

Kondisi kebijakan ini sangat membantu ketika Anda bekerja dengan peristiwa AWS Health yang berhubungan dengan keamanan atau penyalahgunaan. Dengan menggunakan syarat kebijakan ini, Anda dapat membatasi akses ke peringatan sensitif ini hanya untuk pengguna yang perlu melihatnya.

Sebagai contoh, kebijakan berikut memungkinkan pembuatan aturan hanya untuk peristiwa di mana nilai `events:details.service` adalah `ABUSE`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutRuleEventsWithDetailServiceEC2",
            "Effect": "Allow",
            "Action": "events:PutRule",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "events:detail.service": "ABUSE"
                }
            }
        }
    ]
}
```

------

## Contoh: Membatasi `PutRule` akses oleh `detail.eventTypeCode`
<a name="eb-limit-rule-by-type-code"></a>

Anda dapat membatasi pengguna atau peran IAM untuk membuat aturan hanya untuk peristiwa yang memiliki nilai tertentu dalam `events:details.eventTypeCode`bidang. Kondisi kebijakan ini sangat membantu ketika Anda bekerja dengan peristiwa AWS Health yang berhubungan dengan keamanan atau penyalahgunaan. Dengan menggunakan syarat kebijakan ini, Anda dapat membatasi akses ke peringatan sensitif ini hanya untuk pengguna yang perlu melihatnya.

 Sebagai contoh, kebijakan berikut memungkinkan pembuatan aturan hanya untuk peristiwa di mana nilai `events:details.eventTypeCode` adalah `AWS_ABUSE_DOS_REPORT`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutRuleEventsWithDetailServiceEC2",
            "Effect": "Allow",
            "Action": "events:PutRule",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "events:detail.eventTypeCode": "AWS_ABUSE_DOS_REPORT"
                }
            }
        }
    ]
}
```

------

## Contoh: Memastikan bahwa hanya AWS CloudTrail peristiwa untuk panggilan API dari panggilan tertentu `PrincipalId` yang diizinkan
<a name="eb-consume-specific-events"></a>

Semua AWS CloudTrail peristiwa memiliki pengguna yang melakukan panggilan API di `detail.userIdentity.principalId` jalur suatu peristiwa. PrincipalId Dengan menggunakan tombol `events:detail.userIdentity.principalId` kondisi, Anda dapat membatasi akses pengguna atau peran IAM ke CloudTrail peristiwa hanya untuk mereka yang berasal dari akun tertentu.

```
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutRuleOnlyForCloudTrailEventsWhereUserIsASpecificIAMUser",
            "Effect": "Allow",
            "Action": "events:PutRule",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "events:detail-type": [ "AWS API Call via CloudTrail" ],
                    "events:detail.userIdentity.principalId": [ "AIDAJ45Q7YFFAREXAMPLE" ]
                }
            }
        }
    ]
}
```

Tabel berikut menunjukkan beberapa contoh pola peristiwa yang diizinkan atau ditolak oleh kebijakan ini.


| Pola peristiwa | Diizinkan oleh kebijakan | 
| --- | --- | 
|  <pre>{<br />    "detail-type": [ "AWS API Call via CloudTrail" ]<br />}</pre>  |  Tidak  | 
|  <pre>{<br />    "detail-type": [ "AWS API Call via CloudTrail" ],<br />    "detail.userIdentity.principalId": [ "AIDAJ45Q7YFFAREXAMPLE" ]<br />}</pre>  |  Ya  | 
|  <pre>{<br />    "detail-type": [ "AWS API Call via CloudTrail" ],<br />    "detail.userIdentity.principalId": [ "AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName" ]<br />}</pre>  |  Tidak  | 

## Contoh: Membatasi akses ke target
<a name="eb-limiting-access-to-targets"></a>

Jika pengguna atau peran IAM memiliki `events:PutTargets` izin, mereka dapat menambahkan target apa pun dalam akun yang sama dengan aturan yang diizinkan untuk diakses. Kebijakan berikut membatasi pengguna untuk menambahkan target hanya untuk aturan tertentu: `MyRule` dalam akun `123456789012`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutTargetsOnASpecificRule",
            "Effect": "Allow",
            "Action": "events:PutTargets",
            "Resource": "arn:aws:events:us-east-1:123456789012:rule/MyRule"
        }
    ]
}
```

------

Untuk membatasi target apa yang dapat ditambahkan ke aturan, gunakan `events:TargetArn` kunci syarat. Anda dapat membatasi target hanya untuk fungsi Lambda, seperti dalam contoh berikut.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutTargetsOnASpecificRuleAndOnlyLambdaFunctions",
            "Effect": "Allow",
            "Action": "events:PutTargets",
            "Resource": "arn:aws:events:us-east-1:123456789012:rule/rule-name",
            "Condition": {
            "ForAnyValue:ArnLike": {
                    "events:TargetArn": "arn:aws:lambda:*:*:function:*"
                }
            }
        }
    ]
}
```

------