Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Siapkan IAM izin dan peran untuk Lambda @Edge
Untuk mengonfigurasi Lambda @Edge, Anda harus memiliki IAM izin dan peran berikut untuk: AWS Lambda
-
IAMizin — Izin ini memungkinkan Anda membuat fungsi Lambda dan mengaitkannya dengan distribusi Anda. CloudFront
-
Peran eksekusi fungsi Lambda (IAMperan) — Prinsipal layanan Lambda mengasumsikan peran ini untuk menjalankan fungsi Anda.
-
Peran terkait layanan untuk Lambda @Edge — Peran terkait layanan memungkinkan spesifik untuk Layanan AWS mereplikasi fungsi Lambda ke dan mengaktifkan penggunaan file log. Wilayah AWS CloudWatch CloudFront
IAMizin yang diperlukan untuk mengaitkan fungsi Lambda @Edge dengan distribusi CloudFront
Selain IAM izin yang Anda butuhkan untuk Lambda, Anda memerlukan izin berikut untuk mengaitkan fungsi Lambda dengan distribusi: CloudFront
-
lambda:GetFunction
— Memberikan izin untuk mendapatkan informasi konfigurasi untuk fungsi Lambda Anda dan URL presigned untuk men-download file.zip
yang berisi fungsi. -
lambda:EnableReplication*
— Memberikan izin ke kebijakan sumber daya sehingga layanan replikasi Lambda bisa mendapatkan kode fungsi dan konfigurasi. -
lambda:DisableReplication*
— Memberikan izin untuk kebijakan sumber daya sehingga layanan replikasi Lambda dapat menghapus fungsi.penting
Anda harus menambahkan tanda bintang (
*
) di akhirlambda:EnableReplication*
danlambda:DisableReplication*
tindakan. -
Untuk sumber daya, tentukan versi fungsi yang ingin Anda jalankan saat CloudFront peristiwa terjadi, seperti contoh berikut: ARN
arn:aws:lambda:us-east-1:123456789012:function:
TestFunction
:2 -
iam:CreateServiceLinkedRole
— Memberikan izin untuk membuat peran terkait layanan yang digunakan Lambda @Edge untuk mereplikasi fungsi Lambda. CloudFront Setelah Anda mengonfigurasi Lambda @Edge untuk pertama kalinya, peran terkait layanan akan dibuat secara otomatis untuk Anda. Anda tidak perlu menambahkan izin ini ke distribusi lain yang menggunakan Lambda @Edge. -
cloudfront:UpdateDistribution
ataucloudfront:CreateDistribution
— Memberikan izin untuk memperbarui atau membuat distribusi.
Untuk informasi selengkapnya, lihat topik berikut.
Peran eksekusi fungsi untuk prinsipal layanan
Anda harus membuat IAM peran yang dapat diasumsikan oleh kepala sekolah lambda.amazonaws.com
dan edgelambda.amazonaws.com
layanan ketika mereka menjalankan fungsi Anda.
Tip
Saat membuat fungsi di konsol Lambda, Anda dapat memilih untuk membuat peran eksekusi baru dengan menggunakan templat AWS kebijakan. Langkah ini secara otomatis menambahkan izin Lambda @Edge yang diperlukan untuk menjalankan fungsi Anda. Lihat Langkah 5 dalam Tutorial: Membuat fungsi Lambda @Edge sederhana.
Untuk informasi selengkapnya tentang membuat IAM peran secara manual, lihat Membuat peran dan melampirkan kebijakan (konsol) di Panduan IAM Pengguna.
contoh Contoh: Kebijakan kepercayaan peran
Anda dapat menambahkan peran ini di bawah tab Trust Relationship di IAM konsol. Jangan tambahkan kebijakan ini di bawah tab Izin.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com", "edgelambda.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
Untuk informasi selengkapnya tentang izin yang perlu Anda berikan ke peran eksekusi, lihat Izin akses sumber daya Lambda di AWS Lambda Panduan Pengembang.
Catatan
-
Secara default, setiap kali CloudFront peristiwa memicu fungsi Lambda, data ditulis CloudWatch ke Log. Jika Anda ingin menggunakan log ini, peran eksekusi memerlukan izin untuk menulis data ke CloudWatch Log. Anda dapat menggunakan yang telah ditentukan AWSLambdaBasicExecutionRole untuk memberikan izin untuk peran eksekusi.
Untuk informasi selengkapnya tentang CloudWatch Log, lihatLog fungsi tepi.
-
Jika kode fungsi Lambda Anda mengakses AWS sumber daya lain, seperti membaca objek dari bucket S3, peran eksekusi memerlukan izin untuk melakukan tindakan tersebut.
Peran terkait layanan untuk Lambda @Edge
Lambda @Edge menggunakan peran terkait IAM layanan. Peran terkait layanan adalah jenis peran unik yang IAM ditautkan langsung ke layanan. Peran yang ditautkan dengan layanan ditentukan sebelumnya oleh layanan dan mencakup semua izin yang diperlukan layanan untuk menghubungi layanan AWS lainnya atas nama Anda.
Lambda @Edge menggunakan peran terkait IAM layanan berikut:
-
AWSServiceRoleForLambdaReplicator— Lambda @Edge menggunakan peran ini untuk memungkinkan Lambda @Edge mereplikasi fungsi ke. Wilayah AWS
Saat Anda pertama kali menambahkan pemicu Lambda @Edge CloudFront, peran bernama AWSServiceRoleForLambdaReplicator dibuat secara otomatis untuk memungkinkan Lambda @Edge mereplikasi fungsi ke. Wilayah AWS Peran ini diperlukan untuk menggunakan fungsi Lambda @Edge. ARNUntuk AWSServiceRoleForLambdaReplicator peran terlihat seperti contoh berikut:
arn:aws:iam::123456789012:role/aws-service-role/replicator.lambda.amazonaws.com/AWSServiceRoleForLambdaReplicator
-
AWSServiceRoleForCloudFrontLogger— CloudFront menggunakan peran ini untuk mendorong file log ke dalam CloudWatch. Anda dapat menggunakan file log untuk men-debug kesalahan validasi Lambda @Edge.
Bagian AWSServiceRoleForCloudFrontLogger peran dibuat secara otomatis saat Anda menambahkan asosiasi fungsi Lambda @Edge CloudFront untuk memungkinkan mendorong file log kesalahan Lambda @Edge ke. CloudWatch ARNUntuk AWSServiceRoleForCloudFrontLogger peran terlihat seperti ini:
arn:aws:iam::account_number:role/aws-service-role/logger.cloudfront.amazonaws.com/AWSServiceRoleForCloudFrontLogger
Peran yang terhubung dengan layanan memudahkan pengaturan dan penggunaan Lambda@Edge karena Anda tidak perlu menambahkan izin yang diperlukan secara manual. Lambda@Edge mendefinisikan izin peran yang terhubung ke layanan, dan hanya Lambda@Edge yang dapat memegang peran tersebut. Izin yang ditentukan mencakup kebijakan kepercayaan dan kebijakan izin. Anda tidak dapat melampirkan kebijakan izin ke IAM entitas lain.
Anda harus menghapus sumber daya terkait CloudFront atau Lambda @Edge sebelum dapat menghapus peran terkait layanan. Ini membantu melindungi sumber daya Lambda @Edge Anda sehingga Anda tidak menghapus peran terkait layanan yang masih diperlukan untuk mengakses sumber daya aktif.
Untuk mengetahui informasi selengkapnya tentang peran terkait layanan, lihat Peran terkait layanan untuk CloudFront.
Izin peran terkait layanan untuk Lambda @Edge
Lambda @Edge menggunakan dua peran terkait layanan, bernama AWSServiceRoleForLambdaReplicator dan AWSServiceRoleForCloudFrontLogger. Bagian berikut menjelaskan izin untuk masing-masing peran ini.
Daftar Isi
Izin peran terkait layanan untuk replikator Lambda
Peran terkait layanan ini memungkinkan Lambda mereplikasi fungsi Lambda @Edge. Wilayah AWS
Bagian AWSServiceRoleForLambdaReplicator peran terkait layanan mempercayai replicator.lambda.amazonaws.com
layanan untuk mengambil peran.
Kebijakan izin peran memungkinkan Lambda@Edge menyelesaikan tindakan berikut pada sumber daya yang ditentukan:
-
lambda:CreateFunction
padaarn:aws:lambda:*:*:function:*
-
lambda:DeleteFunction
padaarn:aws:lambda:*:*:function:*
-
lambda:DisableReplication
padaarn:aws:lambda:*:*:function:*
-
iam:PassRole
padaall AWS resources
-
cloudfront:ListDistributionsByLambdaFunction
padaall AWS resources
Izin peran terkait layanan untuk logger CloudFront
Peran terkait layanan ini memungkinkan CloudFront untuk mendorong file log CloudWatch sehingga Anda dapat men-debug kesalahan validasi Lambda @Edge.
Bagian AWSServiceRoleForCloudFrontLogger peran terkait layanan mempercayai logger.cloudfront.amazonaws.com
layanan untuk mengambil peran.
Kebijakan izin peran memungkinkan Lambda @Edge menyelesaikan tindakan berikut pada sumber daya yang ditentukan: arn:aws:logs:*:*:log-group:/aws/cloudfront/*
-
logs:CreateLogGroup
-
logs:CreateLogStream
-
logs:PutLogEvents
Anda harus mengonfigurasi izin untuk mengizinkan IAM entitas (seperti pengguna, grup, atau peran) menghapus peran terkait layanan Lambda @Edge. Untuk informasi selengkapnya, lihat Izin peran terkait layanan di Panduan Pengguna. IAM
Membuat peran terkait layanan untuk Lambda @Edge
Anda biasanya tidak membuat peran terkait layanan secara manual untuk Lambda@Edge. Layanan ini membuat peran untuk Anda secara otomatis dalam skenario berikut:
-
Saat Anda pertama kali membuat pemicu, layanan membuat AWSServiceRoleForLambdaReplicator peran (jika belum ada). Peran ini memungkinkan Lambda untuk mereplikasi fungsi Lambda @Edge ke. Wilayah AWS
Jika Anda menghapus peran layanan yang ditautkan, peran tersebut akan dibuat lagi saat Anda menambahkan pemicu baru untuk Lambda@Edge dalam distribusi.
-
Saat Anda memperbarui atau membuat CloudFront distribusi yang memiliki asosiasi Lambda @Edge, layanan akan membuat AWSServiceRoleForCloudFrontLogger peran (jika peran tersebut belum ada). Peran ini memungkinkan CloudFront untuk mendorong file log Anda ke CloudWatch.
Jika Anda menghapus peran terkait layanan, peran akan dibuat lagi saat Anda memperbarui atau membuat CloudFront distribusi yang memiliki asosiasi Lambda @Edge.
Untuk membuat peran terkait layanan ini secara manual, Anda dapat menjalankan perintah AWS Command Line Interface (AWS CLI) berikut:
Untuk membuat AWSServiceRoleForLambdaReplicator peran
-
Jalankan perintah berikut.
aws iam create-service-linked-role --aws-service-name replicator.lambda.amazonaws.com
Untuk membuat AWSServiceRoleForCloudFrontLogger peran
-
Jalankan perintah berikut.
aws iam create-service-linked-role --aws-service-name logger.cloudfront.amazonaws.com
Mengedit peran terkait layanan Lambda @Edge
Lambda @Edge tidak mengizinkan Anda untuk mengedit AWSServiceRoleForLambdaReplicator atau AWSServiceRoleForCloudFrontLogger peran terkait layanan. Setelah layanan membuat peran terkait layanan, Anda tidak dapat mengubah nama peran karena berbagai entitas mungkin mereferensikan peran tersebut. Namun, Anda dapat menggunakan IAM untuk mengedit deskripsi peran. Untuk informasi selengkapnya, lihat Mengedit peran terkait layanan di IAMPanduan Pengguna.
Didukung Wilayah AWS untuk CloudFront peran terkait layanan
CloudFront mendukung penggunaan peran terkait layanan untuk Lambda @Edge sebagai berikut: Wilayah AWS
-
AS Timur (Virginia Utara)–
us-east-1
-
AS Timur (Ohio)–
us-east-2
-
AS Barat (California Utara)–
us-west-1
-
AS Barat (Oregon)–
us-west-2
-
Asia Pasifik (Mumbai)–
ap-south-1
-
Asia Pasifik (Seoul)–
ap-northeast-2
-
Asia Pasifik (Singapura)–
ap-southeast-1
-
Asia Pasifik (Sydney)–
ap-southeast-2
-
Asia Pasifik (Tokyo) –
ap-northeast-1
-
Eropa (Frankfurt) –
eu-central-1
-
Eropa (Irlandia)–
eu-west-1
-
Eropa (London) –
eu-west-2
-
Amerika Selatan (São Paulo) –
sa-east-1