Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kontrol akses ke fungsi Lambda URLs
catatan
Mulai Oktober 2025, fungsi baru URLs akan membutuhkan keduanya lambda:InvokeFunctionUrl dan lambda:InvokeFunction izin.
Anda dapat mengontrol akses ke fungsi Lambda URLs menggunakan AuthTypeparameter yang dikombinasikan dengan kebijakan berbasis sumber daya yang dilampirkan ke fungsi spesifik Anda. Konfigurasi kedua komponen ini menentukan siapa yang dapat memanggil atau melakukan tindakan administratif lainnya pada URL fungsi Anda.
AuthTypeParameter menentukan cara Lambda mengautentikasi atau mengotorisasi permintaan ke URL fungsi Anda. Saat Anda mengonfigurasi URL fungsi Anda, Anda harus menentukan salah satu AuthType opsi berikut:
-
AWS_IAM— Lambda menggunakan AWS Identity and Access Management (IAM) untuk mengautentikasi dan mengotorisasi permintaan berdasarkan kebijakan identitas kepala sekolah IAM dan kebijakan berbasis sumber daya fungsi. Pilih opsi ini jika Anda hanya ingin pengguna dan peran yang diautentikasi untuk memanggil fungsi Anda menggunakan URL fungsi.
-
NONE— Lambda tidak melakukan otentikasi apa pun sebelum menjalankan fungsi Anda. Namun, kebijakan berbasis sumber daya fungsi Anda selalu berlaku dan harus memberikan akses publik sebelum URL fungsi Anda dapat menerima permintaan. Pilih opsi ini untuk mengizinkan akses publik yang tidak diautentikasi ke URL fungsi Anda.
Untuk wawasan tambahan tentang keamanan, Anda dapat menggunakan AWS Identity and Access Management Access Analyzer untuk mendapatkan analisis komprehensif tentang akses eksternal ke URL fungsi Anda. IAM Access Analyzer juga memantau izin baru atau yang diperbarui pada fungsi Lambda Anda untuk membantu Anda mengidentifikasi izin yang memberikan akses publik dan lintas akun. Anda dapat menggunakan IAM Access Analyzer tanpa biaya. Untuk memulai dengan IAM Access Analyzer, lihat Menggunakan AWS IAM Access Analyzer.
Halaman ini berisi contoh kebijakan berbasis sumber daya untuk kedua jenis autentikasi, dan cara membuat kebijakan ini menggunakan AddPermissionoperasi API atau konsol Lambda. Untuk informasi tentang cara memanggil URL fungsi setelah menyiapkan izin, lihat. Memanggil fungsi Lambda URLs
Topik
Menggunakan tipe AWS_IAM autentikasi
Jika Anda memilih jenis AWS_IAM autentikasi, pengguna yang perlu memanggil URL fungsi Lambda Anda harus memiliki izin dan. lambda:InvokeFunctionUrl lambda:InvokeFunction Bergantung pada siapa yang membuat permintaan pemanggilan, Anda mungkin harus memberikan izin ini menggunakan kebijakan berbasis sumber daya.
Jika prinsipal yang membuat permintaan Akun AWS sama dengan URL fungsi, maka prinsipal harus memiliki lambda:InvokeFunctionUrl dan lambda:InvokeFunction izin dalam kebijakan berbasis identitas mereka, atau memiliki izin yang diberikan kepada mereka dalam kebijakan berbasis sumber daya fungsi. Dengan kata lain, kebijakan berbasis sumber daya bersifat opsional jika pengguna sudah memiliki lambda:InvokeFunctionUrl dan lambda:InvokeFunction izin dalam kebijakan berbasis identitas mereka. Evaluasi kebijakan mengikuti aturan yang diuraikan dalam logika evaluasi kebijakan.
Jika prinsipal yang membuat permintaan berada di akun yang berbeda, maka prinsipal harus memiliki kebijakan berbasis identitas yang memberi mereka lambda:InvokeFunctionUrl dan izin serta lambda:InvokeFunction izin yang diberikan kepada mereka dalam kebijakan berbasis sumber daya pada fungsi yang mereka coba panggil. Evaluasi kebijakan mengikuti aturan yang diuraikan dalam Menentukan apakah permintaan lintas akun diperbolehkan.
Kebijakan berbasis sumber daya berikut memungkinkan example peran Akun AWS 444455556666 untuk memanggil URL fungsi yang terkait dengan fungsi. my-function Tombol InvokedViaFunctionUrl konteks lambda: membatasi lambda:InvokeFunction tindakan untuk berfungsi panggilan URL. Ini berarti bahwa prinsipal harus menggunakan URL fungsi untuk memanggil fungsi. Jika Anda tidak menyertakanlambda:InvokedViaFunctionUrl, prinsipal dapat memanggil fungsi Anda melalui metode pemanggilan lainnya, selain URL fungsi.
contoh — Kebijakan berbasis sumber daya lintas akun
Anda dapat membuat kebijakan berbasis sumber daya ini melalui konsol menggunakan langkah-langkah berikut:
Untuk memberikan izin pemanggilan URL ke akun lain (konsol)
-
Buka halaman Fungsi
di konsol Lambda. -
Pilih nama fungsi yang ingin Anda berikan izin pemanggilan URL.
-
Pilih tab Konfigurasi, lalu pilih Izin.
-
Di bawah Kebijakan berbasis sumber daya, pilih Tambahkan izin.
-
Pilih URL Fungsi.
-
Untuk jenis Auth, pilih AWS_IAM.
-
Masukkan ID Pernyataan untuk pernyataan kebijakan Anda.
-
Untuk Principal, masukkan ID akun atau Nama Sumber Daya Amazon (ARN) pengguna atau peran yang ingin Anda berikan izin. Sebagai contoh:
444455556666. -
Pilih Simpan.
Atau, Anda dapat membuat kebijakan ini menggunakan perintah add-permissionlambda:InvokeFunction pernyataan lambda:InvokeFunctionUrl dan secara terpisah. Contoh:
aws lambda add-permission --function-name my-function \ --statement-id UrlPolicyInvokeURL \ --actionlambda:InvokeFunctionUrl\ --principal 444455556666 \ --function-url-auth-type AWS_IAM
aws lambda add-permission --function-name my-function \ --statement-id UrlPolicyInvokeFunction \ --actionlambda:InvokeFunction\ --principal 444455556666 \ --invoked-via-function-url
Menggunakan tipe NONE autentikasi
penting
Ketika jenis autentikasi URL fungsi Anda NONE dan Anda memiliki kebijakan berbasis sumber daya yang memberikan akses publik, setiap pengguna yang tidak diautentikasi dengan URL fungsi Anda dapat memanggil fungsi Anda.
Dalam beberapa kasus, Anda mungkin ingin URL fungsi Anda menjadi publik. Misalnya, Anda mungkin ingin menyajikan permintaan yang dibuat langsung dari browser web. Untuk mengizinkan akses publik ke URL fungsi Anda, pilih jenis NONE autentikasi.
Jika Anda memilih jenis NONE autentikasi, Lambda tidak menggunakan IAM untuk mengautentikasi permintaan ke URL fungsi Anda. Namun, fungsi Anda harus memiliki kebijakan berbasis sumber daya yang memungkinkan dan. lambda:InvokeFunctionUrl lambda:InvokeFunction Saat Anda membuat URL fungsi dengan jenis autentikasi NONE menggunakan konsol atau AWS Serverless Application Model (AWS SAM), Lambda secara otomatis membuat kebijakan berbasis sumber daya untuk Anda. Jika Anda menggunakan AWS CLI, AWS CloudFormation, atau Lambda API secara langsung, Anda harus menambahkan sendiri kebijakan tersebut.
Sebaiknya sertakan kunci InvokedViaFunctionUrl konteks lambda: dalam kebijakan berbasis sumber daya saat menggunakan jenis autentikasi. NONE Kunci konteks ini memastikan bahwa fungsi hanya dapat dipanggil melalui URL fungsi dan tidak melalui metode pemanggilan lainnya.
Perhatikan hal berikut tentang kebijakan ini:
-
Semua entitas dapat menelepon
lambda:InvokeFunctionUrldanlambda:InvokeFunction. Ini berarti bahwa siapa pun yang memiliki URL fungsi Anda dapat memanggil fungsi Anda. -
Nilai kunci
lambda:FunctionUrlAuthTypekondisi adalahNONE. Ini berarti bahwa pernyataan kebijakan mengizinkan akses hanya jika jenis autentikasi URL fungsi Anda jugaNONE. -
lambda:InvokedViaFunctionUrlKondisi ini memastikan bahwa fungsi hanya dapat dipanggil melalui URL fungsi dan tidak melalui metode pemanggilan lainnya.
contoh — Kebijakan berbasis sumber daya default untuk jenis autentikasi NONE
Buat kebijakan berbasis sumber daya menggunakan AWS CLI
Kecuali Anda menggunakan konsol atau AWS SAM untuk membuat URL fungsi dengan jenis autentikasiNONE, Anda harus menambahkan sendiri kebijakan berbasis sumber daya. Gunakan perintah berikut untuk membuat pernyataan untuk lambda:InvokeFunctionUrl dan lambda:InvokeFunction izin. Setiap pernyataan harus ditambahkan dalam perintah terpisah.
aws lambda add-permission \ --function-name UrlTestFunction \ --statement-id UrlPolicyInvokeURL \ --actionlambda:InvokeFunctionUrl\ --principal * \ --function-url-auth-type NONE
aws lambda add-permission \ --function-name UrlTestFunction \ --statement-id UrlPolicyInvokeFunction \ --actionlambda:InvokeFunction\ --principal * \ --invoked-via-function-url
catatan
Jika Anda menghapus URL fungsi dengan jenis autentikasiNONE, Lambda tidak secara otomatis menghapus kebijakan berbasis sumber daya terkait. Jika Anda ingin menghapus kebijakan ini, Anda harus melakukannya secara manual.
Jika kebijakan berbasis sumber daya fungsi tidak memberikan lambda:invokeFunctionUrl dan lambda:InvokeFunction izin, pengguna akan mendapatkan kode kesalahan 403 Forbidden saat mereka mencoba memanggil URL fungsi Anda. Ini akan terjadi bahkan jika URL fungsi menggunakan jenis NONE autentikasi.
Tata kelola dan kontrol akses
Selain izin pemanggilan URL fungsi, Anda juga dapat mengontrol akses pada tindakan yang digunakan untuk mengonfigurasi fungsi. URLs Lambda mendukung tindakan kebijakan IAM berikut untuk fungsi: URLs
-
lambda:InvokeFunctionUrl— Memanggil fungsi Lambda menggunakan URL fungsi. -
lambda:CreateFunctionUrlConfig— Buat URL fungsi dan aturAuthType. -
lambda:UpdateFunctionUrlConfig— Perbarui konfigurasi URL fungsi dan nyaAuthType. -
lambda:GetFunctionUrlConfig— Lihat detail URL fungsi. -
lambda:ListFunctionUrlConfigs— Daftar konfigurasi URL fungsi. -
lambda:DeleteFunctionUrlConfig— Hapus URL fungsi.
Untuk mengizinkan atau menolak akses URL fungsi ke AWS entitas lain, sertakan tindakan ini dalam kebijakan IAM. Misalnya, kebijakan berikut memberikan example peran dalam Akun AWS
444455556666 izin untuk memperbarui URL fungsi untuk fungsi my-function di akun. 123456789012
contoh kebijakan URL fungsi lintas akun
Kunci syarat
Untuk kontrol akses berbutir halus atas fungsi Anda URLs, gunakan tombol konteks kondisi. Lambda mendukung tombol konteks berikut untuk fungsi: URLs
-
lambda:FunctionUrlAuthType— Mendefinisikan nilai enum yang menjelaskan jenis autentikasi yang digunakan URL fungsi Anda. Nilai dapat berupaAWS_IAMatauNONE, salah satu. -
lambda:InvokedViaFunctionUrl— Membatasilambda:InvokeFunctiontindakan untuk panggilan yang dilakukan melalui URL fungsi. Ini memastikan bahwa fungsi hanya dapat dipanggil menggunakan URL fungsi dan tidak melalui metode pemanggilan lainnya. Untuk contoh kebijakan berbasis sumber daya yang menggunakan kuncilambda:InvokedViaFunctionUrlkonteks, lihat contoh di dan. Menggunakan tipe AWS_IAM autentikasi Menggunakan tipe NONE autentikasi
Anda dapat menggunakan kunci konteks ini dalam kebijakan yang terkait dengan fungsi Anda. Misalnya, Anda mungkin ingin membatasi siapa yang dapat membuat perubahan konfigurasi pada fungsi URLs Anda. Untuk menolak semua UpdateFunctionUrlConfig permintaan ke fungsi apa pun dengan jenis autentikasi URLNONE, Anda dapat menentukan kebijakan berikut:
contoh kebijakan URL fungsi dengan penolakan eksplisit
Untuk memberikan example peran dalam Akun AWS 444455556666 izin untuk membuat CreateFunctionUrlConfig dan UpdateFunctionUrlConfig permintaan pada fungsi dengan jenis autentikasi URLAWS_IAM, Anda dapat menentukan kebijakan berikut:
contoh kebijakan URL fungsi dengan izin eksplisit
Anda juga dapat menggunakan kunci kondisi ini dalam kebijakan kontrol layanan (SCP). Gunakan SCPs untuk mengelola izin di seluruh organisasi di AWS Organizations. Misalnya, untuk menolak pengguna membuat atau memperbarui fungsi URLs yang menggunakan apa pun selain jenis AWS_IAM autentikasi, gunakan kebijakan kontrol layanan berikut: