Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan kebijakan berbasis sumber daya untuk Amazon EventBridge
Ketika aturan berjalan EventBridge, semua target yang terkait dengan aturan dipanggil. Aturan dapat memanggil AWS Lambda fungsi, memublikasikan ke SNS topik Amazon, atau menyampaikan acara ke aliran Kinesis. Untuk melakukan API panggilan terhadap sumber daya yang Anda miliki, EventBridge memerlukan izin yang sesuai. Untuk sumber daya Lambda, AmazonSQS, SNS Amazon, dan Amazon CloudWatch Logs, EventBridge menggunakan kebijakan berbasis sumber daya. Untuk aliran Kinesis, EventBridge gunakan kebijakan berbasis identitas.
Anda menggunakan AWS CLI untuk menambahkan izin ke target Anda. Untuk informasi tentang cara menginstal dan mengkonfigurasi AWS CLI, lihat Menyiapkan dengan AWS Command Line Interface di Panduan AWS Command Line Interface Pengguna.
Topik
Izin Amazon API Gateway
Untuk memanggil titik akhir Amazon API Gateway Anda dengan menggunakan EventBridge aturan, tambahkan izin berikut ke kebijakan titik akhir API Gateway Anda.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "execute-api:Invoke", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:events:
region
:account-id
:rule/rule-name
" } }, "Resource": [ "execute-api:/stage/GET/api" ] } ] }
CloudWatch Izin log
Ketika CloudWatch Log adalah target aturan, EventBridge membuat aliran log, dan CloudWatch Log menyimpan teks dari peristiwa sebagai entri log. EventBridge Untuk memungkinkan membuat aliran log dan mencatat peristiwa, CloudWatch Log harus menyertakan kebijakan berbasis sumber daya yang memungkinkan EventBridge untuk menulis ke Log. CloudWatch
Jika Anda menggunakan AWS Management Console untuk menambahkan CloudWatch Log sebagai target aturan, kebijakan berbasis sumber daya akan dibuat secara otomatis. Jika Anda menggunakan AWS CLI untuk menambahkan target, dan kebijakan belum ada, Anda harus membuatnya.
Contoh berikut memungkinkan EventBridge untuk menulis ke semua grup log yang memiliki nama yang dimulai dengan/aws/events/
. Jika Anda menggunakan kebijakan penamaan yang berbeda untuk jenis log ini, sesuaikan contoh yang sesuai.
{ "Statement": [ { "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Effect": "Allow", "Principal": { "Service": ["events.amazonaws.com", "delivery.logs.amazonaws.com"] }, "Resource": "arn:aws:logs:
region
:account
:log-group:/aws/events/*:*", "Sid": "TrustEventsToStoreLogEvent" } ], "Version": "2012-10-17" }
Untuk informasi selengkapnya, lihat PutResourcePolicydi panduan API Referensi CloudWatch Log.
AWS Lambda izin
Untuk menjalankan AWS Lambda fungsi Anda dengan menggunakan EventBridge aturan, tambahkan izin berikut ke kebijakan fungsi Lambda Anda.
{ "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:
region
:account-id
:function:function-name
", "Principal": { "Service": "events.amazonaws.com" }, "Condition": { "ArnLike": { "AWS:SourceArn": "arn:aws:events:region
:account-id
:rule/rule-name
" } }, "Sid": "InvokeLambdaFunction" }
Untuk menambahkan izin di atas yang memungkinkan EventBridge untuk memanggil fungsi Lambda menggunakan AWS CLI
-
Pada jendela perintah, masukkan perintah berikut.
aws lambda add-permission --statement-id "InvokeLambdaFunction" \ --action "lambda:InvokeFunction" \ --principal "events.amazonaws.com" \ --function-name "arn:aws:lambda:
region
:account-id
:function:function-name
" \ --source-arn "arn:aws:events:region
:account-id
:rule/rule-name
"
Untuk informasi selengkapnya tentang menyetel izin yang memungkinkan EventBridge untuk menjalankan fungsi Lambda, lihat dan AddPermissionMenggunakan Lambda dengan Acara Terjadwal di Panduan Pengembang.AWS Lambda
SNSIzin Amazon
Untuk memungkinkan EventBridge mempublikasikan ke SNS topik Amazon, gunakan perintah aws sns
get-topic-attributes
dan aws sns set-topic-attributes
perintah.
catatan
Anda tidak dapat menggunakan Condition
blok dalam kebijakan SNS topik Amazon untuk EventBridge.
Untuk menambahkan izin yang memungkinkan EventBridge untuk mempublikasikan topik SNS
-
Untuk membuat daftar atribut SNS topik, gunakan perintah berikut.
aws sns get-topic-attributes --topic-arn "arn:aws:sns:
region
:account-id
:topic-name
"Contoh berikut menunjukkan hasil dari SNS topik baru.
{ "Attributes": { "SubscriptionsConfirmed": "0", "DisplayName": "", "SubscriptionsDeleted": "0", "EffectiveDeliveryPolicy": "{\"http\":{\"defaultHealthyRetryPolicy\":{\"minDelayTarget\":20,\"maxDelayTarget\":20,\"numRetries\":3,\"numMaxDelayRetries\":0,\"numNoDelayRetries\":0,\"numMinDelayRetries\":0,\"backoffFunction\":\"linear\"},\"disableSubscriptionOverrides\":false}}", "Owner": "
account-id
", "Policy": "{\"Version\":\"2012-10-17\",\"Id\":\"__default_policy_ID\",\"Statement\":[{\"Sid\":\"__default_statement_ID\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":[\"SNS:GetTopicAttributes\",\"SNS:SetTopicAttributes\",\"SNS:AddPermission\",\"SNS:RemovePermission\",\"SNS:DeleteTopic\",\"SNS:Subscribe\",\"SNS:ListSubscriptionsByTopic\",\"SNS:Publish\"],\"Resource\":\"arn:aws:sns:region
:account-id
:topic-name
\",\"Condition\":{\"StringEquals\":{\"AWS:SourceOwner\":\"account-id
\"}}}]}", "TopicArn": "arn:aws:sns:region
:account-id
:topic-name
", "SubscriptionsPending": "0" } } -
Gunakan konverter JSON to string
untuk mengonversi pernyataan berikut menjadi string. { "Sid": "PublishEventsToMyTopic", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:
region
:account-id
:topic-name
" }Setelah Anda mengonversi pernyataan ke string, hasilnya seperti contoh berikut.
{\"Sid\":\"PublishEventsToMyTopic\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"events.amazonaws.com\"},\"Action\":\"sns:Publish\",\"Resource\":\"arn:aws:sns:
region
:account-id
:topic-name
\"} -
Tambahkan string yang Anda buat pada langkah sebelumnya ke
"Statement"
kumpulan di dalam"Policy"
atribut. -
Gunakan
aws sns set-topic-attributes
perintah untuk menetapkan kebijakan baru.aws sns set-topic-attributes --topic-arn "arn:aws:sns:
region
:account-id
:topic-name
" \ --attribute-name Policy \ --attribute-value "{\"Version\":\"2012-10-17\",\"Id\":\"__default_policy_ID\",\"Statement\":[{\"Sid\":\"__default_statement_ID\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":[\"SNS:GetTopicAttributes\",\"SNS:SetTopicAttributes\",\"SNS:AddPermission\",\"SNS:RemovePermission\",\"SNS:DeleteTopic\",\"SNS:Subscribe\",\"SNS:ListSubscriptionsByTopic\",\"SNS:Publish\"],\"Resource\":\"arn:aws:sns:region
:account-id
:topic-name
\",\"Condition\":{\"StringEquals\":{\"AWS:SourceOwner\":\"account-id
\"}}}, {\"Sid\":\"PublishEventsToMyTopic\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"events.amazonaws.com\"},\"Action\":\"sns:Publish\",\"Resource\":\"arn:aws:sns:region
:account-id
:topic-name
\"}]}"
Untuk informasi selengkapnya, lihat SetTopicAttributestindakan di APIReferensi Layanan Pemberitahuan Sederhana Amazon.
SQSIzin Amazon
Untuk mengizinkan EventBridge aturan memanggil SQS antrian Amazon, gunakan perintah aws sqs
get-queue-attributes
danaws sqs set-queue-attributes
.
Jika kebijakan untuk SQS antrian kosong, pertama-tama Anda harus membuat kebijakan, lalu menambahkan pernyataan izin ke dalamnya. SQSAntrian baru memiliki kebijakan kosong.
Jika SQS antrian sudah memiliki kebijakan, Anda perlu menyalin kebijakan asli dan menggabungkannya dengan pernyataan baru untuk menambahkan pernyataan izin ke dalamnya.
Untuk menambahkan izin yang mengaktifkan EventBridge aturan untuk memanggil antrian SQS
-
Untuk daftar atribut SQS antrian. Pada jendela perintah, masukkan perintah berikut.
aws sqs get-queue-attributes \ --queue-url https://sqs.
region
.amazonaws.com/account-id
/queue-name
\ --attribute-names Policy -
Tambahkan pernyataan berikut.
{ "Sid": "AWSEvents_custom-eventbus-ack-sqs-rule_dlq_sqs-rule-target", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:
region
:account-id
:queue-name
", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:events:region
:account-id
:rule/bus-name
/rule-name
" } } } -
Gunakan konverter JSON to string
untuk mengubah pernyataan sebelumnya menjadi string. Setelah Anda mengonversi kebijakan ke string, hasilnya terlihat seperti berikut. {\"Sid\": \"EventsToMyQueue\", \"Effect\": \"Allow\", \"Principal\": {\"Service\": \"events.amazonaws.com\"}, \"Action\": \"sqs:SendMessage\", \"Resource\": \"arn:aws:sqs:
region
:account-id
:queue-name
\", \"Condition\": {\"ArnEquals\": {\"aws:SourceArn\": \"arn:aws:events:region
:account-id
:rule/rule-name
\"}} -
Buat file bernama
set-queue-attributes.json
dengan konten berikut.{ "Policy": "{\"Version\":\"2012-10-17\",\"Id\":\"arn:aws:sqs:
region
:account-id
:queue-name
/SQSDefaultPolicy\",\"Statement\":[{\"Sid\": \"EventsToMyQueue\", \"Effect\": \"Allow\", \"Principal\": {\"Service\": \"events.amazonaws.com\"}, \"Action\": \"sqs:SendMessage\", \"Resource\": \"arn:aws:sqs:region
:account-id
:queue-name
\", \"Condition\": {\"ArnEquals\": {\"aws:SourceArn\": \"arn:aws:events:region
:account-id
:rule/rule-name
\"}}}]}" } -
Menetapkan atribut kebijakan dengan menggunakan file
set-queue-attributes.json
yang baru saja dibuat sebagai input, seperti yang ditunjukkan dalam perintah berikut.aws sqs set-queue-attributes \ --queue-url https://sqs.
region
.amazonaws.com/account-id
/queue-name
\ --attributes file://set-queue-attributes.json
Untuk informasi selengkapnya, lihat Contoh SQS Kebijakan Amazon di Panduan Pengembang Layanan Antrian Sederhana Amazon.
EventBridge Spesifikasi pipa
EventBridge Pipa tidak mendukung kebijakan berbasis sumber daya dan tidak memiliki APIs yang mendukung kondisi kebijakan berbasis sumber daya.
Namun, jika Anda mengonfigurasi akses pipa melalui VPC titik akhir antarmuka, VPC titik akhir tersebut mendukung kebijakan sumber daya yang memungkinkan Anda mengelola akses ke EventBridge Pipe. APIs Untuk informasi selengkapnya, lihat Menggunakan Amazon EventBridge dengan titik VPC akhir Antarmuka