AddPermission - AWS Lambda

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

AddPermission

MemberikanLayanan AWS,Akun AWS, atau izin AWS organisasi untuk menggunakan fungsi. Anda dapat menerapkan kebijakan pada tingkat fungsi, atau menentukan pengualifikasi untuk membatasi akses ke satu versi atau alias. Jika Anda menggunakan pengualifikasi, Pemicu harus menggunakan Amazon Resource Name (ARN) penuh dari versi atau alias tersebut untuk memanggil fungsi. Catatan: Lambda tidak mendukung penambahan kebijakan ke versi $LATEST.

Untuk memberikan izin ke akun lain, tentukan ID akun sebagai Principal. Untuk memberikan izin kepada organisasi yang ditentukan dalamAWS Organizations, tentukan ID organisasi sebagaiPrincipalOrgID. UntukLayanan AWS, prinsipal adalah pengenal gaya domain yang didefinisikan oleh layanan, seperti atau. s3.amazonaws.com sns.amazonaws.com UntukLayanan AWS, Anda juga dapat menentukan ARN dari sumber daya terkait sebagai. SourceArn Jika Anda memberikan izin kepada prinsipal tanpa menentukan sumber, akun lain berpotensi mengonfigurasi sumber daya di akun mereka untuk meminta fungsi Lambda Anda.

Operasi ini menambahkan pernyataan ke kebijakan izin berbasis sumber daya untuk fungsi tersebut. Untuk informasi selengkapnya tentang kebijakan fungsi, lihat Menggunakan kebijakan berbasis sumber daya untuk Lambda.

Minta Sintaks

POST /2015-03-31/functions/FunctionName/policy?Qualifier=Qualifier HTTP/1.1 Content-type: application/json { "Action": "string", "EventSourceToken": "string", "FunctionUrlAuthType": "string", "Principal": "string", "PrincipalOrgID": "string", "RevisionId": "string", "SourceAccount": "string", "SourceArn": "string", "StatementId": "string" }

Parameter Permintaan URI

Permintaan menggunakan parameter URI berikut.

FunctionName

Nama fungsi Lambda, versi, atau alias.

Format nama
  • Nama fungsimy-function (hanya nama), my-function:v1 (dengan alias).

  • Fungsi ARN —. arn:aws:lambda:us-west-2:123456789012:function:my-function

  • ARN Sebagian —. 123456789012:function:my-function

Anda dapat menambahkan nomor versi atau alias ke salah satu format. Batas panjang hanya berlaku untuk ARN penuh. Jika Anda hanya menentukan nama fungsi, panjang nama dibatasi hingga 64 karakter.

Panjang Batasan: Panjang minimum 1. Panjang maksimum 140.

