View a markdown version of this page

Fine-tuning bagian Sumber Daya dan Ketentuan kebijakan - AWS Lambda

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

Fine-tuning bagian Sumber Daya dan Ketentuan kebijakan

Anda dapat membatasi cakupan izin pengguna dengan menentukan sumber daya dan kondisi dalam kebijakan AWS Identity and Access Management (IAM). Setiap tindakan dalam kebijakan mendukung kombinasi jenis sumber daya dan kondisi yang bervariasi tergantung pada perilaku tindakan.

Setiap pernyataan kebijakan IAM memberikan izin untuk tindakan yang dilakukan pada sumber daya. Ketika tindakan tersebut tidak dilakukan berdasarkan sumber daya yang disebutkan, atau ketika Anda memberikan izin untuk melakukan tindakan pada semua sumber daya, nilai sumber daya dalam kebijakan tersebut adalah wildcard (*). Untuk banyak tindakan, Anda dapat membatasi sumber daya yang dapat dimodifikasi pengguna dengan menentukan Nama Sumber Daya Amazon (ARN) sumber daya, atau pola ARN yang cocok dengan beberapa sumber daya.

Berdasarkan jenis sumber daya, desain umum tentang cara membatasi ruang lingkup tindakan adalah sebagai berikut:

  • Fungsi — Tindakan yang beroperasi pada fungsi dapat dibatasi untuk fungsi tertentu berdasarkan fungsi, versi, atau alias ARN.

  • Pemetaan sumber peristiwa — Tindakan dapat dibatasi ke sumber pemetaan sumber peristiwa tertentu oleh ARN. Pemetaan sumber peristiwa selalu dikaitkan dengan fungsi. Anda juga dapat menggunakan lambda:FunctionArn kondisi untuk membatasi tindakan dengan fungsi terkait.

  • Layers—Tindakan yang terkait dengan penggunaan lapisan dan izin bertindak pada versi lapisan.

  • Konfigurasi penandatanganan kode—Tindakan dapat dibatasi ke sumber daya konfigurasi penandatanganan kode tertentu oleh ARN.

  • Tag—Gunakan kondisi tag standar. Untuk informasi selengkapnya, lihat Menggunakan kontrol akses berbasis atribut di Lambda.

Untuk membatasi izin berdasarkan sumber daya, tentukan sumber daya berdasarkan ARN.

Format ARN sumber daya Lambda
  • Fungsi – arn:aws:lambda:us-west-2:123456789012:function:my-function

  • Versi fungsi – arn:aws:lambda:us-west-2:123456789012:function:my-function:1

  • Alias fungsi – arn:aws:lambda:us-west-2:123456789012:function:my-function:TEST

  • Eksekusi tahan lama - arn:aws:lambda:us-west-2:123456789012:function:my-function:1/durable-execution/execution-name/execution-id

  • Pemetaan sumber kejadian – arn:aws:lambda:us-west-2:123456789012:event-source-mapping:fa123456-14a1-4fd2-9fec-83de64ad683de6d47

  • Lapisan – arn:aws:lambda:us-west-2:123456789012:layer:my-layer

  • Versi lapisan – arn:aws:lambda:us-west-2:123456789012:layer:my-layer:1

  • Konfigurasi penandatanganan kode - arn:aws:lambda:us-west-2:123456789012:code-signing-config:my-csc

Misalnya, kebijakan berikut memungkinkan pengguna Akun AWS 123456789012 untuk memanggil fungsi bernama my-function di Wilayah AS Barat (Oregon) AWS .

contoh aktifkan kebijakan fungsi
JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Invoke", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-west-2:123456789012:function:my-function" } ] }

Ini adalah kasus khusus di mana pengidentifikasi tindakan (lambda:InvokeFunction) berbeda dari operasi API (Aktifkan). Untuk tindakan lainnya, pengidentifikasi tindakan adalah nama operasi yang diawali dengan lambda:.

Memahami bagian Kondisi dalam kebijakan

Kondisi adalah elemen kebijakan opsional yang menerapkan logika tambahan untuk menentukan apakah suatu tindakan diperbolehkan. Selain kondisi umum yang didukung semua tindakan, Lambda mendefinisikan jenis kondisi yang dapat Anda gunakan untuk membatasi nilai parameter tambahan pada beberapa tindakan.

