

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 penampung Amazon ECS, termasuk Amazon EC2 dan instans eksternal, menjalankan agen penampung Amazon ECS dan memerlukan peran IAM agar layanan mengetahui bahwa agen tersebut milik Anda. Sebelum meluncurkan instance kontainer dan mendaftarkannya ke klaster, Anda harus membuat peran IAM agar instance container Anda dapat digunakan. Peran dibuat di akun yang Anda gunakan untuk masuk ke konsol atau menjalankan AWS CLI perintah.

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

Amazon ECS menyediakan kebijakan IAM `AmazonEC2ContainerServiceforEC2Role` terkelola yang berisi izin yang diperlukan untuk menggunakan set fitur Amazon ECS lengkap. Kebijakan terkelola ini dapat dilampirkan ke peran IAM dan dikaitkan dengan instance container Anda. Atau, Anda dapat menggunakan kebijakan terkelola sebagai panduan saat membuat kebijakan kustom untuk digunakan. Peran instance container memberikan izin yang diperlukan untuk memanggil agen penampung Amazon ECS dan daemon Docker atas nama Anda. AWS APIs Untuk informasi selengkapnya tentang kebijakan terkelola, lihat [EC2ContainerServiceforEC2Peran Amazon](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 instance container agar Amazon ECS dapat menambahkan izin untuk fitur dan penyempurnaan future 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 **jenis entitas Tepercaya**, pilih **Layanan AWS**.

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

1. Pilih **Berikutnya**.

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

1. Pilih **Berikutnya**.

1.  Untuk **nama Peran**, masukkan **ecsInstanceRole**

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

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

Ganti semua *user input* dengan 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 instance bernama `ecsInstanceRole-profile` menggunakan [create-instance-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/create-instance-profile.html)perintah. 

   ```
   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 kebijakan `AmazonEC2ContainerServiceForEC2Role` 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 kontainer  |  [Izin Amazon ECR](#container-instance-role-ecr)  | 
| Minta CloudWatch Log memantau instance kontainer | [Memantau izin instance kontainer](#cwl_iam_policy) | 
| Host file konfigurasi dalam bucket Amazon S3 | [Akses hanya-baca Amazon S3](#container-instance-role-s3) | 

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

Peran instans penampung Amazon ECS yang Anda gunakan dengan instans penampung 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 peningkatan kepadatan ENI menggunakan jenis instans Amazon EC2 yang didukung. Saat Anda menggunakan fitur ini, kami sarankan Anda membuat 2 peran instance container. Aktifkan pengaturan `awsvpcTrunking` 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 container yang Anda gunakan dengan instance container 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, lihat [Menjalankan perintah di instans Linux saat diluncurkan di](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) Panduan Pengguna *Amazon EC2*.

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

Menyimpan informasi konfigurasi dalam bucket pribadi di Amazon S3 dan memberikan akses hanya-baca ke peran IAM instance container Anda adalah cara yang aman dan nyaman untuk mengizinkan konfigurasi instance container pada waktu peluncuran. Anda dapat menyimpan salinan `ecs.config` file Anda dalam 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 instans penampung Amazon ECS di Amazon S3](ecs-config-s3.md)

Anda dapat menggunakan AWS CLI perintah berikut untuk mengizinkan akses hanya-baca Amazon S3 untuk peran instance container 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 `AmazonS3ReadOnlyAccess` () hanya-baca Amazon S3 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 instance kontainer
<a name="cwl_iam_policy"></a>

Sebelum instans penampung Anda dapat mengirim data CloudWatch log ke Log, Anda harus membuat kebijakan IAM agar agen Amazon ECS dapat menulis log aplikasi pelanggan CloudWatch (biasanya ditangani melalui driver). `awslogs` Setelah Anda membuat kebijakan, lampirkan kebijakan tersebut`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 container. 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) dalam *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 container menggunakan ARN kebijakan.

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

------