Pola: (arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?

Diperlukan: Ya

Qualifier

Tentukan versi atau alias untuk menambahkan izin ke versi fungsi yang diterbitkan.

Panjang Batasan: Panjang minimum 1. Panjang maksimum 128.

Pola: (|[a-zA-Z0-9$_-]+)

Isi Permintaan

Permintaan menerima data berikut dalam format JSON.

Action

Tindakan yang dapat digunakan prinsipal pada fungsi. Misalnya, lambda:InvokeFunction atau lambda:GetFunction.

Tipe: String

Pola: (lambda:[*]|lambda:[a-zA-Z]+|[*])

Diperlukan: Ya

EventSourceToken

Untuk fungsi Alexa Smart Home, token yang harus disediakan oleh invoker.

Jenis: String

Batasan Panjang: Panjang minimum 0. Panjang maksimum 256.

Pola: [a-zA-Z0-9._\-]+

Diperlukan: Tidak

FunctionUrlAuthType

Jenis otentikasi yang digunakan URL fungsi Anda. Setel ke AWS_IAM jika Anda ingin membatasi akses ke pengguna yang diautentikasi saja. Setel ke NONE jika Anda ingin melewati autentikasi IAM untuk membuat titik akhir publik. Untuk informasi selengkapnya, lihat Model keamanan dan autentikasi untuk URL fungsi Lambda.

Jenis: String

Nilai yang Valid: NONE | AWS_IAM

Diperlukan: Tidak

Principal

Layanan AWSAtau Akun AWS yang memanggil fungsi. Jika Anda menentukan layanan, gunakan SourceArn atau SourceAccount untuk membatasi orang yang dapat memanggil fungsi melalui layanan tersebut.

Tipe: String

Pola: [^\s]+

Diperlukan: Ya

PrincipalOrgID

Pengenal untuk organisasi Anda diAWS Organizations. Gunakan ini untuk memberikan izin kepada semua yang ada di Akun AWS bawah organisasi ini.

Jenis: String

Batas Panjang: Panjang minimum 12. Panjang maksimum 34.

Pola: ^o-[a-z0-9]{10,32}$

Diperlukan: Tidak

RevisionId

Perbarui kebijakan hanya jika ID revisi cocok dengan ID yang ditentukan. Gunakan opsi ini untuk menghindari mengubah kebijakan yang sudah berubah sejak terakhir kali Anda membacanya.

Tipe: String

Wajib: Tidak

SourceAccount

UntukLayanan AWS, ID Akun AWS yang memiliki sumber daya. Gunakan ini bersama-sama dengan SourceArn untuk memastikan bahwa akun yang ditentukan memiliki sumber daya. Pemilik dapat menghapus bucket Amazon S3 dan dibuat kembali oleh akun lain.

Tipe: String

Panjang Batasan: Panjang maksimum 12.

Pola: \d{12}

Diperlukan: Tidak

SourceArn

UntukLayanan AWS, ARN dari AWS sumber daya yang memanggil fungsi. Misalnya, bucket Amazon S3 atau topik Amazon SNS.

Perhatikan bahwa Lambda mengonfigurasi perbandingan menggunakan operator. StringLike

Jenis: String

Pola: arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)

Diperlukan: Tidak

StatementId

Pengidentifikasi pernyataan yang membedakan pernyataan dari lainnya dalam kebijakan yang sama.

Tipe: String

Panjang Batasan: Panjang minimum 1. Panjang maksimum 100.

Pola: ([a-zA-Z0-9-_]+)

Diperlukan: Ya

Sintaksis Respons

HTTP/1.1 201 Content-type: application/json { "Statement": "string" }

Elemen Respons

Jika tindakan berhasil, layanan mengirimkan kembali respon HTTP 201.

Layanan mengembalikan data berikut dalam format JSON.

Statement

Pernyataan izin yang ditambahkan ke kebijakan fungsi.

Jenis: String

Kesalahan

Untuk informasi tentang kesalahan yang umum untuk semua tindakan, lihat Kesalahan Umum.

InvalidParameterValueException

Salah satu parameter dalam permintaan tidak valid.

Kode Status HTTP: 400

PolicyLengthExceededException

Kebijakan izin untuk sumber daya terlalu besar. Untuk informasi lebih lanjut, lihat Kuota Lambda.

Kode Status HTTP: 400

PreconditionFailedException

Yang RevisionId disediakan tidak cocok dengan yang terbaru RevisionId untuk fungsi atau alias Lambda. Panggil GetFunction atau operasi GetAlias API untuk mengambil yang terbaru RevisionId untuk sumber daya Anda.

Kode Status HTTP: 412

ResourceConflictException

Sumber daya sudah ada, atau operasi lain sedang berlangsung.

Kode Status HTTP: 409

ResourceNotFoundException

Sumber daya yang ditentukan dalam permintaan tidak ada.

Kode Status HTTP: 404

ServiceException

Layanan AWS Lambda mengalami kesalahan internal.

Kode Status HTTP: 500

TooManyRequestsException

Batas throughput permintaan terlampaui. Untuk informasi lebih lanjut, lihat Kuota Lambda.

Kode Status HTTP: 429

Lihat Juga

Untuk informasi selengkapnya tentang penggunaan API ini di salah satu AWS SDK khusus bahasa, lihat berikut ini: