

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

# Profil instans Instans Terkelola Amazon ECS
<a name="managed-instances-instance-profile"></a>

Profil instans adalah kontainer IAM yang memegang persis satu peran IAM dan memungkinkan Instans Terkelola Amazon ECS untuk mengambil peran tersebut dengan aman. Profil instans berisi peran instans yang diasumsikan agen ECS untuk mendaftarkan instance dengan cluster dan berkomunikasi dengan layanan ECS.

**penting**  
Jika Anda menggunakan Instans Terkelola Amazon ECS dengan kebijakan `AmazonECSInfrastructureRolePolicyForManagedInstances` terkelola, nama peran instans harus dimulai dengan. `ecsInstanceRole` Kebijakan mencakup`arn:aws:iam::*:role/ecsInstanceRole*`, `iam:PassRole` sehingga nama yang tidak cocok menyebabkan kesalahan otorisasi saat peluncuran tugas. Ini biasa terjadi CloudFormation ketika Anda menghilangkan`RoleName`, karena CloudFormation otomatis menghasilkan nama seperti. `MyStack-InstanceRole-ABC123`  
Jika Anda menggunakan kebijakan peran infrastruktur kustom, peran instance dapat memiliki nama apa pun selama kebijakan Anda menyertakan `iam:PassRole` hibah yang menargetkan ARN peran instance.

## Buat peran dengan kebijakan kepercayaan
<a name="create-instance-role"></a>

Ganti semua {{user input}} dengan informasi Anda sendiri.

1. Buat file bernama `ecsInstanceRole-trust-policy.json` yang berisi kebijakan kepercayaan yang akan digunakan untuk peran IAM. File tersebut harus berisi hal berikut:

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

****  

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

------

1. Gunakan AWS CLI perintah berikut untuk membuat peran `ecsInstanceRole` bernama menggunakan kebijakan kepercayaan yang Anda buat di langkah sebelumnya.

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

1. Lampirkan `AmazonECSInstanceRolePolicyForManagedInstances` kebijakan yang AWS dikelola ke `ecsInstanceRole` peran.

   ```
   aws iam attach-role-policy \
         --role-name ecsInstanceRole \
         --policy-arn arn:aws:iam::aws:policy/AmazonECSInstanceRolePolicyForManagedInstances
   ```
**catatan**  
Jika Anda memilih untuk menerapkan izin hak istimewa paling sedikit dan menetapkan izin Anda sendiri, Anda dapat menambahkan izin berikut untuk membantu mengatasi masalah terkait tugas dengan Instans Terkelola Amazon ECS:   
`ecs:StartTelemetrySession`
`ecs:PutSystemLogEvents`

Anda juga dapat menggunakan alur kerja **kebijakan kepercayaan kustom** konsol IAM untuk membuat peran. Untuk informasi selengkapnya, lihat [Membuat peran menggunakan kebijakan kepercayaan khusus (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) di *Panduan Pengguna IAM*.

Setelah Anda membuat file, Anda harus memberikan izin pengguna Anda untuk meneruskan peran ke Amazon ECS.

## Buat profil instance menggunakan AWS CLI
<a name="create-instance-profile"></a>

Setelah membuat peran, buat profil instance menggunakan AWS CLI:

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

Tambahkan peran ke profil instance:

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

Verifikasi profil berhasil dibuat:

```
aws iam get-instance-profile --instance-profile-name ecsInstanceRole 
```

## Buat profil instance menggunakan CloudFormation
<a name="create-instance-profile-cfn"></a>

Anda dapat menggunakan AWS CloudFormation untuk membuat peran instance dan profil instance. Pilih salah satu opsi berikut berdasarkan apakah Anda menggunakan kebijakan infrastruktur yang AWS dikelola atau kebijakan khusus.

### Opsi 1: Gunakan konvensi InstanceRole penamaan ecs (disarankan)
<a name="create-instance-profile-cfn-managed"></a>

Bila Anda menggunakan kebijakan infrastruktur AWS-managed, Anda harus secara eksplisit menyetel `RoleName` ke nilai yang dimulai dengan. `ecsInstanceRole` Jika Anda menghilangkannya`RoleName`, CloudFormation buat nama yang tidak cocok dengan `iam:PassRole` kondisi kebijakan terkelola secara otomatis, dan tugas gagal diluncurkan.

```
Resources:
  EcsInstanceRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: ecsInstanceRole
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service: ec2.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AmazonECSInstanceRolePolicyForManagedInstances

  EcsInstanceProfile:
    Type: AWS::IAM::InstanceProfile
    Properties:
      InstanceProfileName: ecsInstanceRole
      Roles:
        - !Ref EcsInstanceRole
```

### Opsi 2: Gunakan nama peran khusus
<a name="create-instance-profile-cfn-custom"></a>

Jika Anda lebih suka membiarkan CloudFormation membuat nama peran, atau Anda menggunakan nama kustom yang tidak dimulai`ecsInstanceRole`, Anda harus menambahkan kebijakan sebaris pada peran infrastruktur yang diberikan `iam:PassRole` untuk peran instance.

```
Resources:
  EcsInstanceRole:
    Type: AWS::IAM::Role
    Properties:
      # No RoleName — CFN auto-generates
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service: ec2.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AmazonECSInstanceRolePolicyForManagedInstances

  EcsInstanceProfile:
    Type: AWS::IAM::InstanceProfile
    Properties:
      Roles:
        - !Ref EcsInstanceRole

  EcsInfrastructureRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service: ecs.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AmazonECSInfrastructureRolePolicyForManagedInstances
      Policies:
        - PolicyName: PassInstanceRoleToEC2
          PolicyDocument:
            Version: "2012-10-17"
            Statement:
              - Effect: Allow
                Action: iam:PassRole
                Resource: !GetAtt EcsInstanceRole.Arn
                Condition:
                  StringLike:
                    iam:PassedToService: "ec2.*"
```

## Pemecahan masalah
<a name="managed-instances-instance-profile-troubleshooting"></a>

### Tugas gagal dengan iam: kesalahan PassRole otorisasi
<a name="managed-instances-instance-profile-ts-passrole"></a>

Jika tugas Anda gagal dengan yang `ResourceInitializationError` menyebutkan`iam:PassRole`, verifikasi bahwa nama peran instans Anda dimulai dengan`ecsInstanceRole`. Anda dapat memeriksa nama yang dibuat secara otomatis di CloudFormation konsol di bawah tab **Sumber Daya** tumpukan Anda. Jika namanya tidak cocok, baik:
+ Tambahkan `RoleName: ecsInstanceRole` ke `AWS::IAM::Role` sumber daya Anda.
+ Tambahkan kebijakan `iam:PassRole` inline eksplisit ke peran infrastruktur Anda. Untuk informasi selengkapnya, lihat [Opsi 2: Gunakan nama peran khusus](#create-instance-profile-cfn-custom).