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 Pengguna IAM.

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 konsol IAM

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 konsol IAM.

Untuk membuat peran eksekusi di konsol IAM
  1. Buka Halaman peran di konsol IAM.

  2. Pilih Buat peran.

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

  4. Di bawah Kasus penggunaan, pilih Lambda.

  5. Pilih Selanjutnya.

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

  7. Pilih Selanjutnya.

  8. Masukkan nama Peran lalu pilih Buat peran.

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

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-langkahnya.

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 string JSON 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 file JSON 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-langkahnya.

Berikan akses hak istimewa paling rendah ke peran eksekusi Lambda Anda

Ketika Anda pertama kali membuat IAM role untuk fungsi Lambda Anda selama tahap pengembangan, Anda mungkin terkadang memberikan izin di luar apa 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.

Menggunakan IAM Access Analyzer untuk membantu mengidentifikasi izin yang diperlukan untuk kebijakan peran eksekusi IAM. IAM Access Analyzer meninjau AWS CloudTrail log Anda selama rentang tanggal yang Anda tentukan dan menghasilkan templat kebijakan hanya dengan izin yang digunakan fungsi selama waktu tersebut. Anda dapat menggunakan templat untuk membuat kebijakan terkelola dengan izin terperinci, lalu melampirkannya ke IAM role. 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 Pengguna IAM.