

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
<a name="eb-use-resource-based"></a>

Ketika [aturan](eb-rules.md) berjalan EventBridge, semua [target](eb-targets.md) yang terkait dengan aturan dipanggil. Aturan dapat memanggil AWS Lambda fungsi, memublikasikan ke topik Amazon SNS, atau menyampaikan acara ke aliran Kinesis. Untuk melakukan panggilan API terhadap sumber daya yang Anda miliki, EventBridge memerlukan izin yang sesuai. Untuk sumber daya Amazon CloudWatch Logs, EventBridge gunakan kebijakan berbasis sumber daya. Untuk sumber daya Lambda, Amazon SNS, dan Amazon SQS EventBridge , dapat menggunakan peran eksekusi IAM atau kebijakan berbasis sumber daya. [Untuk aliran Kinesis, EventBridge gunakan kebijakan berbasis identitas.](eb-use-identity-based.md)

**penting**  
Untuk target Amazon CloudWatch Logs, jangan tentukan a `RoleArn` dalam konfigurasi target. Untuk target Lambda, Amazon SNS, dan Amazon SQS, Anda dapat menggunakan peran eksekusi IAM atau kebijakan berbasis sumber daya. Jika Anda menentukan target `RoleArn` untuk Lambda, Amazon SNS, atau Amazon SQS, pastikan peran tersebut memiliki izin yang diperlukan (misalnya,,, atau). `lambda:InvokeFunction` `sns:Publish` `sqs:SendMessage` Jika tidak ada peran eksekusi yang dikonfigurasi, EventBridge gunakan kebijakan berbasis sumber daya pada sumber daya target.

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](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) *Panduan AWS Command Line Interface Pengguna*.

