Bekerja dengan kebijakan berbasis sumber daya di Lambda IAM - AWS Lambda

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

Bekerja dengan kebijakan berbasis sumber daya di Lambda IAM

Lambda mendukung kebijakan izin berbasis sumber daya untuk fungsi dan lapisan Lambda. Anda dapat menggunakan kebijakan berbasis sumber daya untuk memberikan akses ke AWS akun, organisasi, atau layanan lain. Kebijakan berbasis sumber daya berlaku untuk satu versi fungsi, versi, alias, atau lapisan.

Console
Untuk menampilkan kebijakan fungsi berbasis sumber daya
  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih fungsi.

  3. Pilih Konfigurasi, lalu pilih Izin.

  4. Gulir ke bawah ke Kebijakan berbasis sumber daya, lalu pilih Lihat dokumen kebijakan. Kebijakan berbasis sumber daya menunjukkan izin yang diterapkan saat akun atau AWS layanan lain mencoba mengakses fungsi tersebut. Contoh berikut menunjukkan pernyataan yang memungkinkan Amazon S3 memicu fungsi bernama my-function untuk bucket bernama amzn-s3-demo-bucket dalam akun 123456789012.

    contoh Kebijakan berbasis sumber daya
    { "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "lambda-allow-s3-my-function", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" }, "ArnLike": { "AWS:SourceArn": "arn:aws:s3:::amzn-s3-demo-bucket" } } } ] }
AWS CLI

Untuk melihat kebijakan berbasis sumber daya dari fungsi, gunakan perintah get-policy.

aws lambda get-policy \ --function-name my-function \ --output text

Anda akan melihat output berikut:

{"Version":"2012-10-17","Id":"default","Statement":[{"Sid":"sns","Effect":"Allow","Principal":{"Service":"s3.amazonaws.com"},"Action":"lambda:InvokeFunction","Resource":"arn:aws:lambda:us-east-2:123456789012:function:my-function","Condition":{"ArnLike":{"AWS:SourceArn":"arn:aws:sns:us-east-2:123456789012:lambda*"}}}]} 7c681fc9-b791-4e91-acdf-eb847fdaa0f0

Untuk versi dan alias, tambahkan nomor versi atau alias di akhir nama fungsi.

aws lambda get-policy --function-name my-function:PROD

Untuk menghapus izin dari fungsi, gunakan remove-permission.

aws lambda remove-permission \ --function-name example \ --statement-id sns

Gunakan perintah get-layer-version-policy untuk melihat izin pada lapisan.

aws lambda get-layer-version-policy \ --layer-name my-layer \ --version-number 3 \ --output text

Anda akan melihat output berikut:

b0cd9796-d4eb-4564-939f-de7fe0b42236 {"Sid":"engineering-org","Effect":"Allow","Principal":"*","Action":"lambda:GetLayerVersion","Resource":"arn:aws:lambda:us-west-2:123456789012:layer:my-layer:3","Condition":{"StringEquals":{"aws:PrincipalOrgID":"o-t194hfs8cz"}}}"

Gunakan remove-layer-version-permission untuk menghapus pernyataan dari kebijakan.

aws lambda remove-layer-version-permission --layer-name my-layer --version-number 3 --statement-id engineering-org

APITindakan yang didukung

APITindakan Lambda berikut mendukung kebijakan berbasis sumber daya: