

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

# Peran IAM instans kontainer Amazon ECS
<a name="instance_IAM_role"></a>

Instans kontainer Amazon ECS, termasuk Amazon EC2 dan instans eksternal, menjalankan agen kontainer Amazon ECS dan memerlukan peran IAM agar layanan mengetahui bahwa agen tersebut milik Anda. Sebelum meluncurkan instance kontainer dan mendaftarkannya ke cluster, Anda harus membuat peran IAM untuk digunakan instans kontainer Anda. Peran dibuat di akun yang Anda gunakan untuk masuk ke konsol atau menjalankan AWS CLI perintah.

**penting**  
Jika Anda mendaftarkan instance eksternal ke cluster Anda, peran IAM yang Anda gunakan memerlukan izin Manajer Sistem juga. Untuk informasi selengkapnya, lihat [Peran IAM Amazon ECS Anywhere](iam-role-ecsanywhere.md).

Amazon ECS menyediakan kebijakan I `AmazonEC2ContainerServiceforEC2Role` AM terkelola yang berisi izin yang diperlukan untuk menggunakan set fitur Amazon ECS lengkap. Kebijakan terkelola ini dapat dilampirkan ke peran IAM dan dikaitkan dengan instans kontainer Anda. Atau, Anda dapat menggunakan kebijakan terkelola sebagai panduan saat membuat kebijakan kustom untuk digunakan. Peran instance kontainer memberikan izin yang diperlukan untuk agen kontainer Amazon ECS dan daemon Docker untuk memanggil AWS API atas nama Anda. Untuk informasi selengkapnya tentang kebijakan terkelola, lihat [AmazonEC2ContainerServiceforEC2Role](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEC2ContainerServiceforEC2Role).

## Buat peran instance kontainer
<a name="instance-iam-role-create"></a>

**penting**  
Jika Anda mendaftarkan instans eksternal untuk klaster Anda, lihat [Peran IAM Amazon ECS Anywhere](iam-role-ecsanywhere.md).

Anda dapat membuat peran secara manual dan melampirkan kebijakan IAM terkelola untuk instans kontainer agar Amazon ECS dapat menambahkan izin untuk fitur dan penyempurnaan di masa mendatang saat diperkenalkan. Gunakan prosedur berikut untuk melampirkan kebijakan IAM terkelola jika diperlukan.

------
#### [ Konsol Manajemen AWS ]

**Untuk membuat peran layanan untuk Elastic Container Service (konsol IAM)**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [ https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi konsol IAM, pilih **Peran**, dan lalu pilih **Buat peran**.

1. Untuk Ti ** pe entitas tepercaya**, pilih **Layanan AWS**.

1. Untuk ** Layanan atau kasus penggunaan**, pilih ** Elastic Container Service**, lalu pilih Peran ** EC2 untuk kasus ** penggunaan Layanan Kontainer Elastic.

1. Pilih **Berikutnya**.

1. Di ** bagian Kebijakan ** izin, verifikasi bahwa ** AmazonEC2ContainerServiceforEC2Role ** kebijakan dipilih.
**penting**  
Kebijakan ** AmazonEC2ContainerServiceforEC2Role ** terkelola harus dilampirkan ke peran IAM instance kontainer, jika tidak, Anda akan menerima kesalahan saat menggunakan Konsol Manajemen AWS untuk membuat cluster.

1. Pilih **Berikutnya**.

1.  Untuk Nama ** Peran**, masukkan ** ecs InstanceRole **

1. Tinjau peran lalu pilih **Buat peran**.

------
#### [ AWS CLI ]

Ganti semua {{user input}} dengan nilai-nilai Anda sendiri.

1. Buat file bernama `instance-role-trust-policy.json` dengan konten berikut.  
****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": { "Service": "ec2.amazonaws.com"},
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

1. Gunakan perintah berikut untuk membuat peran IAM instance menggunakan dokumen kebijakan kepercayaan.

   ```
   aws iam create-role \
       --role-name ecsInstanceRole \
       --assume-role-policy-document file://instance-role-trust-policy.json
   ```

1. Buat profil instans dengan nama `ecsInstanceRole-profile` menggunakan perintah [create-instans-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/create-instance-profile.html). 

   ```
   aws iam create-instance-profile --instance-profile-name {{ecsInstanceRole-profile}}
   ```

   Contoh tanggapan

   ```
   {
       "InstanceProfile": {
           "InstanceProfileId": "AIPAJTLBPJLEGREXAMPLE",
           "Roles": [],
           "CreateDate": "2022-04-12T23:53:34.093Z",
           "InstanceProfileName": "ecsInstanceRole-profile",
           "Path": "/",
           "Arn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole-profile"
       }
   }
   ```

1. Tambahkan peran `{{ecsInstanceRole}}` pada profil instans `{{ecsInstanceRole-profile}}`.

   ```
   aws iam add-role-to-instance-profile \
       --instance-profile-name ecsInstanceRole-profile \
       --role-name ecsInstanceRole
   ```

1. Lampirkan `AmazonEC2ContainerServiceForEC2Role` kebijakan terkelola ke peran menggunakan perintah berikut.

   ```
   aws iam attach-role-policy \
       --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role \
       --role-name ecsInstanceRole
   ```

------

Setelah Anda membuat peran, tambahkan izin tambahan ke peran untuk fitur berikut.


|  Fitur  |  Izin tambahan  | 
| --- | --- | 
| Amazon ECR memiliki gambar wadah | [Izin Amazon ECR](#container-instance-role-ecr) | 
| Minta CloudWatch Log memantau instance kontainer | [Memantau izin instans kontainer](#cwl_iam_policy) | 
| Meng-host file konfigurasi dalam bucket Amazon S3 | [Akses baca-saja Amazon S3](#container-instance-role-s3) | 

## Izin Amazon ECR
<a name="container-instance-role-ecr"></a>

Peran instance container Amazon ECS yang Anda gunakan dengan instans kontainer harus memiliki izin kebijakan IAM berikut untuk Amazon ECR.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer",
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Jika Anda menggunakan kebijakan terkelola `AmazonEC2ContainerServiceforEC2Role` untuk instans kontainer Anda, maka peran anda memiliki izin yang tepat.

## Izin diperlukan untuk mengatur pengaturan akun AWSVPCTrunking
<a name="container-instance-role-awsvpcTrunking-setting"></a>

Amazon ECS mendukung peluncuran instans kontainer dengan kepadatan ENI yang meningkat menggunakan jenis instans Amazon EC2 yang didukung. Saat Anda menggunakan fitur ini, kami sarankan Anda membuat 2 peran instance kontainer. Aktif `awsvpcTrunking` kan pengaturan akun untuk satu peran dan gunakan peran itu untuk tugas yang memerlukan trunking ENI. Untuk informasi tentang pengaturan `awsvpcTrunking` akun, lihat[Akses fitur Amazon ECS dengan pengaturan akun](ecs-account-settings.md).

Peran instance kontainer yang Anda gunakan dengan instans kontainer harus memiliki izin kebijakan IAM berikut untuk menyetel setelan akun 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:ListAccountSettings", 
                "ecs:ListAttributes", 
                "ecs:PutAccountSetting" 
            ],
            "Resource": "*"
        }
    ]
}
```

------

Untuk menggunakan peran instance container, tambahkan yang berikut ini ke data pengguna instance:

```
#!/bin/bash
aws ecs put-account-setting --name awsvpcTrunking --value enabled --region {{region}}
ECS_CLUSTER={{MyCluster}}>> /etc/ecs/ecs.config
EOF
```

Untuk informasi selengkapnya tentang menambahkan data pengguna ke instans EC2 Anda, lihat Men [ jalankan perintah pada instans Linux Anda saat diluncurkan ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) di Panduan * Pengguna Amazon EC2. *

## Akses baca-saja Amazon S3
<a name="container-instance-role-s3"></a>

Menyimpan informasi konfigurasi dalam bucket pribadi di Amazon S3 dan memberikan akses baca-saja ke peran IAM instans kontainer Anda adalah cara yang aman dan nyaman untuk mengizinkan konfigurasi instance kontainer pada waktu peluncuran. Anda dapat menyimpan salinan `ecs.config` file Anda di bucket pribadi, menggunakan data pengguna Amazon EC2 untuk menginstal AWS CLI dan kemudian menyalin informasi konfigurasi Anda ke `/etc/ecs/ecs.config` saat instance diluncurkan.

Untuk informasi selengkapnya tentang membuat `ecs.config` file, menyimpannya di Amazon S3, dan meluncurkan instance dengan konfigurasi ini, lihat[Menyimpan konfigurasi instance kontainer Amazon ECS di Amazon S3](ecs-config-s3.md).

Anda dapat menggunakan AWS CLI perintah berikut untuk mengizinkan akses baca-saja Amazon S3 untuk peran instance kontainer Anda. Ganti {{ecsInstanceRole}} dengan nama peran yang Anda buat.

```
aws iam attach-role-policy \
      --role-name {{ecsInstanceRole}} \
      --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
```

Anda juga dapat menggunakan konsol IAM untuk menambahkan akses baca-saja Amazon S3 (`AmazonS3ReadOnlyAccess`) ke peran Anda. Untuk informasi selengkapnya, lihat [ Memperbarui izin untuk peran ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html) dalam Panduan *AWS Identity and Access Management Pengguna*.

## Memantau izin instans kontainer
<a name="cwl_iam_policy"></a>

Sebelum instans kontainer Anda dapat mengirim data CloudWatch log ke Log, Anda harus membuat kebijakan IAM untuk mengizinkan agen Amazon ECS menulis log aplikasi pelanggan ke CloudWatch (biasanya ditangani melalui `awslogs` driver). Setelah Anda membuat kebijakan, lampirkan kebijakan tersebut ke`ecsInstanceRole`.

------
#### [ Konsol Manajemen AWS ]

**Cara menggunakan editor kebijakan JSON untuk membuat kebijakan**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [ https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pada panel navigasi di sebelah kiri, pilih **Kebijakan**. 

   Jika ini pertama kalinya Anda memilih **Kebijakan**, akan muncul halaman **Selamat Datang di Kebijakan Terkelola**. Pilih **Memulai**.

1. Di bagian atas halaman, pilih **Buat kebijakan**.

1. Di bagian **Editor kebijakan**, pilih opsi **JSON**.

1. Masukkan dokumen kebijakan JSON berikut:

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:PutLogEvents",
                   "logs:DescribeLogStreams"
               ],
               "Resource": ["arn:aws:logs:*:*:*"]
           }
       ]
   }
   ```

1. Pilih **Berikutnya**.
**catatan**  
Anda dapat beralih antara opsi editor **Visual** dan **JSON** kapan saja. Namun, jika Anda melakukan perubahan atau memilih **Berikutnya** di editor **Visual**, IAM dapat merestrukturisasi kebijakan Anda untuk mengoptimalkannya bagi editor visual. Untuk informasi selengkapnya, lihat [Restrukturisasi kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html#troubleshoot_viseditor-restructure) dalam *Panduan Pengguna IAM*.

1. Pada halaman **Tinjau dan buat**, masukkan **Nama kebijakan** dan **Deskripsi** (opsional) untuk kebijakan yang Anda buat. Tinjau **Izin yang ditentukan dalam kebijakan ini** untuk melihat izin yang diberikan oleh kebijakan Anda.

1. Pilih **Buat kebijakan** untuk menyimpan kebijakan baru Anda.

Setelah Anda membuat kebijakan, lampirkan kebijakan ke peran instance kontainer. Untuk informasi tentang cara melampirkan kebijakan ke peran, lihat [ Memperbarui izin untuk peran ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html) di Panduan *AWS Identity and Access Management Pengguna*.

------
#### [ AWS CLI ]

1. Buat file bernama `instance-cw-logs.json` dengan konten berikut.  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:PutLogEvents",
                   "logs:DescribeLogStreams"
               ],
               "Resource": ["arn:aws:logs:*:*:*"]
           }
       ]
   }
   ```

1. Gunakan perintah berikut untuk membuat kebijakan IAM menggunakan file dokumen kebijakan JSON.

   ```
   aws iam create-policy \
         --policy-name {{cwlogspolicy}} \
         --policy-document file://{{instance-cw-logs.json}}
   ```

1. Ambil ARN dari kebijakan IAM yang Anda buat menggunakan perintah berikut. Ganti {{cwlogspolicy}} dengan nama kebijakan yang Anda buat.

   ```
   aws iam list-policies --scope Local --query 'Policies[?PolicyName==`{{cwlogspolicy}}`].Arn'
   ```

1. Gunakan perintah berikut untuk melampirkan kebijakan ke peran IAM instance kontainer menggunakan kebijakan ARN.

   ```
   aws iam attach-role-policy \
         --role-name {{ecsInstanceRole}} \
         --policy-arn arn:aws:iam:111122223333:aws:policy/{{cwlogspolicy}}
   ```

------