Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan kondisi IAM kebijakan di Amazon EventBridge
Untuk memberikan izin, Anda menggunakan bahasa IAM kebijakan dalam pernyataan kebijakan untuk menentukan kondisi kapan kebijakan harus diterapkan. 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 di Panduan IAM Pengguna. Untuk informasi selengkapnya tentang menentukan kondisi dalam bahasa IAM kebijakan, lihat Kondisi di Panduan IAM Pengguna.
Secara default, IAM pengguna dan peran tidak dapat mengakses peristiwa di akun Anda. Untuk mengakses peristiwa, pengguna harus diberi wewenang untuk PutRule
API tindakan tersebut. Jika IAM pengguna atau peran diotorisasi untuk events:PutRule
tindakan tersebut, mereka dapat membuat aturan 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 ke aturan.
Anda dapat memberikan kondisi dalam pernyataan kebijakan IAM pengguna atau peran yang memungkinkan pengguna atau peran membuat aturan yang hanya cocok dengan kumpulan 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 kondisi dalam pernyataan kebijakan IAM pengguna atau peran yang memungkinkan pengguna atau peran membuat aturan yang hanya cocok dengan sumber daya tertentu di akun Anda. Untuk memberikan akses ke sumber daya tertentu, gunakan events:TargetArn
kunci syarat.
Contoh berikut adalah kebijakan yang memungkinkan pengguna mengakses semua peristiwa kecuali EC2 peristiwa Amazon dalam EventBridge menggunakan pernyataan penolakan pada PutRule
API tindakan.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyPutRuleForAllEC2Events", "Effect": "Deny", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:source": "aws.ec2" } } } ] }
EventBridge kunci kondisi
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 |
Account Id, Null |
aws: SourceArn |
ARNAturan yang mengirim acara. |
ARN, Null |
peristiwa: creatorAccount |
Untuk |
creatorAccount, Null |
events:detail-type |
Di mana |
Detail Type, Null |
acara: detail. eventTypeCode |
Untuk |
eventTypeCode, Null |
Event: detail.service |
Untuk |
service, Null |
acara: detail. userIdentity. principalId |
Untuk |
Principal Id, Null |
peristiwa: eventBusInvocation |
Untuk |
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 |
Gunakan |
Source, Null |
peristiwa: TargetArn |
Untuk |
ArrayOfARN, Null |
Misalnya pernyataan kebijakan untuk EventBridge, lihatMengelola izin akses ke sumber daya Amazon EventBridge Anda.
Topik
- EventBridge Spesifikasi pipa
- Contoh: Menggunakan creatorAccount syarat
- Contoh: Menggunakan eventBusInvocation syarat
- Contoh: Membatasi akses ke sumber tertentu
- Contoh: Mendefinisikan beberapa sumber yang dapat digunakan dalam pola peristiwa individual
- Contoh: Mendefinisikan sumber dan DetailType yang dapat digunakan dalam pola peristiwa
- Contoh: Memastikan bahwa sumber didefinisikan dalam pola peristiwa
- Contoh: Mendefinisikan daftar sumber yang diperbolehkan dalam pola peristiwa dengan beberapa sumber
- Contoh: Membatasi PutRule akses oleh detail.service
- Contoh: Membatasi PutRule akses oleh detail.eventTypeCode
- Contoh: Memastikan bahwa hanya AWS CloudTrail acara untuk API panggilan dari tertentu PrincipalId yang diizinkan
- Contoh: Membatasi akses ke target
EventBridge Spesifikasi pipa
EventBridge Pipa tidak mendukung kunci kondisi IAM kebijakan tambahan.
Contoh: Menggunakan creatorAccount
syarat
Contoh pernyataan kebijakan berikut menunjukkan cara menggunakan creatorAccount
syarat dalam kebijakan untuk hanya mengizinkan aturan yang akan dibuat jika akun ditetapkan sebagaicreatorAccount
adalah akun yang membuat aturan.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleForOwnedRules", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEqualsIfExists": { "events:creatorAccount": "${aws:PrincipalAccount}" } } } ] }
Contoh: Menggunakan eventBusInvocation
syarat
eventBusInvocation
Ini menunjukkan apakah pemanggilan berasal dari target lintas akun atau permintaan. PutEvents
API Nilai adalah BETUL ketika hasil permintaan dari aturan yang mencakup target lintas-akun, seperti ketika target adalah bus peristiwa di akun lain. Nilainya salah saat pemanggilan dihasilkan dari permintaan. PutEvents
API Contoh berikut menunjukkan permintaan dari target lintas-akun.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountInvocationEventsOnly", "Effect": "Allow", "Action": "events:PutEvents", "Resource": "*", "Condition": { "BoolIfExists": { "events:eventBusInvocation": "true" } } } ] }
Contoh: Membatasi akses ke sumber tertentu
Contoh kebijakan berikut dapat dilampirkan ke IAM pengguna. Kebijakan A memungkinkan PutRule
API tindakan untuk semua peristiwa, sedangkan Kebijakan B PutRule
hanya mengizinkan jika pola peristiwa aturan yang dibuat cocok dengan EC2 peristiwa Amazon.
Kebijakan A: izinkan semua acara
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleForAllEvents", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*" } ] }
Kebijakan B: —izinkan acara hanya dari Amazon EC2
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleForAllEC2Events", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "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 diizinkan untuk membuat aturan yang cocok dengan peristiwa yang berasal dari AmazonEC2; karenanya, mereka hanya diizinkan mengakses peristiwa dari AmazonEC2.
Lihat tabel berikut untuk perbandingan Kebijakan A dan Kebijakan B.
Pola Peristiwa | Diperbolehkan oleh Kebijakan A | Diperbolehkan oleh Kebijakan B |
---|---|---|
|
Ya |
Ya |
|
Ya |
Tidak (Sumber aws.s3 tidak diizinkan) |
|
Ya |
Ya |
|
Ya |
Tidak (Sumber harus ditentukan) |
Contoh: Mendefinisikan beberapa sumber yang dapat digunakan dalam pola peristiwa individual
Kebijakan berikut memungkinkan IAM pengguna atau peran untuk membuat aturan di mana sumber di EventPattern
Amazon EC2 atau AmazonECS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleIfSourceIsEC2OrECS", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "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 |
---|---|
|
Ya |
|
Ya |
|
Tidak |
|
Tidak |
|
Tidak |
Contoh: Mendefinisikan sumber dan DetailType
yang dapat digunakan dalam pola peristiwa
Kebijakan berikut memungkinkan peristiwa hanya dari aws.ec2
sumber dengan DetailType
sama dengan EC2 instance state change notification
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleIfSourceIsEC2AndDetailTypeIsInstanceStateChangeNotification", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:source": "aws.ec2", "events:detail-type": "EC2 Instance State-change Notification" } } } ] }
Tabel berikut menunjukkan beberapa contoh pola peristiwa yang diizinkan atau ditolak oleh kebijakan ini.
Pola peristiwa | Diizinkan oleh kebijakan |
---|---|
|
Tidak |
|
Tidak |
|
Ya |
|
Tidak |
|
Tidak |
Contoh: Memastikan bahwa sumber didefinisikan dalam pola peristiwa
Kebijakan berikut memungkinkan pengguna untuk hanya membuat aturan dengan EventPatterns
yang memiliki bidang sumber. Dengan kebijakan ini, IAM pengguna atau peran tidak dapat membuat aturan dengan aturan EventPattern
yang tidak menyediakan sumber tertentu.
{ "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 |
---|---|
|
Ya |
|
Ya |
|
Tidak |
Contoh: Mendefinisikan daftar sumber yang diperbolehkan dalam pola peristiwa dengan beberapa sumber
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 menggunakanForAllValues
syarat, pastikan bahwa setidaknya salah satu item dalam daftar syarat didefinisikan.
{ "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 |
---|---|
|
Ya |
|
Ya |
|
Tidak |
|
Tidak |
Contoh: Membatasi PutRule
akses oleh detail.service
Anda dapat membatasi IAM pengguna atau peran untuk membuat aturan hanya untuk acara yang memiliki nilai tertentu di 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
.
{ "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
Anda dapat membatasi IAM pengguna atau peran untuk membuat aturan hanya untuk acara yang memiliki nilai tertentu di 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
.
{ "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 acara untuk API panggilan dari tertentu PrincipalId
yang diizinkan
Semua AWS CloudTrail acara memiliki pengguna yang melakukan API panggilan di detail.userIdentity.principalId
jalur suatu peristiwa. PrincipalId Dengan menggunakan tombol events:detail.userIdentity.principalId
kondisi, Anda dapat membatasi akses IAM pengguna atau peran ke CloudTrail acara hanya untuk 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 |
---|---|
|
Tidak |
|
Ya |
|
Tidak |
Contoh: Membatasi akses ke target
Jika IAM pengguna atau peran memiliki events:PutTargets
izin, mereka dapat menambahkan target apa pun di bawah akun yang sama ke aturan yang diizinkan untuk diakses. Kebijakan berikut membatasi pengguna untuk menambahkan target hanya untuk aturan tertentu: MyRule
dalam akun 123456789012
.
{ "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.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutTargetsOnASpecificRuleAndOnlyLambdaFunctions", "Effect": "Allow", "Action": "events:PutTargets", "Resource": "arn:aws:events:us-east-1:123456789012:rule/MyRule", "Condition": { "ArnLike": { "events:TargetArn": "arn:aws:lambda:*:*:function:*" } } } ] }