Mendefinisikan izin fungsi Lambda dengan peran eksekusi - AWS Lambda

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

Mendefinisikan izin fungsi Lambda dengan peran eksekusi

Peran eksekusi fungsi Lambda adalah peran AWS Identity and Access Management (IAM) yang memberikan izin fungsi untuk mengakses AWS layanan dan sumber daya. Misalnya, Anda dapat membuat peran eksekusi yang memiliki izin untuk mengirim log ke Amazon CloudWatch dan mengunggah data pelacakan AWS X-Ray. Halaman ini memberikan informasi tentang cara membuat, melihat, dan mengelola peran eksekusi fungsi Lambda.

Lambda secara otomatis mengasumsikan peran eksekusi Anda ketika Anda memanggil fungsi Anda. Anda harus menghindari panggilan manual sts:AssumeRole untuk mengambil peran eksekusi dalam kode fungsi Anda. Jika kasus penggunaan Anda mengharuskan peran tersebut mengasumsikan dirinya sendiri, Anda harus memasukkan peran itu sendiri sebagai prinsipal tepercaya dalam kebijakan kepercayaan peran Anda. Untuk informasi selengkapnya tentang cara mengubah kebijakan kepercayaan peran, lihat Memodifikasi kebijakan kepercayaan peran (konsol) di Panduan IAM Pengguna.

Agar Lambda dapat mengambil peran eksekusi Anda dengan benar, kebijakan kepercayaan peran harus menentukan prinsip layanan Lambda (lambda.amazonaws.com) sebagai layanan tepercaya.

Membuat peran eksekusi di IAM konsol

Secara default, Lambda membuat peran eksekusi dengan izin minimal saat Anda membuat fungsi di konsol Lambda. Secara khusus, peran eksekusi ini mencakup kebijakan AWSLambdaBasicExecutionRole terkelola, yang memberikan izin dasar fungsi Anda untuk mencatat peristiwa ke Amazon CloudWatch Logs.

Fungsi Anda biasanya memerlukan izin tambahan untuk melakukan tugas yang lebih bermakna. Misalnya, Anda mungkin memiliki fungsi Lambda yang merespons peristiwa dengan memperbarui entri dalam database Amazon DynamoDB. Anda dapat membuat peran eksekusi dengan izin yang diperlukan menggunakan IAM konsol.

Untuk membuat peran eksekusi di IAM konsol
  1. Buka halaman Peran di IAM konsol.

  2. Pilih Buat peran.

  3. Di bawah Jenis entitas tepercaya, pilih AWS layanan.

  4. Di bawah Kasus penggunaan, pilih Lambda.

  5. Pilih Berikutnya.

  6. Pilih kebijakan AWS terkelola yang ingin dilampirkan ke peran Anda. Misalnya, jika fungsi Anda perlu mengakses DynamoDB, pilih AWSLambdaDynamoDBExecutionRolekebijakan terkelola.

  7. Pilih Berikutnya.

  8. Masukkan nama Peran lalu pilih Buat peran.

Untuk petunjuk mendetail, lihat Membuat peran untuk AWS layanan (konsol) di Panduan IAM Pengguna.

Setelah Anda membuat peran eksekusi, lampirkan ke fungsi Anda. Saat Anda membuat fungsi di konsol Lambda, Anda dapat melampirkan peran eksekusi apa pun yang sebelumnya Anda buat ke fungsi tersebut. Jika Anda ingin melampirkan peran eksekusi baru ke fungsi yang ada, ikuti langkah-langkahnyaMemperbarui peran eksekusi fungsi.

Menciptakan dan mengelola peran dengan AWS CLI

Untuk membuat peran eksekusi dengan AWS Command Line Interface (AWS CLI), gunakan create-role perintah. Saat menggunakan perintah ini, Anda dapat menentukan kebijakan kepercayaan sebaris. Kebijakan kepercayaan peran memberikan izin kepada prinsipal yang ditentukan untuk mengambil peran tersebut. Dalam contoh berikut, Anda memberikan izin kepada kepala layanan Lambda untuk mengambil peran Anda. Perhatikan bahwa persyaratan untuk menghindari tanda kutip dalam JSON string dapat bervariasi tergantung pada shell Anda.

aws iam create-role \ --role-name lambda-ex \ --assume-role-policy-document '{"Version": "2012-10-17","Statement": [{ "Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"}, "Action": "sts:AssumeRole"}]}'

Anda juga dapat menentukan kebijakan kepercayaan untuk peran tersebut menggunakan JSON file terpisah. Dalam contoh berikut, trust-policy.json adalah file dalam direktori saat ini.

contoh trust-policy.json
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
aws iam create-role \ --role-name lambda-ex \ --assume-role-policy-document file://trust-policy.json

Anda akan melihat output berikut:

{ "Role": { "Path": "/", "RoleName": "lambda-ex", "RoleId": "AROAQFOXMPL6TZ6ITKWND", "Arn": "arn:aws:iam::123456789012:role/lambda-ex", "CreateDate": "2020-01-17T23:19:12Z", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } }

Untuk menambahkan izin peran, gunakan perintah attach-policy-to-role. Perintah berikut menambahkan kebijakan AWSLambdaBasicExecutionRole terkelola ke peran lambda-ex eksekusi.

aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole

Setelah Anda membuat peran eksekusi, lampirkan ke fungsi Anda. Saat Anda membuat fungsi di konsol Lambda, Anda dapat melampirkan peran eksekusi apa pun yang sebelumnya Anda buat ke fungsi tersebut. Jika Anda ingin melampirkan peran eksekusi baru ke fungsi yang ada, ikuti langkah-langkahnyaMemperbarui peran eksekusi fungsi.

Berikan akses hak istimewa paling rendah ke peran eksekusi Lambda Anda

Saat pertama kali membuat IAM peran untuk fungsi Lambda selama fase pengembangan, terkadang Anda dapat memberikan izin di luar yang diperlukan. Sebelum memublikasikan fungsi Anda di lingkungan produksi, sebagai praktik terbaik, sesuaikan kebijakan agar hanya menyertakan izin yang diperlukan. Untuk informasi selengkapnya, lihat Menerapkan izin hak istimewa paling sedikit di Panduan Pengguna. IAM

Gunakan IAM Access Analyzer untuk membantu mengidentifikasi izin yang diperlukan untuk kebijakan peran IAM eksekusi. IAMAccess Analyzer meninjau AWS CloudTrail log Anda selama rentang tanggal yang Anda tentukan dan membuat templat kebijakan hanya dengan izin yang digunakan fungsi selama waktu tersebut. Anda dapat menggunakan templat untuk membuat kebijakan terkelola dengan izin berbutir halus, lalu melampirkannya ke peran. IAM Dengan begitu, Anda hanya memberikan izin yang diperlukan peran untuk berinteraksi dengan AWS sumber daya untuk kasus penggunaan spesifik Anda.

Untuk informasi selengkapnya, lihat Menghasilkan kebijakan berdasarkan aktivitas akses di Panduan IAM Pengguna.