

 **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.

# 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 kasus penggunaan yang berbeda.

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

ACK menggunakan peran IAM untuk mengautentikasi 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.

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

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

1. Periksa apakah IAMRole Selector cocok dengan namespace sumber daya

1. Jika kecocokan ditemukan, asumsikan bahwa peran IAM

1. Jika tidak, gunakan Peran Kemampuan

Pendekatan ini memungkinkan manajemen izin yang fleksibel 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 berada 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: Penyeleksi Peran IAM
<a name="_production_best_practice_iam_role_selectors"></a>

Untuk lingkungan produksi, gunakan Penyeleksi Peran IAM untuk menerapkan akses hak istimewa dan isolasi tingkat ruang nama.

Saat menggunakan Penyeleksi 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 kepada masing-masing peran IAM 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 dan seluruh klaster
+ Semua tim dapat berbagi izin yang sama

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

Anda dapat memulai dengan izin langsung dan bermigrasi ke Penyeleksi Peran IAM nanti seiring bertambahnya kebutuhan Anda.

 **Mengapa menggunakan Penyeleksi Peran IAM dalam produksi:** 
+  **Hak istimewa paling sedikit**: Setiap namespace hanya mendapatkan izin yang dibutuhkannya
+  **Isolasi tim**: Tim A tidak dapat secara tidak sengaja menggunakan izin Tim B
+  **Audit yang lebih mudah**: Pemetaan yang jelas dari namespace mana yang menggunakan peran mana
+  **Dukungan lintas akun**: 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 layanan tertentu AWS :

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

Konfigurasikan kebijakan kepercayaan untuk memungkinkan Peran Kemampuan untuk 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 untuk 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 IAMRole Selector** 

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
```

## Manajemen multi-akun
<a name="_multi_account_management"></a>

Gunakan Penyeleksi 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 IAMRole Selector** 

Memetakan 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 berbutir 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 dibuat oleh ACK:


| Tag Kunci | Deskripsi | 
| --- | --- | 
|   `eks:eks-capability-arn`   |  ARN dari kemampuan EKS membuat permintaan  | 
|   `eks:kubernetes-namespace`   |  Namespace Kubernetes dari sumber daya yang sedang dikelola  | 
|   `eks:kubernetes-api-group`   |  Grup API Kubernetes 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 namespace.

 **Contoh: Batasi dengan namespace** 

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

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

 **Contoh: Batasi dengan 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. Ini memungkinkan kontrol akses yang lebih terperinci dengan kemampuan terkelola.

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

[Untuk konfigurasi lanjutan termasuk pemilih label, pemetaan peran khusus sumber daya, dan contoh tambahan, lihat Dokumentasi ACK IRSA.](https://aws-controllers-k8s.github.io/community/docs/user-docs/irsa/)

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