Misalnya, lambda:Principal kondisi ini memungkinkan Anda membatasi layanan atau akun yang dapat diberikan pengguna akses pemanggilan pada kebijakan berbasis sumber daya fungsi. Kebijakan berikut memungkinkan pengguna memberikan izin ke topik Amazon Simple Notification Service (Amazon SNS) untuk memanggil fungsi bernama. test

contoh mengelola izin kebijakan fungsi
JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ManageFunctionPolicy", "Effect": "Allow", "Action": [ "lambda:AddPermission", "lambda:RemovePermission" ], "Resource": "arn:aws:lambda:us-west-2:123456789012:function:test:*", "Condition": { "StringEquals": { "lambda:Principal": "sns.amazonaws.com" } } } ] }

Kondisi mensyaratkan bahwa prinsipal adalah Amazon SNS dan bukan layanan atau akun lain. Pola sumber daya mengharuskan nama fungsi test dan mencakup nomor versi atau alias. Misalnya, test:v1.

Untuk informasi selengkapnya tentang sumber daya dan kondisi untuk Lambda dan AWS layanan lainnya, lihat T indakan, sumber daya, dan kunci kondisi untuk AWS layanan di Refer ensi O torisasi Layanan.

Fungsi referensi di bagian Sumber daya kebijakan

Anda mereferensikan fungsi Lambda dalam pernyataan kebijakan menggunakan Nama Sumber Daya Amazon (ARN). Format fungsi ARN tergantung pada apakah Anda mereferensikan seluruh fungsi (tidak memenuhi syarat) atau versi fungsi atau alias (memenuhi syarat).

Saat melakukan panggilan API Lambda, pengguna dapat menentukan versi atau alias dengan meneruskan versi ARN atau alias ARN di GetFunction FunctionName parameter, atau dengan menetapkan nilai dalam GetFunction Qualifier parameter. Lambda membuat keputusan otorisasi dengan membandingkan elemen sumber daya dalam kebijakan IAM dengan panggilan API FunctionName dan Qualifier diteruskan. Jika ada ketidakcocokan, Lambda menolak permintaan tersebut.

Apakah Anda mengizinkan atau menolak tindakan pada fungsi Anda, Anda harus menggunakan jenis ARN fungsi yang benar dalam pernyataan kebijakan Anda untuk mencapai hasil yang Anda harapkan. Misalnya, jika kebijakan Anda mereferensikan ARN yang tidak memenuhi syarat, Lambda menerima permintaan yang mereferensikan ARN yang tidak memenuhi syarat tetapi menolak permintaan yang mereferensikan ARN yang memenuhi syarat.

catatan

Anda tidak dapat menggunakan karakter wildcard (*) untuk mencocokkan ID akun. Untuk informasi selengkapnya tentang sintaks yang diterima, lihat referensi kebijakan JSON IAM di Panduan Pengguna IAM.

contoh mengizinkan pemanggilan ARN yang tidak memenuhi syarat
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction" } ] }

Jika kebijakan Anda mereferensikan ARN yang memenuhi syarat tertentu, Lambda menerima permintaan yang mereferensikan ARN tersebut tetapi menolak permintaan yang merujuk ARN yang tidak memenuhi syarat atau ARN lain yang memenuhi syarat, misalnya,. myFunction:2

contoh mengizinkan pemanggilan ARN yang memenuhi syarat tertentu
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction:1" } ] }

Jika kebijakan Anda mereferensikan penggunaan ARN yang memenuhi syarat:*, Lambda menerima ARN yang memenuhi syarat tetapi menolak permintaan yang merujuk ARN yang tidak memenuhi syarat.

contoh mengizinkan pemanggilan ARN yang memenuhi syarat
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction:*" } ] }

Jika kebijakan Anda merujuk pada penggunaan ARN apa pun*, Lambda menerima ARN yang memenuhi syarat atau tidak memenuhi syarat.

contoh mengizinkan pemanggilan ARN yang memenuhi syarat atau tidak memenuhi syarat
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction*" } ] }

Merujuk eksekusi tahan lama di bagian Sumber daya kebijakan

Eksekusi tahan lama adalah sub-sumber daya dari versi fungsi. Untuk struktur ARN eksekusi tahan lama dan panduan kebijakan, lihatIzin IAM untuk fungsi tahan lama.

