

 **Bantu tingkatkan halaman ini** 

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

Untuk berkontribusi pada panduan pengguna ini, pilih **Edit halaman ini pada GitHub** tautan yang terletak di panel kanan setiap halaman.

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

# Peran IAM kemampuan Amazon EKS
<a name="capability-role"></a>

Kemampuan EKS membutuhkan peran IAM kemampuan (atau peran kemampuan) untuk dikonfigurasi. Kemampuan menggunakan peran ini untuk melakukan tindakan pada AWS layanan dan mengakses sumber daya Kubernetes di klaster Anda melalui entri akses yang dibuat secara otomatis.

Sebelum dapat menentukan peran kapabilitas selama pembuatan kapabilitas, Anda harus membuat peran IAM dengan kebijakan kepercayaan dan izin yang sesuai untuk jenis kapabilitas. Setelah peran IAM ini dibuat, itu dapat digunakan kembali untuk sejumlah sumber daya kemampuan.

## Persyaratan peran kemampuan
<a name="_capability_role_requirements"></a>

Peran kemampuan harus memenuhi persyaratan berikut:
+ Peran harus dalam AWS akun yang sama dengan cluster dan sumber daya kemampuan
+ Peran harus memiliki kebijakan kepercayaan yang memungkinkan layanan kemampuan EKS untuk mengambil peran
+ Peran harus memiliki izin yang sesuai untuk jenis kemampuan dan persyaratan kasus penggunaan (lihat[Izin berdasarkan jenis kemampuan](#capability-permissions))

## Kebijakan kepercayaan untuk peran kapabilitas
<a name="capability-trust-policy"></a>

Semua peran kapabilitas harus mencakup kebijakan kepercayaan berikut:

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

Kebijakan kepercayaan ini memungkinkan EKS untuk:
+ Asumsikan peran untuk melakukan operasi AWS API
+ Menandai sesi untuk tujuan audit dan pelacakan

## Izin berdasarkan jenis kemampuan
<a name="capability-permissions"></a>

Izin IAM yang diperlukan bergantung pada kemampuan yang Anda gunakan dan model penerapan Anda.

**catatan**  
Untuk penerapan produksi yang menggunakan Penyeleksi Peran IAM dengan ACK, atau saat menggunakan CD kro atau Argo tanpa integrasi AWS layanan, Peran Kemampuan mungkin tidak memerlukan izin IAM apa pun di luar kebijakan kepercayaan.

 **kro (Orkestra Sumber Daya Kube)**   
Tidak diperlukan izin IAM. Anda dapat membuat peran kapabilitas tanpa kebijakan terlampir. kro hanya membutuhkan izin Kubernetes RBAC untuk membuat dan mengelola sumber daya Kubernetes.

 ** AWS Pengontrol untuk Kubernetes (ACK)**   
ACK mendukung dua model izin:  
+  **Pengaturan sederhana (pengembangan/pengujian)**: Tambahkan izin AWS layanan langsung ke Peran Kemampuan. Ini berfungsi dengan baik untuk memulai, penerapan akun tunggal, atau ketika semua pengguna memerlukan izin yang sama.
+  **Praktik terbaik produksi**: Gunakan Penyeleksi Peran IAM untuk menerapkan akses hak istimewa paling sedikit. Dengan pendekatan ini, Peran Kemampuan hanya memerlukan `sts:AssumeRole` izin untuk mengambil peran khusus layanan. Anda tidak menambahkan izin AWS layanan (seperti S3 atau RDS) ke Peran Kemampuan itu sendiri—izin tersebut diberikan kepada peran IAM individual yang dipetakan ke ruang nama tertentu.

  Penyeleksi Peran IAM mengaktifkan:
  + Isolasi izin tingkat ruang nama
  + Manajemen sumber daya lintas akun
  + Peran IAM khusus tim
  + Model keamanan dengan hak istimewa paling rendah

    Contoh kebijakan Peran Kemampuan untuk pendekatan Pemilih Peran IAM:

    ```
    {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "sts:AssumeRole",
          "Resource": [
            "arn:aws:iam::111122223333:role/ACK-S3-Role",
            "arn:aws:iam::111122223333:role/ACK-RDS-Role",
            "arn:aws:iam::444455556666:role/ACKCrossAccountRole"
          ]
        }
      ]
    }
    ```

    Untuk konfigurasi izin ACK terperinci termasuk Penyeleksi Peran IAM, lihat. [Konfigurasikan izin ACK](ack-permissions.md)

 **Argo CD**   
Tidak ada izin IAM yang diperlukan secara default. Izin opsional mungkin diperlukan untuk:  
+  ** AWS Secrets Manager**: Jika menggunakan Secrets Manager untuk menyimpan kredensi repositori Git
+  ** AWS CodeConnections**: Jika menggunakan CodeConnections untuk otentikasi repositori Git

  Contoh kebijakan untuk Secrets Manager dan CodeConnections:

  ```
  {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "secretsmanager:GetSecretValue",
          "secretsmanager:DescribeSecret"
        ],
        "Resource": "arn:aws:secretsmanager:region:account-id:secret:argocd/*"
      },
      {
        "Effect": "Allow",
        "Action": [
          "codeconnections:UseConnection",
          "codeconnections:GetConnection"
        ],
        "Resource": "arn:aws:codeconnections:region:account-id:connection/*"
      }
    ]
  }
  ```

  Untuk persyaratan izin CD Argo terperinci, lihat[Pertimbangan Argo CD](argocd-considerations.md).

## Periksa peran kemampuan yang ada
<a name="check-capability-role"></a>

Anda dapat menggunakan prosedur berikut untuk memeriksa apakah akun Anda sudah memiliki peran IAM kemampuan yang sesuai untuk kasus penggunaan Anda.

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

1. Di panel navigasi sebelah kiri, pilih **Peran**.

1. Cari daftar peran untuk nama peran kemampuan Anda (misalnya, `ACKCapabilityRole` atau`ArgoCDCapabilityRole`).

1. Jika ada peran, pilih untuk melihat kebijakan terlampir dan hubungan kepercayaan.

1. Pilih **Trust relationship**, lalu pilih **Edit trust policy**.

1. Verifikasi bahwa hubungan kepercayaan sesuai dengan [kebijakan kepercayaan kemampuan](#capability-trust-policy). Jika tidak cocok, perbarui kebijakan kepercayaan.

1. Pilih **Izin** dan verifikasi bahwa peran tersebut memiliki izin yang sesuai untuk jenis kemampuan dan kasus penggunaan Anda.

## Menciptakan peran IAM kemampuan
<a name="create-capability-role"></a>

Anda dapat menggunakan Konsol Manajemen AWS atau AWS CLI untuk membuat peran kemampuan.

 ** Konsol Manajemen AWS **   

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

1. Pilih **Peran**, kemudian **Buat peran**.

1. Di bawah **Jenis entitas tepercaya**, pilih **Kebijakan kepercayaan khusus**.

1. Salin dan tempel [kebijakan kepercayaan kemampuan](#capability-trust-policy) ke editor kebijakan kepercayaan.

1. Pilih **Berikutnya**.

1. Pada tab **Tambahkan izin**, pilih atau buat kebijakan yang sesuai untuk jenis kemampuan Anda (lihat[Izin berdasarkan jenis kemampuan](#capability-permissions)). Untuk kro, Anda dapat melewati langkah ini.

1. Pilih **Berikutnya**.

1. Untuk **nama Peran**, masukkan nama unik untuk peran Anda, seperti`ACKCapabilityRole`,`ArgoCDCapabilityRole`, atau`kroCapabilityRole`.

1. Untuk **Deskripsi**, masukkan teks deskriptif seperti`Amazon EKS - ACK capability role`.

1. Pilih **Buat peran**.

 ** AWS CLI**   

1. Salin [kebijakan kepercayaan kemampuan](#capability-trust-policy) ke file bernama`capability-trust-policy.json`.

1. Buat peran. Ganti `ACKCapabilityRole` dengan nama peran yang Anda inginkan.

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

1. Lampirkan kebijakan IAM yang diperlukan ke peran tersebut. Untuk ACK, lampirkan kebijakan untuk AWS layanan yang ingin Anda kelola. Untuk Argo CD, lampirkan kebijakan untuk Secrets Manager atau CodeConnections jika diperlukan. Untuk kro, Anda dapat melewati langkah ini.

   Contoh untuk ACK dengan izin S3:

   ```
   aws iam put-role-policy \
     --role-name ACKCapabilityRole \
     --policy-name S3Management \
     --policy-document file://s3-policy.json
   ```

## Memecahkan masalah peran kemampuan
<a name="troubleshooting-capability-role"></a>

 **Pembuatan kemampuan gagal dengan “Peran IAM tidak valid”**   
Verifikasi bahwa:  
+ Peran ada di akun yang sama dengan cluster
+ Kebijakan kepercayaan sesuai dengan [kebijakan kepercayaan kemampuan](#capability-trust-policy) 
+ Anda memiliki `iam:PassRole` izin untuk peran

 **Kemampuan menunjukkan kesalahan izin**   
Verifikasi bahwa:  
+ Peran memiliki izin IAM yang diperlukan untuk jenis kemampuan
+ Entri akses ada di cluster untuk peran tersebut
+ Izin Kubernetes tambahan dikonfigurasi jika diperlukan (lihat) [Izin Kubernetes tambahan](capabilities-security.md#additional-kubernetes-permissions)

 **Sumber daya ACK gagal dengan kesalahan “izin ditolak”**   
Verifikasi bahwa:  
+ Peran memiliki izin IAM yang diperlukan untuk kasus penggunaan Anda
+ Untuk pengontrol ACK yang mereferensikan rahasia, pastikan Anda telah mengaitkan kebijakan entri `AmazonEKSSecretReaderPolicy` akses yang dicakup ke ruang nama yang sesuai.

Untuk panduan pemecahan masalah lainnya, lihat. [Pertimbangan keamanan untuk Kemampuan EKS](capabilities-security.md)