Memberi fungsi Lambda Layanan AWS - AWS Lambda

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

Memberi fungsi Lambda Layanan AWS

Saat Anda menggunakan AWS layanan untuk memicu fungsi, Anda 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. Pernyataan kebijakan berbasis sumber daya yang paling sederhana memungkinkan layanan untuk memicu fungsi. Perintah berikut memberikan Amazon Simple Notification Service izin untuk memicu 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 API tindakan Invoke pada fungsi tersebut, tetapi tidak membatasi SNS topik Amazon yang memicu invokasi tersebut. Untuk memastikan fungsi Anda hanya di-invokasi oleh sumber daya tertentu, tentukan Amazon Resource Name (ARN) sumber daya dengan source-arn opsi tersebut. Perintah berikut ini hanya memungkinkan Amazon SNS untuk memicu 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 sumber ARN yang berisi ID akun di dalamnya, hal tersebut bukanlah masalah. Namun, untuk Amazon S3, sumbernya adalah bucket yang ARN tidak memiliki 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