Anda dapat memanggil fungsi tahan lama hanya dengan nama fungsi atau ARN yang memenuhi syarat, sehingga kebijakan yang memungkinkan pemanggilan fungsi tahan lama harus sesuai dengan ARN yang memenuhi syarat. Untuk informasi selengkapnya, lihat ARNs Persyaratan yang memenuhi syarat.

Jika kebijakan Anda mereferensikan fungsi ARN yang tidak memenuhi syarat, Lambda menolak permintaan untuk tindakan eksekusi yang tahan lama. ARN yang tidak memenuhi syarat tidak pernah cocok dengan ARN eksekusi yang tahan lama.

contoh Kebijakan yang tidak memberikan akses ke eksekusi yang tahan lama
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:GetDurableExecution", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:myDurableFunction" } ] }

Jika kebijakan Anda mereferensikan fungsi ARN:*, Lambda menerima permintaan untuk eksekusi tahan lama dari setiap versi.

contoh Mengizinkan akses ke eksekusi tahan lama dari versi apa pun
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:GetDurableExecution", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:myDurableFunction:*" } ] }

Jika kebijakan Anda mereferensikan fungsi ARN:1/durable-execution/*, Lambda hanya menerima permintaan untuk eksekusi tahan lama versi 1.

contoh Mengizinkan akses ke eksekusi tahan lama dari versi tertentu
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:GetDurableExecution", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:myDurableFunction:1/durable-execution/*" } ] }
Pola alias tidak pernah cocok dengan ARN eksekusi yang tahan lama

Nama alias tidak pernah muncul di ARN eksekusi tahan lama. Pola sumber daya seperti my-function:prod/durable-execution/* tidak pernah cocok dengan eksekusi tahan lama karena Lambda menyelesaikan alias ke nomor versi saat fungsi dieksekusi.

Lambda mengotorisasi lambda:ListDurableExecutionsByFunction tindakan terhadap fungsi ARN dari permintaan, bukan ARN eksekusi yang tahan lama. Aturan berikut berlaku untuk pencocokan ARN:

  • Kebijakan yang memberikan fungsi yang tidak memenuhi syarat ARN hanya cocok dengan permintaan yang menggunakan nama fungsi yang tidak memenuhi syarat.

  • Kebijakan yang memberikan ARN yang memenuhi syarat hanya akan mencocokkan permintaan yang menggunakan nama fungsi yang memenuhi syarat.

contoh Mengizinkan daftar eksekusi tahan lama dengan salah satu bentuk nama
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:ListDurableExecutionsByFunction", "Resource": [ "arn:aws:lambda:us-west-2:123456789012:function:myDurableFunction", "arn:aws:lambda:us-west-2:123456789012:function:myDurableFunction:*" ] } ] }

Tindakan IAM yang didukung dan perilaku fungsi

Tindakan menentukan apa yang dapat diizinkan melalui kebijakan IAM. Untuk daftar tindakan yang didukung di Lambda, lihat Tindakan, sumber daya, dan kunci kondisi untuk AWS Lambda di Referensi Otorisasi Layanan. Dalam kebanyakan kasus, ketika tindakan IAM mengizinkan tindakan API Lambda, nama tindakan IAM sama dengan nama tindakan API Lambda, dengan pengecualian berikut:

Tindakan API Tindakan IAM
Memanggil lambda:InvokeFunction

GetLayerVersion

GetLayerVersionByArn

lambda:GetLayerVersion

Selain sumber daya dan kondisi yang ditentukan dalam Referensi O torisasi Layanan, Lambda mendukung sumber daya dan kondisi berikut untuk tindakan tertentu. Banyak dari ini terkait dengan fungsi referensi di bagian sumber daya kebijakan. Tindakan yang beroperasi pada fungsi dapat dibatasi pada fungsi tertentu berdasarkan fungsi, versi, atau alias ARN, seperti yang dijelaskan dalam tabel berikut.

Tindakan Sumber Daya Kondisi

AddPermission

RemovePermission

Memanggil (Izin: lambda:InvokeFunction)

Versi fungsi

Alias fungsi

N/A

ListDurableExecutionsByFunction

Versi fungsi

N/A

UpdateFunctionConfiguration

N/A

lambda:CodeSigningConfigArn

CreateFunctionUrlConfig

DeleteFunctionUrlConfig

GetFunctionUrlConfig

UpdateFunctionUrlConfig

Alias fungsi

N/A