

 **Bantu meningkatkan 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 GitHub ** tautan ** Edit halaman ini di 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.

# Konfigurasikan izin ACK
<a name="ack-permissions"></a>

ACK memerlukan izin IAM untuk membuat dan mengelola AWS sumber daya atas nama Anda. Topik ini menjelaskan cara kerja IAM dengan ACK dan memberikan panduan tentang mengonfigurasi izin untuk berbagai kasus penggunaan.

## Bagaimana IAM bekerja dengan ACK
<a name="_how_iam_works_with_ack"></a>

ACK menggunakan peran IAM untuk mengotentikasi AWS dan melakukan tindakan pada sumber daya Anda. Ada dua cara untuk memberikan izin ke ACK:

 **Peran Kemampuan**: Peran IAM yang Anda berikan saat membuat kemampuan ACK. Peran ini digunakan secara default untuk semua operasi ACK.

 **Pemilih Peran IAM**: Peran IAM tambahan yang dapat dipetakan ke ruang nama atau sumber daya tertentu. Peran-peran ini mengesampingkan Peran Kemampuan untuk sumber daya dalam cakupannya.

Ketika ACK perlu membuat atau mengelola sumber daya, itu menentukan peran IAM mana yang akan digunakan:

1. Periksa apakah an IAMRoleSelector cocok dengan namespace sumber daya

1. Jika kecocokan ditemukan, asumsikan peran IAM

1. Jika tidak, gunakan Peran Kemampuan

Pendekatan ini memungkinkan manajemen izin yang fleksibel mulai dari pengaturan peran tunggal sederhana hingga konfigurasi multi-akun dan multi-tim yang kompleks.

## Memulai: Pengaturan izin sederhana
<a name="_getting_started_simple_permission_setup"></a>

Untuk pengembangan, pengujian, atau kasus penggunaan sederhana, Anda dapat menambahkan semua izin layanan yang diperlukan langsung ke Peran Kemampuan.

Pendekatan ini bekerja dengan baik ketika:
+ Anda memulai dengan ACK
+ Semua sumber daya ada di AWS akun yang sama
+ Satu tim mengelola semua sumber daya ACK
+ Anda mempercayai semua pengguna ACK untuk memiliki izin yang sama

## Praktik terbaik produksi: Pemilih Peran IAM
<a name="_production_best_practice_iam_role_selectors"></a>

Untuk lingkungan produksi, gunakan Pemilih Peran IAM untuk mengimplementasikan akses hak istimewa terkecil dan isolasi tingkat ruang nama.

Saat menggunakan Pemilih Peran IAM, Peran Kemampuan hanya membutuhkan `sts:AssumeRole` dan `sts:TagSession` izin untuk mengambil peran khusus layanan. Anda tidak perlu menambahkan izin AWS layanan apa pun (seperti S3 atau RDS) ke Peran Kemampuan itu sendiri—izin tersebut diberikan ke peran IAM individual yang diasumsikan oleh Peran Kemampuan.

 **Memilih antara model izin**:

Gunakan izin ** langsung ** (menambahkan izin layanan ke Peran Kemampuan) saat:
+ Anda memulai dan menginginkan pengaturan yang paling sederhana
+ Semua sumber daya berada di akun yang sama dengan cluster Anda
+ Anda memiliki persyaratan izin administratif di seluruh cluster
+ Semua tim dapat berbagi izin yang sama

Gunakan Pem ** ilih Peran IAM saat: **
+ Mengelola sumber daya di beberapa AWS akun
+ Tim atau ruang nama yang berbeda membutuhkan izin yang berbeda
+ Anda memerlukan kontrol akses berbutir halus per namespace
+ Anda ingin mengikuti praktik keamanan dengan hak istimewa terendah

Anda dapat memulai dengan izin langsung dan bermigrasi ke Pemilih Peran IAM nanti saat kebutuhan Anda bertambah.

 **Mengapa menggunakan Pemilih Peran IAM dalam produksi: ** 
+  **Hak istimewa ** terkecil: Setiap namespace hanya mendapatkan izin yang dibutuhkannya
+  **Isolasi tim**: Tim A tidak dapat secara tidak sengaja menggunakan izin Tim B
+  **Audit yang lebih mudah**: Hapus pemetaan namespace mana yang menggunakan peran mana
+  **Cross-account dukungan**: Diperlukan untuk mengelola sumber daya di beberapa akun
+  **Pemisahan kekhawatiran**: Layanan atau lingkungan yang berbeda menggunakan peran yang berbeda

### Pengaturan Pemilih Peran IAM Dasar
<a name="_basic_iam_role_selector_setup"></a>

 **Langkah 1: Buat peran IAM khusus layanan ** 

Buat peran IAM dengan izin untuk AWS layanan tertentu:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:*"
      ],
      "Resource": "*"
    }
  ]
}
```

Konfigurasikan kebijakan kepercayaan untuk mengizinkan Peran Kemampuan mengasumsikannya:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/ACKCapabilityRole"
      },
      "Action": ["sts:AssumeRole", "sts:TagSession"]
    }
  ]
}
```

 **Langkah 2: Berikan AssumeRole izin ke Peran Kemampuan ** 

