Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Batasi akses ke asal URL AWS Lambda fungsi
CloudFront menyediakan kontrol akses asal (OAC) untuk membatasi akses ke asal URL fungsi Lambda.
Buat OAC baru
Selesaikan langkah-langkah yang dijelaskan dalam topik berikut untuk menyiapkan OAC baru. CloudFront
catatan
Jika Anda menggunakan PUT
atau POST
metode dengan URL fungsi Lambda Anda, pengguna Anda harus menyertakan nilai hash payload di x-amz-content-sha256
header saat mengirim permintaan ke. CloudFront Lambda tidak mendukung muatan yang tidak ditandatangani.
Prasyarat
Sebelum Anda membuat dan mengatur OAC, Anda harus memiliki CloudFront distribusi dengan URL fungsi Lambda sebagai asal. Untuk informasi selengkapnya, lihat Gunakan fungsi Lambda URL.
Berikan izin OAC untuk mengakses URL fungsi Lambda
Sebelum Anda membuat OAC atau mengaturnya dalam CloudFront distribusi, pastikan OAC memiliki izin untuk mengakses URL fungsi Lambda. Lakukan ini setelah Anda membuat CloudFront distribusi, tetapi sebelum Anda menambahkan OAC ke URL fungsi Lambda dalam konfigurasi distribusi.
catatan
Untuk memperbarui kebijakan IAM untuk URL fungsi Lambda, Anda harus menggunakan () AWS Command Line Interface .AWS CLI Mengedit kebijakan IAM di konsol Lambda tidak didukung saat ini.
AWS CLI Perintah berikut memberikan akses CloudFront service principal (cloudfront.amazonaws.com
) ke URL fungsi Lambda Anda. Condition
Elemen dalam kebijakan memungkinkan CloudFront untuk mengakses Lambda hanya jika permintaan atas nama CloudFront distribusi yang berisi URL fungsi Lambda.
contoh : AWS CLI perintah untuk memperbarui kebijakan untuk mengizinkan akses hanya-baca ke OAC CloudFront
AWS CLI Perintah berikut memungkinkan CloudFront distribusi (
) mengakses Lambda E1PDK09ESKHJWT
Anda.FUNCTION_URL_NAME
aws lambda add-permission \ --statement-id "AllowCloudFrontServicePrincipal" \ --action "lambda:InvokeFunctionUrl" \ --principal "cloudfront.amazonaws.com" \ --source-arn "arn:aws:cloudfront::
123456789012
:distribution/E1PDK09ESKHJWT
" \ --function-nameFUNCTION_URL_NAME
catatan
Jika Anda membuat distribusi dan tidak memiliki izin ke URL fungsi Lambda Anda, Anda dapat memilih Salin perintah CLI dari CloudFront konsol, lalu masukkan perintah ini dari terminal baris perintah Anda. Untuk informasi selengkapnya, lihat Memberikan akses fungsi Layanan AWS di Panduan AWS Lambda Pengembang.
Buat OAC
Untuk membuat OAC, Anda dapat menggunakan AWS Management Console AWS CloudFormation, AWS CLI, atau CloudFront API.
Pengaturan lanjutan untuk kontrol akses asal
Fitur CloudFront OAC mencakup pengaturan lanjutan yang ditujukan hanya untuk kasus penggunaan tertentu. Gunakan pengaturan yang disarankan kecuali Anda memiliki kebutuhan khusus untuk pengaturan lanjutan.
OAC berisi setelan bernama Perilaku penandatanganan (di konsol), atau SigningBehavior
(di API, CLI, AWS CloudFormation dan). Pengaturan ini menyediakan opsi berikut:
- Selalu tandatangani permintaan asal (pengaturan yang disarankan)
-
Sebaiknya gunakan pengaturan ini, bernama Permintaan tanda (disarankan) di konsol, atau
always
di API, CLI, dan. AWS CloudFormation Dengan pengaturan ini, CloudFront selalu tandatangani semua permintaan yang dikirimkan ke URL fungsi Lambda. - Jangan pernah menandatangani permintaan asal
-
Pengaturan ini diberi nama Jangan menandatangani permintaan di konsol, atau
never
di API, CLI, dan. AWS CloudFormation Gunakan pengaturan ini untuk mematikan OAC untuk semua asal di semua distribusi yang menggunakan OAC ini. Ini dapat menghemat waktu dan tenaga dibandingkan dengan menghapus OAC dari semua asal dan distribusi yang menggunakannya, satu per satu. Dengan pengaturan ini, CloudFront tidak menandatangani permintaan apa pun yang dikirim ke URL fungsi Lambda.Awas
Untuk menggunakan pengaturan ini, URL fungsi Lambda harus dapat diakses publik. Jika Anda menggunakan setelan ini dengan URL fungsi Lambda yang tidak dapat diakses publik, tidak CloudFront dapat mengakses asal. URL fungsi Lambda mengembalikan kesalahan CloudFront dan CloudFront meneruskan kesalahan tersebut ke pemirsa. Untuk informasi selengkapnya, lihat Model keamanan dan autentikasi untuk URL fungsi Lambda di AWS Lambda Panduan Pengguna.
- Jangan mengganti header penampil (klien)
Authorization
-
Pengaturan ini diberi nama Jangan timpa header otorisasi di konsol, atau
no-override
di API, CLI, dan. AWS CloudFormation Gunakan setelan ini saat Anda CloudFront ingin menandatangani permintaan asal hanya jika permintaan penampil yang sesuai tidak menyertakanAuthorization
header. Dengan pengaturan ini, CloudFront meneruskanAuthorization
header dari permintaan penampil saat ada, tetapi menandatangani permintaan asal (menambahkan tajuknya sendiriAuthorization
) saat permintaan penampil tidak menyertakanAuthorization
header.Awas
-
Jika Anda menggunakan setelan ini, Anda harus menentukan penandatanganan Tanda Tangan Versi 4 untuk URL fungsi Lambda, bukan nama CloudFront distribusi atau CNAME. Saat CloudFront meneruskan
Authorization
header dari permintaan penampil ke URL fungsi Lambda, Lambda akan memvalidasi tanda tangan terhadap host domain URL Lambda. Jika tanda tangan tidak didasarkan pada domain URL Lambda, host dalam tanda tangan tidak akan cocok dengan host yang digunakan oleh asal URL Lambda. Ini berarti permintaan akan gagal, menghasilkan kesalahan validasi tanda tangan.
-
Untuk meneruskan
Authorization
header dari permintaan penampil, Anda harus menambahkanAuthorization
header ke kebijakan cache untuk semua perilaku cache yang menggunakan URL fungsi Lambda yang terkait dengan kontrol akses asal ini.
-