

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 pelaksanaan
<a name="lambda-intro-execution-role"></a>

Peran eksekusi fungsi Lambda adalah peran AWS Identity and Access Management (IAM) yang memberikan izin fungsi untuk mengakses dan sumber daya. Layanan AWS 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)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy) di Panduan Pengguna IAM.

Agar Lambda dapat mengambil peran eksekusi Anda dengan benar, [kebijakan kepercayaan](#permissions-executionrole-api) peran harus menentukan prinsip layanan Lambda (`lambda.amazonaws.com`) sebagai layanan tepercaya.

**Topics**
+ [Membuat peran eksekusi di konsol IAM](#permissions-executionrole-console)
+ [Menciptakan dan mengelola peran dengan AWS CLI](#permissions-executionrole-api)
+ [Berikan akses hak istimewa paling rendah ke peran eksekusi Lambda Anda](#permissions-executionrole-least-privilege)
+ [Melihat dan memperbarui izin dalam peran eksekusi](permissions-executionrole-update.md)
+ [Bekerja dengan kebijakan AWS terkelola dalam peran eksekusi](permissions-managed-policies.md)
+ [Menggunakan fungsi sumber ARN untuk mengontrol perilaku akses fungsi](permissions-source-function-arn.md)

## Membuat peran eksekusi di konsol IAM
<a name="permissions-executionrole-console"></a>

Secara default, Lambda membuat peran eksekusi dengan izin minimal saat Anda [membuat fungsi di konsol Lambda](getting-started.md#getting-started-create-function). Secara khusus, peran eksekusi ini mencakup [kebijakan `AWSLambdaBasicExecutionRole` terkelola](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaBasicExecutionRole.html), yang memberikan izin dasar fungsi Anda untuk mencatat peristiwa ke Amazon CloudWatch Logs. Anda dapat memilih **Buat peran default** di bagian **Izin**.

Anda dapat memilih peran yang ada dengan memilih **Gunakan peran lain** di bagian **Izin**. Jika fungsi Lambda Anda memerlukan izin tambahan untuk melakukan tugas seperti memperbarui entri dalam database Amazon DynamoDB sebagai respons terhadap peristiwa, Anda dapat membuat peran eksekusi kustom dengan izin yang diperlukan. Untuk melakukan ini, pilih **Gunakan peran lain** di bagian **Izin**, yang membuka laci tempat Anda dapat menyesuaikan izin Anda.

**Untuk mengonfigurasi peran eksekusi dari Konsol**

1. Masukkan **nama peran** di bagian Rincian peran.

1. Di bagian **Kebijakan**, pilih **Gunakan kebijakan yang ada**.

1. Pilih kebijakan AWS terkelola yang ingin dilampirkan ke peran Anda. Misalnya, jika fungsi Anda perlu mengakses DynamoDB, pilih kebijakan yang dikelola Dynamo **AWSLambdaDBExecutionRole**.

1. Pilih **Buat peran**.

Atau, saat Anda [membuat fungsi di konsol Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html#getting-started-create-function), 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-langkah dalam [Memperbarui peran eksekusi fungsi](permissions-executionrole-update.md).

## Menciptakan dan mengelola peran dengan AWS CLI
<a name="permissions-executionrole-api"></a>

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.

**Example 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
```

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](getting-started.md#getting-started-create-function), 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[Memperbarui peran eksekusi fungsi](permissions-executionrole-update.md#update-execution-role).

## Berikan akses hak istimewa paling rendah ke peran eksekusi Lambda Anda
<a name="permissions-executionrole-least-privilege"></a>

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 terkecil di Panduan Pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_generate-policy.html) di *Panduan Pengguna IAM*.