

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

# Memberikan akses fungsi Lambda ke Layanan AWS
<a name="permissions-function-services"></a>

Saat Anda [menggunakan AWS layanan untuk menjalankan fungsi, Anda](lambda-services.md) memberikan izin dalam pernyataan tentang kebijakan berbasis sumber daya. Anda dapat menerapkan pernyataan ke seluruh fungsi, atau membatasi pernyataan ke satu versi atau alias.

**catatan**  
Saat Anda menambahkan pemicu ke fungsi Anda dengan konsol Lambda, konsol memperbarui kebijakan berbasis sumber daya fungsi untuk memungkinkan layanan memicunya. Untuk memberikan izin ke akun atau layanan lain yang tidak tersedia di konsol Lambda, Anda dapat menggunakan AWS CLI.

Tambahkan pernyataan dengan perintah [add-permission](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/add-permission.html). Pernyataan kebijakan berbasis sumber daya yang paling sederhana memungkinkan layanan untuk memicu fungsi. Perintah berikut memberikan izin Amazon Simple Notification Service untuk memanggil fungsi bernama. `my-function`

```
aws lambda add-permission \
  --function-name my-function \
  --action lambda:InvokeFunction \
  --statement-id sns \
  --principal sns.amazonaws.com \
  --output text
```

Anda akan melihat output berikut:

```
{"Sid":"sns","Effect":"Allow","Principal":{"Service":"sns.amazonaws.com"},"Action":"lambda:InvokeFunction","Resource":"arn:aws:lambda:us-east-2:123456789012:function:my-function"}
```

Ini memungkinkan Amazon SNS memanggil tindakan [Invoke](https://docs.aws.amazon.com/lambda/latest/api/API_Invoke.html) API pada fungsi, tetapi tidak membatasi topik Amazon SNS yang memicu pemanggilan. Untuk memastikan fungsi Anda hanya di-invokasi oleh sumber daya tertentu, tentukan Amazon Resource Name (ARN) sumber daya dengan opsi `source-arn`. Perintah berikut ini hanya memungkinkan Amazon SNS untuk melakukan invokasi fungsi untuk berlangganan ke topik bernama `my-topic`.

```
aws lambda add-permission \
  --function-name my-function \
  --action lambda:InvokeFunction \
  --statement-id sns-my-topic \
  --principal sns.amazonaws.com \
  --source-arn arn:aws:sns:us-east-2:123456789012:my-topic
```

Beberapa layanan dapat melakukan invokasi fungsi di akun lain. Jika Anda menentukan ARN sumber yang berisi ID akun Anda di dalamnya, hal tersebut bukanlah masalah. Namun, untuk Amazon S3, sumbernya adalah bucket dengan ARN tanpa ID akun di dalamnya. Anda mungkin bisa menghapus bucket, dan akun lain dapat membuat bucket dengan nama yang sama. Gunakan opsi `source-account` dengan ID akun Anda untuk memastikan hanya sumber daya di akun Anda yang dapat melakukan invokasi fungsi.

```
aws lambda add-permission \
  --function-name my-function \
  --action lambda:InvokeFunction \
  --statement-id s3-account \
  --principal s3.amazonaws.com \
  --source-arn arn:aws:s3:::amzn-s3-demo-bucket \
  --source-account 123456789012
```