**Topics**
+ [Izin Amazon API Gateway](#eb-api-gateway-permissions)
+ [CloudWatch Izin log](#eb-cloudwatchlogs-permissions)
+ [AWS Lambda izin](#eb-lambda-permissions)
+ [Izin Amazon SNS](#eb-sns-permissions)
+ [Izin Amazon SQS](#eb-sqs-permissions)
+ [EventBridge Spesifikasi pipa](#eb-pipes-identity-diff)

## Izin Amazon API Gateway
<a name="eb-api-gateway-permissions"></a>

Untuk memanggil titik akhir Amazon API Gateway Anda dengan menggunakan EventBridge aturan, tambahkan izin berikut ke kebijakan titik akhir API Gateway Anda.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "events.amazonaws.com"
            },
            "Action": "execute-api:Invoke",
            "Condition": {
                "ArnEquals": {
                "aws:SourceArn": "arn:aws:events:{{us-east-1}}:{{123456789012}}:rule/{{rule-name}}"
                }
            },
            "Resource": [
            "arn:aws:execute-api:{{us-east-1}}:{{123456789012}}:{{API-id}}/stage/GET/{{api}}"
            ]
        }
    ]
}
```

------

## CloudWatch Izin log
<a name="eb-cloudwatchlogs-permissions"></a>

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 Konsol Manajemen AWS 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 kebijakan berbasis sumber daya 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 ARN sumber daya yang sesuai.

```
{
  "Effect": "Allow",
  "Principal": {
    "Service": [
      "events.amazonaws.com",
      "delivery.logs.amazonaws.com"
    ]
  },
  "Action": [
    "logs:CreateLogStream",
    "logs:PutLogEvents"
  ],
  "Resource": "arn:aws:logs:{{region}}:{{account-id}}:log-group:/aws/events/*:*"
}
```

**Untuk membuat kebijakan sumber daya untuk CloudWatch Log menggunakan AWS CLI**
+ Pada jendela perintah, masukkan perintah berikut.

  ```
  aws logs put-resource-policy --policy-name EventBridgeToCWLogsPolicy \
  --policy-document '{"Version":"2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":["events.amazonaws.com","delivery.logs.amazonaws.com"]},"Action":["logs:CreateLogStream","logs:PutLogEvents"],"Resource":"arn:aws:logs:{{region}}:{{account-id}}:log-group:/aws/events/*:*"}]}'
  ```

Untuk informasi selengkapnya, lihat [PutResourcePolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutResourcePolicy.html)di *panduan Referensi API CloudWatch Log*.

## AWS Lambda izin
<a name="eb-lambda-permissions"></a>

Untuk menjalankan AWS Lambda fungsi Anda dengan menggunakan EventBridge aturan, tambahkan izin berikut ke kebijakan fungsi Lambda Anda.

**catatan**  
Atau, Anda dapat mengonfigurasi peran eksekusi IAM pada target dengan `lambda:InvokeFunction` izin. Resource-based kebijakan diperlukan hanya jika tidak ada peran eksekusi yang dikonfigurasi pada target.

```
{
  "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 [AddPermission](https://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html)Menggunakan [Lambda dengan Acara Terjadwal](https://docs.aws.amazon.com/lambda/latest/dg/with-scheduled-events.html) di Panduan Pengembang.AWS Lambda *

## Izin Amazon SNS
<a name="eb-sns-permissions"></a>

Untuk memungkinkan EventBridge mempublikasikan ke topik Amazon SNS, gunakan perintah `aws sns get-topic-attributes` dan perintah. `aws sns set-topic-attributes`

**catatan**  
Anda tidak dapat menggunakan `Condition` blok dalam kebijakan topik Amazon SNS untuk. EventBridge

**Untuk menambahkan izin yang memungkinkan EventBridge untuk mempublikasikan topik SNS**

1. Untuk mencantumkan atribut topik SNS, gunakan perintah berikut.

   ```
   aws sns get-topic-attributes --topic-arn "arn:aws:sns:{{region}}:{{account-id}}:{{topic-name}}"
   ```

   Contoh berikut menunjukkan hasil topik SNS 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:SourceAccount\":\"{{account-id}}\"}}}]}", 
           "TopicArn": "arn:aws:sns:{{region}}:{{account-id}}:{{topic-name}}", 
           "SubscriptionsPending": "0"
       }
   }
   ```

1. Gunakan [Konverter JSON ke string](https://tools.knowledgewalls.com/jsontostring) untuk mengonversi pernyataan berikut ke 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}}\"}
   ```

1. Tambahkan string yang Anda buat pada langkah sebelumnya ke `"Statement"`kumpulan di dalam `"Policy"` atribut.

1. 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:SourceAccount\":\"{{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 [SetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html)tindakan di *Referensi API Layanan Pemberitahuan Sederhana Amazon*.

## Izin Amazon SQS
<a name="eb-sqs-permissions"></a>

Untuk mengizinkan EventBridge aturan memanggil antrian Amazon SQS, gunakan `aws sqs get-queue-attributes` perintah dan. `aws sqs set-queue-attributes`

Jika kebijakan untuk antrean SQS kosong, Anda harus terlebih dahulu membuat kebijakan dan kemudian Anda dapat menambahkan pernyataan izin untuk itu. Antrean SQS baru memiliki kebijakan kosong.

Jika antrean SQS sudah memiliki kebijakan, Anda perlu menyalin kebijakan asli dan menggabungkannya dengan pernyataan baru untuk menambahkan pernyataan izin untuk itu.

**Untuk menambahkan izin yang memungkinkan EventBridge aturan untuk memanggil antrean SQS**

1. Untuk mencantumkan atribut antrean SQS. 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
   ```

1. 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}}"
           }
         }
       }
   ```

1. Gunakan [Konverter JSON ke string](https://tools.knowledgewalls.com/jsontostring) untuk mengonversi 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}}\"}}
   ```

1. 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}}\"}}}]}"
   }
   ```

1. 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 lebih lanjut, lihat [Amazon SQS Policy Examples](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSExamples.html) di *Panduan Developer Amazon Simple Queue Service*.

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

EventBridge Pipes tidak mendukung kebijakan berbasis sumber daya dan tidak memiliki API yang mendukung kondisi kebijakan berbasis sumber daya.

Namun, jika Anda mengonfigurasi akses pipa melalui titik akhir VPC antarmuka, titik akhir VPC tersebut mendukung kebijakan sumber daya yang memungkinkan Anda mengelola akses ke API Pipa. EventBridge Untuk informasi selengkapnya, lihat [Menggunakan Amazon EventBridge dengan titik akhir VPC Antarmuka](eb-related-service-vpc.md)