Tambahkan izin ke Peran Kemampuan untuk mengambil peran khusus layanan:

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

 **Langkah 3: Buat IAMRoleSelector ** 

Petakan peran IAM ke namespace:

```
apiVersion: services.k8s.aws/v1alpha1
kind: IAMRoleSelector
metadata:
  name: s3-namespace-config
spec:
  arn: arn:aws:iam::111122223333:role/ACK-S3-Role
  namespaceSelector:
    names:
      - s3-resources
```

 **Langkah 4: Buat sumber daya di namespace yang dipetakan ** 

Sumber daya di `s3-resources` namespace secara otomatis menggunakan peran yang ditentukan:

```
apiVersion: s3.services.k8s.aws/v1alpha1
kind: Bucket
metadata:
  name: my-bucket
  namespace: s3-resources
spec:
  name: my-production-bucket
```

## Multi-account manajemen
<a name="_multi_account_management"></a>

Gunakan Pemilih Peran IAM untuk mengelola sumber daya di beberapa AWS akun.

 **Langkah 1: Buat peran IAM lintas akun ** 

Di akun target (444455556666), buat peran yang mempercayai Peran Kemampuan akun sumber:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/ACKCapabilityRole"
      },
      "Action": ["sts:AssumeRole", "sts:TagSession"]
    }
  ]
}
```

Lampirkan izin khusus layanan ke peran ini.

 **Langkah 2: Berikan AssumeRole izin ** 

Di akun sumber (111122223333), izinkan Peran Kemampuan untuk mengambil peran akun target:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["sts:AssumeRole", "sts:TagSession"],
      "Resource": "arn:aws:iam::444455556666:role/ACKTargetAccountRole"
    }
  ]
}
```

 **Langkah 3: Buat IAMRoleSelector ** 

Petakan peran lintas akun ke namespace:

```
apiVersion: services.k8s.aws/v1alpha1
kind: IAMRoleSelector
metadata:
  name: production-account-config
spec:
  arn: arn:aws:iam::444455556666:role/ACKTargetAccountRole
  namespaceSelector:
    names:
      - production
```

 **Langkah 4: Buat sumber daya ** 

Sumber daya di `production` namespace dibuat di akun target:

```
apiVersion: s3.services.k8s.aws/v1alpha1
kind: Bucket
metadata:
  name: my-bucket
  namespace: production
spec:
  name: my-cross-account-bucket
```

## Tanda sesi
<a name="_session_tags"></a>

Kemampuan EKS ACK secara otomatis menetapkan tag sesi pada semua permintaan AWS API. Tag ini memungkinkan kontrol akses dan audit yang halus dengan mengidentifikasi sumber setiap permintaan.

### Tag sesi yang tersedia
<a name="_available_session_tags"></a>

Tag sesi berikut disertakan dengan setiap panggilan AWS API yang dilakukan oleh ACK:


| Kunci Tag | Deskripsi | 
| --- | --- | 
|  `eks:eks-capability-arn`  | ARN dari kemampuan EKS yang membuat permintaan | 
|  `eks:kubernetes-namespace`  | Namespace Kubernetes dari sumber daya yang dikelola | 
|  `eks:kubernetes-api-group`  | Grup Kubernetes API dari sumber daya (misalnya,) `s3.services.k8s.aws` | 

### Menggunakan tag sesi untuk kontrol akses
<a name="_using_session_tags_for_access_control"></a>

Anda dapat menggunakan tag sesi ini dalam kondisi kebijakan IAM untuk membatasi sumber daya yang dapat dikelola ACK. Ini memberikan lapisan keamanan tambahan di luar Penyeleksi Peran IAM berbasis ruang nama.

 **Contoh: Batasi dengan namespace ** 

Izinkan ACK untuk membuat bucket S3 hanya ketika permintaan berasal dari `production` namespace:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:CreateBucket",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/eks:kubernetes-namespace": "production"
        }
      }
    }
  ]
}
```

 **Contoh: Batasi berdasarkan kemampuan ** 

Izinkan tindakan hanya dari kemampuan ACK tertentu:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/eks:eks-capability-arn": "arn:aws:eks:us-west-2:111122223333:capability/my-cluster/ack/my-ack"
        }
      }
    }
  ]
}
```

**catatan**  
Tag sesi adalah perbedaan dari ACK yang dikelola sendiri, yang tidak mengatur tag ini secara default. Hal ini memungkinkan kontrol akses yang lebih terperinci dengan kemampuan terkelola.

## Pola Pemilih Peran IAM lanjutan
<a name="_advanced_iam_role_selector_patterns"></a>

Untuk konfigurasi lanjutan termasuk pemetaan peran lintas akun, pemilihan peran cakupan ruang nama, dan contoh tambahan, lihat Peran IAM [ Granular di situs web ACK. ](https://aws-controllers-k8s.github.io/docs/guides/cross-account)

## Langkah selanjutnya
<a name="_next_steps"></a>
+  [Konsep ACK](ack-concepts.md)- Memahami konsep ACK dan siklus hidup sumber daya
+  [Pertimbangan keamanan untuk Kemampuan EKS](capabilities-security.md)- Memahami praktik terbaik keamanan untuk kemampuan