

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

# Menerapkan AWS sumber daya dari Kubernetes dengan AWS Controller untuk Kubernetes (ACK)
<a name="ack"></a>

 AWS Controller untuk Kubernetes (ACK) memungkinkan Anda menentukan dan mengelola sumber daya AWS layanan langsung dari Kubernetes. Dengan AWS Controller for Kubernetes (ACK), Anda dapat mengelola sumber daya beban kerja dan infrastruktur cloud menggunakan sumber daya kustom Kubernetes, tepat di samping beban kerja aplikasi Anda menggunakan Kubernetes dan alat yang sudah dikenal. APIs 

Dengan Kemampuan EKS, ACK dikelola sepenuhnya oleh AWS, menghilangkan kebutuhan untuk menginstal, memelihara, dan menskalakan pengontrol ACK di cluster Anda.

## Bagaimana ACK Bekerja
<a name="_how_ack_works"></a>

ACK menerjemahkan spesifikasi sumber daya kustom Kubernetes ke dalam panggilan API. AWS Saat Anda membuat, memperbarui, atau menghapus sumber daya kustom Kubernetes yang mewakili sumber daya AWS layanan, ACK membuat panggilan AWS API yang diperlukan untuk membuat, memperbarui, atau menghapus sumber daya. AWS 

Setiap AWS sumber daya yang didukung oleh ACK memiliki definisi sumber daya kustom (CRD) sendiri yang mendefinisikan skema API Kubernetes untuk menentukan konfigurasinya. Misalnya, ACK menyediakan CRDs S3 termasuk bucket, kebijakan bucket, dan sumber daya S3 lainnya.

ACK terus mendamaikan status AWS sumber daya Anda dengan status yang diinginkan yang ditentukan dalam sumber daya kustom Kubernetes Anda. Jika sumber daya melayang dari keadaan yang diinginkan, ACK mendeteksi ini dan mengambil tindakan korektif untuk membawanya kembali ke keselarasan. Perubahan pada sumber daya Kubernetes langsung tercermin dalam status AWS sumber daya, sementara deteksi drift pasif dan remediasi perubahan AWS sumber daya hulu dapat memakan waktu selama 10 jam (periode sinkronisasi ulang), tetapi biasanya akan terjadi lebih cepat.

 **Contoh manifes sumber daya Bucket S3** 

```
apiVersion: s3.services.k8s.aws/v1alpha1
kind: Bucket
metadata:
  name: my-ack-bucket
spec:
  name: my-unique-bucket-name
```

Saat Anda menerapkan sumber daya khusus ini ke klaster, ACK akan membuat bucket Amazon S3 di akun Anda jika belum ada. Perubahan selanjutnya pada sumber daya ini, misalnya menentukan tingkat penyimpanan non-default atau menambahkan kebijakan, akan diterapkan ke sumber daya S3 di. AWS Saat sumber daya ini dihapus dari cluster, bucket S3 akan dihapus AWS secara default.

## Manfaat ACK
<a name="_benefits_of_ack"></a>

ACK menyediakan manajemen AWS sumber daya asli Kubernetes, memungkinkan Anda mengelola sumber AWS daya menggunakan Kubernetes APIs dan alat yang sama yang Anda gunakan untuk aplikasi Anda. Pendekatan terpadu ini menyederhanakan alur kerja manajemen infrastruktur Anda dengan menghilangkan kebutuhan untuk beralih di antara alat yang berbeda atau mempelajari sistem terpisah. infrastructure-as-code Anda mendefinisikan AWS sumber daya Anda secara deklaratif dalam manifes Kubernetes, memungkinkan GitOps alur kerja dan infrastruktur sebagai praktik kode yang terintegrasi secara mulus dengan proses pengembangan yang ada.

ACK terus mendamaikan kondisi AWS sumber daya Anda yang diinginkan dengan keadaan sebenarnya, mengoreksi penyimpangan dan memastikan konsistensi di seluruh infrastruktur Anda. Rekonsiliasi berkelanjutan ini berarti bahwa out-of-band perubahan penting pada AWS sumber daya secara otomatis dikembalikan agar sesuai dengan konfigurasi yang Anda deklarasikan, menjaga integritas infrastruktur Anda sebagai kode. Anda dapat mengonfigurasi ACK untuk mengelola sumber daya di beberapa AWS akun dan wilayah, memungkinkan arsitektur multi-akun yang kompleks tanpa alat tambahan.

Untuk organisasi yang bermigrasi dari alat manajemen infrastruktur lainnya, ACK mendukung adopsi sumber daya, memungkinkan Anda membawa AWS sumber daya yang ada di bawah manajemen ACK tanpa membuatnya kembali. ACK juga menyediakan sumber daya hanya-baca untuk observasi AWS sumber daya tanpa akses modifikasi, dan anotasi untuk mempertahankan AWS sumber daya secara opsional bahkan ketika resource Kubernetes dihapus dari cluster.

Untuk mempelajari lebih lanjut dan memulai dengan Kemampuan EKS untuk ACK, lihat [Konsep ACK](ack-concepts.md) dan[Pertimbangan ACK untuk EKS](ack-considerations.md).

## AWS Layanan yang Didukung
<a name="supported_shared_aws_services"></a>

ACK mendukung berbagai AWS layanan, termasuk namun tidak terbatas pada:
+ Amazon EC2
+ Amazon S3
+ Amazon RDS
+ Amazon DynamoDB
+ Amazon ElastiCache
+ Amazon EKS
+ Amazon SQS
+ Amazon SNS
+  AWS Lambda
+  AWS IAM

Semua AWS layanan yang terdaftar sebagai Umumnya Tersedia di hulu didukung oleh Kemampuan EKS untuk ACK. Lihat [daftar lengkap AWS layanan yang didukung](https://aws-controllers-k8s.github.io/community/docs/community/services/) untuk detailnya.

## Integrasi dengan Kemampuan Terkelola EKS Lainnya
<a name="_integration_with_other_eks_managed_capabilities"></a>

ACK terintegrasi dengan Kemampuan Terkelola EKS lainnya.
+  **Argo CD**: Gunakan Argo CD untuk mengelola penyebaran sumber daya ACK di beberapa cluster, memungkinkan GitOps alur kerja untuk infrastruktur Anda. AWS 
  + ACK memperluas manfaat GitOps ketika dipasangkan dengan ArgoCD, tetapi ACK tidak memerlukan integrasi dengan git.
+  **kro (Kube Resource Orchestrator)**: Gunakan kro untuk menyusun sumber daya yang kompleks dari sumber daya ACK, menciptakan abstraksi tingkat tinggi yang menyederhanakan manajemen sumber daya.
  + Anda dapat membuat resource kustom komposit dengan kro yang mendefinisikan resource dan resource Kubernetes. AWS Anggota tim dapat menggunakan sumber daya khusus ini untuk menyebarkan aplikasi kompleks dengan cepat.

## Memulai dengan ACK
<a name="_getting_started_with_ack"></a>

Untuk memulai dengan Kemampuan EKS untuk ACK:

1. Buat dan konfigurasikan Peran Kemampuan IAM dengan izin yang diperlukan bagi ACK untuk mengelola AWS sumber daya atas nama Anda.

1.  [Buat sumber daya kemampuan ACK](create-ack-capability.md) di kluster EKS Anda melalui AWS Konsol, AWS CLI, atau infrastruktur pilihan Anda sebagai alat kode.

1. Terapkan sumber daya kustom Kubernetes ke klaster Anda untuk mulai mengelola sumber AWS daya Anda di Kubernetes.

# Buat kemampuan ACK
<a name="create-ack-capability"></a>

Bab ini menjelaskan cara membuat kemampuan ACK di cluster Amazon EKS Anda.

## Prasyarat
<a name="_prerequisites"></a>

Sebelum membuat kemampuan ACK, pastikan Anda memiliki:
+ Klaster Amazon EKS
+ Peran Kemampuan IAM dengan izin ACK untuk mengelola sumber daya AWS 
+ Izin IAM yang memadai untuk membuat sumber daya kemampuan di kluster EKS
+ Alat CLI yang sesuai diinstal dan dikonfigurasi, atau akses ke Konsol EKS

Untuk petunjuk tentang cara membuat Peran Kemampuan IAM, lihat[Peran IAM kemampuan Amazon EKS](capability-role.md).

**penting**  
ACK adalah kemampuan manajemen infrastruktur yang memberikan kemampuan untuk membuat, memodifikasi, dan menghapus AWS sumber daya. Ini adalah kemampuan lingkup admin yang harus dikontrol dengan hati-hati. Siapa pun yang memiliki izin untuk membuat sumber daya Kubernetes di klaster Anda dapat secara efektif membuat AWS sumber daya melalui ACK, tunduk pada izin Peran Kemampuan IAM. Peran Kemampuan IAM yang Anda berikan menentukan AWS sumber daya mana yang dapat dibuat dan dikelola ACK. Untuk panduan tentang membuat peran yang sesuai dengan izin hak istimewa paling sedikit, lihat dan. [Peran IAM kemampuan Amazon EKS](capability-role.md) [Pertimbangan keamanan untuk Kemampuan EKS](capabilities-security.md)

## Pilih alat Anda
<a name="_choose_your_tool"></a>

Anda dapat membuat kemampuan ACK menggunakan Konsol Manajemen AWS, AWS CLI, atau eksctl:
+  [Buat kemampuan ACK menggunakan Konsol](ack-create-console.md)- Gunakan Konsol untuk pengalaman terpandu
+  [Buat kemampuan ACK menggunakan AWS CLI](ack-create-cli.md)- Gunakan AWS CLI untuk scripting dan otomatisasi
+  [Buat kemampuan ACK menggunakan eksctl](ack-create-eksctl.md)- Gunakan eksctl untuk pengalaman asli Kubernetes

## Apa yang terjadi ketika Anda membuat kemampuan ACK
<a name="_what_happens_when_you_create_an_ack_capability"></a>

Saat Anda membuat kemampuan ACK:

1. EKS membuat layanan kemampuan ACK dan mengonfigurasinya untuk memantau dan mengelola sumber daya di cluster Anda

1. Definisi Sumber Daya Kustom (CRDs) diinstal di klaster Anda

1. Entri akses secara otomatis dibuat untuk Peran Kemampuan IAM Anda dengan kebijakan entri akses khusus kemampuan yang memberikan izin Kubernetes dasar (lihat) [Pertimbangan keamanan untuk Kemampuan EKS](capabilities-security.md)

1. Kemampuan mengasumsikan Peran Kemampuan IAM yang Anda berikan

1. ACK mulai mengawasi sumber daya kustomnya di cluster Anda

1. Status kemampuan berubah dari `CREATING` menjadi `ACTIVE` 

Setelah aktif, Anda dapat membuat sumber daya khusus ACK di cluster Anda untuk mengelola AWS sumber daya.

**catatan**  
Entri akses yang dibuat secara otomatis mencakup `AmazonEKSACKPolicy` yang memberikan izin ACK untuk mengelola AWS sumber daya. Beberapa sumber daya ACK yang mereferensikan rahasia Kubernetes (seperti database RDS dengan kata sandi) memerlukan kebijakan entri akses tambahan. Untuk mempelajari lebih lanjut tentang entri akses dan cara mengonfigurasi izin tambahan, lihat. [Pertimbangan keamanan untuk Kemampuan EKS](capabilities-security.md)

## Langkah selanjutnya
<a name="_next_steps"></a>

Setelah membuat kemampuan ACK:
+  [Konsep ACK](ack-concepts.md)- Memahami konsep ACK dan memulai dengan AWS sumber daya
+  [Konsep ACK](ack-concepts.md)- Pelajari tentang rekonsiliasi, ekspor lapangan, dan pola adopsi sumber daya
+  [Konfigurasikan izin ACK](ack-permissions.md)- Konfigurasikan izin IAM dan pola multi-akun

# Buat kemampuan ACK menggunakan Konsol
<a name="ack-create-console"></a>

Topik ini menjelaskan cara membuat kemampuan AWS Controllers for Kubernetes (ACK) menggunakan. Konsol Manajemen AWS

## Buat kemampuan ACK
<a name="_create_the_ack_capability"></a>

1. Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/ rumah\$1/cluster.

1. Pilih nama cluster Anda untuk membuka halaman detail cluster.

1. Pilih tab **Kemampuan**.

1. Di navigasi kiri, pilih ** AWS Controllers for Kubernetes** (ACK).

1. Pilih **Create AWS Controller untuk kemampuan Kubernetes**.

1. Untuk **Peran Kemampuan IAM**:
   + Jika Anda sudah memiliki Peran Kemampuan IAM, pilih dari dropdown
   + Jika Anda perlu membuat peran, pilih **Buat peran admin** 

     Ini membuka konsol IAM di tab baru dengan kebijakan kepercayaan yang telah diisi sebelumnya dan kebijakan terkelola. `AdministratorAccess` Anda dapat membatalkan pilihan kebijakan ini dan menambahkan izin lain jika diinginkan.

     Setelah membuat peran, kembali ke konsol EKS dan peran akan dipilih secara otomatis.
**penting**  
`AdministratorAccess`Kebijakan yang disarankan memberikan izin luas dan dimaksudkan untuk merampingkan memulai. Untuk penggunaan produksi, ganti ini dengan kebijakan khusus yang hanya memberikan izin yang diperlukan untuk AWS layanan tertentu yang Anda rencanakan untuk dikelola dengan ACK. Untuk panduan tentang membuat kebijakan hak istimewa terkecil, lihat dan. [Konfigurasikan izin ACK](ack-permissions.md) [Pertimbangan keamanan untuk Kemampuan EKS](capabilities-security.md)

1. Pilih **Buat**.

Proses pembuatan kemampuan dimulai.

## Verifikasi kemampuan aktif
<a name="_verify_the_capability_is_active"></a>

1. Pada tab **Kemampuan**, lihat status kemampuan ACK.

1. Tunggu status berubah dari `CREATING` ke`ACTIVE`.

1. Setelah aktif, kemampuan siap digunakan.

Untuk informasi tentang status kemampuan dan pemecahan masalah, lihat. [Bekerja dengan sumber daya kemampuan](working-with-capabilities.md)

## Verifikasi sumber daya khusus tersedia
<a name="_verify_custom_resources_are_available"></a>

Setelah kemampuan aktif, verifikasi bahwa sumber daya khusus ACK tersedia di klaster Anda.

 **Menggunakan konsol** 

1. Arahkan ke klaster Anda di konsol Amazon EKS

1. Pilih tab **Sumber Daya**

1. Pilih **Ekstensi** 

1. Pilih **CustomResourceDefinitions** 

Anda akan melihat sejumlah yang CRDs terdaftar untuk AWS sumber daya.

 **Menggunakan kubectl** 

```
kubectl api-resources | grep services.k8s.aws
```

Anda akan melihat sejumlah yang APIs terdaftar untuk AWS sumber daya.

**catatan**  
Kemampuan untuk AWS Controller untuk Kubernetes akan menginstal sejumlah CRDs untuk berbagai sumber daya. AWS 

## Langkah selanjutnya
<a name="_next_steps"></a>
+  [Konsep ACK](ack-concepts.md)- Memahami konsep ACK dan memulai
+  [Konfigurasikan izin ACK](ack-permissions.md)- Konfigurasikan izin IAM untuk layanan lain AWS 
+  [Bekerja dengan sumber daya kemampuan](working-with-capabilities.md)- Kelola sumber daya kemampuan ACK Anda

# Buat kemampuan ACK menggunakan AWS CLI
<a name="ack-create-cli"></a>

Topik ini menjelaskan cara membuat kemampuan AWS Controllers for Kubernetes (ACK) menggunakan CLI. AWS 

## Prasyarat
<a name="_prerequisites"></a>
+  ** AWS CLI** — Versi `2.12.3` atau yang lebih baru. Untuk memeriksa versi Anda, jalankan`aws --version`. Untuk informasi selengkapnya, lihat [Menginstal](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) di Panduan Pengguna Antarmuka Baris AWS Perintah.
+  **`kubectl`**— Alat baris perintah untuk bekerja dengan cluster Kubernetes. Untuk informasi selengkapnya, lihat [Mengatur `kubectl` dan `eksctl`](install-kubectl.md).

## Langkah 1: Buat Peran Kemampuan IAM
<a name="_step_1_create_an_iam_capability_role"></a>

Buat file kebijakan kepercayaan:

```
cat > ack-trust-policy.json << 'EOF'
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "capabilities.eks.amazonaws.com"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:TagSession"
      ]
    }
  ]
}
EOF
```

Buat peran IAM:

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

Lampirkan kebijakan `AdministratorAccess` terkelola ke peran:

```
aws iam attach-role-policy \
  --role-name ACKCapabilityRole \
  --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
```

**penting**  
`AdministratorAccess`Kebijakan yang disarankan memberikan izin luas dan dimaksudkan untuk merampingkan memulai. Untuk penggunaan produksi, ganti ini dengan kebijakan khusus yang hanya memberikan izin yang diperlukan untuk AWS layanan tertentu yang Anda rencanakan untuk dikelola dengan ACK. Untuk panduan tentang membuat kebijakan hak istimewa paling sedikit, lihat dan. [Konfigurasikan izin ACK](ack-permissions.md) [Pertimbangan keamanan untuk Kemampuan EKS](capabilities-security.md)

## Langkah 2: Buat kemampuan ACK
<a name="_step_2_create_the_ack_capability"></a>

Buat sumber daya kemampuan ACK di cluster Anda. Ganti *region-code* dengan AWS Region tempat cluster Anda berada dan ganti *my-cluster* dengan nama cluster Anda.

```
aws eks create-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-ack \
  --type ACK \
  --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ACKCapabilityRole \
  --delete-propagation-policy RETAIN
```

Perintah segera kembali, tetapi kemampuannya membutuhkan waktu untuk menjadi aktif karena EKS menciptakan infrastruktur dan komponen kemampuan yang diperlukan. EKS akan menginstal Definisi Sumber Daya Kustom Kubernetes yang terkait dengan kemampuan ini di cluster Anda saat sedang dibuat.

**catatan**  
Jika Anda menerima kesalahan bahwa klaster tidak ada atau Anda tidak memiliki izin, verifikasi:  
Nama cluster benar
 AWS CLI Anda dikonfigurasi untuk wilayah yang benar
Anda memiliki izin IAM yang diperlukan

## Langkah 3: Verifikasi kemampuan aktif
<a name="_step_3_verify_the_capability_is_active"></a>

Tunggu kemampuan untuk menjadi aktif. Ganti *region-code* dengan AWS Region tempat cluster Anda berada dan ganti *my-cluster* dengan nama cluster Anda.

```
aws eks describe-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-ack \
  --query 'capability.status' \
  --output text
```

Kemampuan siap ketika status ditampilkan`ACTIVE`. Jangan melanjutkan ke langkah berikutnya sampai statusnya`ACTIVE`.

Anda juga dapat melihat detail kemampuan lengkap:

```
aws eks describe-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-ack
```

## Langkah 4: Verifikasi sumber daya khusus tersedia
<a name="_step_4_verify_custom_resources_are_available"></a>

Setelah kemampuan aktif, verifikasi bahwa sumber daya khusus ACK tersedia di klaster Anda:

```
kubectl api-resources | grep services.k8s.aws
```

Anda akan melihat sejumlah yang APIs terdaftar untuk AWS sumber daya.

**catatan**  
Kemampuan untuk AWS Controller untuk Kubernetes akan menginstal sejumlah CRDs untuk berbagai sumber daya. AWS 

## Langkah selanjutnya
<a name="_next_steps"></a>
+  [Konsep ACK](ack-concepts.md)- Memahami konsep ACK dan memulai
+  [Konfigurasikan izin ACK](ack-permissions.md)- Konfigurasikan izin IAM untuk layanan lain AWS 
+  [Bekerja dengan sumber daya kemampuan](working-with-capabilities.md)- Kelola sumber daya kemampuan ACK Anda

# Buat kemampuan ACK menggunakan eksctl
<a name="ack-create-eksctl"></a>

Topik ini menjelaskan cara membuat kemampuan AWS Controllers for Kubernetes (ACK) menggunakan eksctl.

**catatan**  
Langkah-langkah berikut memerlukan versi `0.220.0` eksctl atau yang lebih baru. Untuk memeriksa versi Anda, jalankan`eksctl version`.

## Langkah 1: Buat Peran Kemampuan IAM
<a name="_step_1_create_an_iam_capability_role"></a>

Buat file kebijakan kepercayaan:

```
cat > ack-trust-policy.json << 'EOF'
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "capabilities.eks.amazonaws.com"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:TagSession"
      ]
    }
  ]
}
EOF
```

Buat peran IAM:

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

Lampirkan kebijakan `AdministratorAccess` terkelola ke peran:

```
aws iam attach-role-policy \
  --role-name ACKCapabilityRole \
  --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
```

**penting**  
`AdministratorAccess`Kebijakan yang disarankan memberikan izin luas dan dimaksudkan untuk merampingkan memulai. Untuk penggunaan produksi, ganti ini dengan kebijakan khusus yang hanya memberikan izin yang diperlukan untuk AWS layanan tertentu yang Anda rencanakan untuk dikelola dengan ACK. Untuk panduan tentang membuat kebijakan hak istimewa terkecil, lihat dan. [Konfigurasikan izin ACK](ack-permissions.md) [Pertimbangan keamanan untuk Kemampuan EKS](capabilities-security.md)

**penting**  
Kebijakan ini memberikan izin untuk pengelolaan bucket S3`"Resource": "*"`, yang memungkinkan pengoperasian di semua bucket S3.  
Untuk penggunaan produksi: \$1 Batasi `Resource` bidang ke bucket ARNs atau pola nama tertentu \$1 Gunakan kunci kondisi IAM untuk membatasi akses dengan tag sumber daya \$1 Berikan hanya izin minimum yang diperlukan untuk kasus penggunaan Anda  
Untuk AWS layanan lainnya, lihat[Konfigurasikan izin ACK](ack-permissions.md).

Lampirkan kebijakan ke peran:

```
aws iam attach-role-policy \
  --role-name ACKCapabilityRole \
  --policy-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):policy/ACKS3Policy
```

## Langkah 2: Buat kemampuan ACK
<a name="_step_2_create_the_ack_capability"></a>

Buat kemampuan ACK menggunakan eksctl. Ganti *region-code* dengan AWS Region tempat cluster Anda berada dan ganti *my-cluster* dengan nama cluster Anda.

```
eksctl create capability \
  --cluster [.replaceable]`my-cluster` \
  --region [.replaceable]`region-code` \
  --name ack \
  --type ACK \
  --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ACKCapabilityRole \
  --ack-service-controllers s3
```

**catatan**  
`--ack-service-controllers`Bendera adalah opsional. Jika dihilangkan, ACK mengaktifkan semua pengontrol yang tersedia. Untuk kinerja dan keamanan yang lebih baik, pertimbangkan untuk mengaktifkan hanya pengontrol yang Anda butuhkan. Anda dapat menentukan beberapa pengontrol: `--ack-service-controllers s3,rds,dynamodb` 

Perintah segera kembali, tetapi kemampuannya membutuhkan waktu untuk menjadi aktif.

## Langkah 3: Verifikasi kemampuan aktif
<a name="_step_3_verify_the_capability_is_active"></a>

Periksa status kemampuan:

```
eksctl get capability \
  --cluster [.replaceable]`my-cluster` \
  --region [.replaceable]`region-code` \
  --name ack
```

Kemampuan siap ketika status ditampilkan`ACTIVE`.

## Langkah 4: Verifikasi sumber daya khusus tersedia
<a name="_step_4_verify_custom_resources_are_available"></a>

Setelah kemampuan aktif, verifikasi bahwa sumber daya khusus ACK tersedia di klaster Anda:

```
kubectl api-resources | grep services.k8s.aws
```

Anda akan melihat sejumlah yang APIs terdaftar untuk AWS sumber daya.

**catatan**  
Kemampuan untuk AWS Controller untuk Kubernetes akan menginstal sejumlah CRDs untuk berbagai sumber daya. AWS 

## Langkah selanjutnya
<a name="_next_steps"></a>
+  [Konsep ACK](ack-concepts.md)- Memahami konsep ACK dan memulai
+  [Konfigurasikan izin ACK](ack-permissions.md)- Konfigurasikan izin IAM untuk layanan lain AWS 
+  [Bekerja dengan sumber daya kemampuan](working-with-capabilities.md)- Kelola sumber daya kemampuan ACK Anda

# Konsep ACK
<a name="ack-concepts"></a>

ACK mengelola AWS sumber daya melalui Kubernetes APIs dengan terus merekonsiliasi status yang diinginkan dalam manifes Anda dengan status aktual di. AWS Saat Anda membuat atau memperbarui sumber daya kustom Kubernetes, ACK membuat panggilan AWS API yang diperlukan untuk membuat atau memodifikasi AWS sumber daya yang sesuai, lalu memantaunya untuk drift dan memperbarui status Kubernetes untuk mencerminkan status saat ini. Pendekatan ini memungkinkan Anda mengelola infrastruktur menggunakan alat dan alur kerja Kubernetes yang sudah dikenal sambil mempertahankan konsistensi antara klaster Anda dan. AWS

Topik ini menjelaskan konsep dasar di balik bagaimana ACK mengelola AWS sumber daya melalui Kubernetes APIs.

## Memulai dengan ACK
<a name="_getting_started_with_ack"></a>

Setelah membuat kemampuan ACK (lihat[Buat kemampuan ACK](create-ack-capability.md)), Anda dapat mulai mengelola AWS sumber daya menggunakan manifes Kubernetes di klaster Anda.

Sebagai contoh, buat manifes bucket S3 ini di`bucket.yaml`, pilih nama bucket unik Anda sendiri.

```
apiVersion: s3.services.k8s.aws/v1alpha1
kind: Bucket
metadata:
  name: my-test-bucket
  namespace: default
spec:
  name: my-unique-bucket-name-12345
```

Terapkan manifes:

```
kubectl apply -f bucket.yaml
```

Periksa statusnya:

```
kubectl get bucket my-test-bucket
kubectl describe bucket my-test-bucket
```

Verifikasi bucket telah dibuat di AWS:

```
aws s3 ls | grep my-unique-bucket-name-12345
```

Hapus sumber daya Kubernetes:

```
kubectl delete bucket my-test-bucket
```

Verifikasi bucket telah dihapus dari AWS:

```
aws s3 ls | grep my-unique-bucket-name-12345
```

Bucket seharusnya tidak lagi muncul dalam daftar, menunjukkan bahwa ACK mengelola siklus hidup penuh sumber daya. AWS 

Untuk informasi lebih lanjut tentang memulai dengan ACK, lihat [Memulai dengan ACK](https://aws-controllers-k8s.github.io/community/docs/user-docs/getting-started/).

## Siklus hidup sumber daya dan rekonsiliasi
<a name="_resource_lifecycle_and_reconciliation"></a>

ACK menggunakan loop rekonsiliasi berkelanjutan untuk memastikan AWS sumber daya Anda cocok dengan status yang diinginkan yang ditentukan dalam manifes Kubernetes Anda.

 **Bagaimana rekonsiliasi bekerja**:

1. Anda membuat atau memperbarui sumber daya kustom Kubernetes (misalnya, Bucket S3)

1. ACK mendeteksi perubahan dan membandingkan keadaan yang diinginkan dengan status aktual di AWS 

1. Jika berbeda, ACK membuat panggilan AWS API untuk mendamaikan perbedaannya

1. ACK memperbarui status sumber daya di Kubernetes untuk mencerminkan status saat ini

1. Loop berulang terus menerus, biasanya setiap beberapa jam

Rekonsiliasi dipicu ketika Anda membuat sumber daya Kubernetes baru, memperbarui sumber daya yang ada`spec`, atau ketika ACK mendeteksi penyimpangan dari perubahan manual yang dibuat di luar ACK. AWS Selain itu, ACK melakukan rekonsiliasi berkala dengan periode resync 10 jam. Perubahan pada sumber daya Kubernetes memicu rekonsiliasi segera, sementara deteksi drift pasif terhadap perubahan sumber daya hulu AWS terjadi selama sinkronisasi ulang periodik.

Saat mengerjakan contoh memulai di atas, ACK melakukan langkah-langkah ini:

1. Memeriksa apakah bucket ada di AWS 

1. Jika tidak, panggilan `s3:CreateBucket` 

1. Memperbarui status Kubernetes dengan bucket ARN dan state

1. Melanjutkan pemantauan untuk drift

Untuk mempelajari lebih lanjut tentang cara kerja ACK, lihat [Rekonsiliasi ACK](https://aws-controllers-k8s.github.io/community/docs/user-docs/reconciliation/).

## Kondisi status
<a name="_status_conditions"></a>

Sumber daya ACK menggunakan kondisi status untuk mengkomunikasikan keadaan mereka. Memahami kondisi ini membantu Anda memecahkan masalah dan memahami kesehatan sumber daya.
+  **Siap**: Menunjukkan sumber daya siap untuk dikonsumsi (kondisi Kubernetes standar).
+  **ACK. ResourceSynced**: Menunjukkan spesifikasi sumber daya cocok dengan status AWS sumber daya.
+  **ACK.terminal**: Menunjukkan telah terjadi kesalahan yang tidak dapat dipulihkan.
+  **ACK.adopted**: Menunjukkan sumber daya diadopsi dari AWS sumber daya yang ada daripada dibuat baru.
+  **ACK.Recoverable**: Menunjukkan kesalahan yang dapat dipulihkan yang dapat diselesaikan tanpa memperbarui spesifikasi.
+  **ACK.advisory**: Memberikan informasi nasihat tentang sumber daya.
+  **ACK. LateInitialized**: Menunjukkan apakah inisialisasi bidang yang terlambat selesai.
+  **ACK. ReferencesResolved**: Menunjukkan apakah semua `AWSResourceReference` bidang telah diselesaikan.
+  **ACK. IAMRoleDipilih**: Menunjukkan apakah IAMRole Pemilih telah dipilih untuk mengelola sumber daya ini.

Periksa status sumber daya:

```
# Check if resource is ready
kubectl get bucket my-bucket -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}'

# Check for terminal errors
kubectl get bucket my-bucket -o jsonpath='{.status.conditions[?(@.type=="ACK.Terminal")]}'
```

Contoh status:

```
status:
  conditions:
  - type: Ready
    status: "True"
    lastTransitionTime: "2024-01-15T10:30:00Z"
  - type: ACK.ResourceSynced
    status: "True"
    lastTransitionTime: "2024-01-15T10:30:00Z"
  - type: ACK.Terminal
    status: "True"
  ackResourceMetadata:
    arn: arn:aws:s3:::my-unique-bucket-name
    ownerAccountID: "111122223333"
    region: us-west-2
```

Untuk mempelajari lebih lanjut tentang status dan kondisi ACK, lihat [Ketentuan ACK](https://aws-controllers-k8s.github.io/community/docs/user-docs/conditions/).

## Kebijakan penghapusan
<a name="_deletion_policies"></a>

Kebijakan penghapusan ACK mengontrol apa yang terjadi pada AWS sumber daya ketika Anda menghapus sumber daya Kubernetes.

 **Hapus (default)** 

 AWS Resource dihapus ketika Anda menghapus sumber daya Kubernetes: Ini adalah perilaku default.

```
# No annotation needed - this is the default
apiVersion: s3.services.k8s.aws/v1alpha1
kind: Bucket
metadata:
  name: temp-bucket
spec:
  name: temporary-bucket
```

Menghapus sumber daya ini akan menghapus bucket S3 di. AWS

 **Pertahankan** 

Sumber AWS daya disimpan saat Anda menghapus sumber daya Kubernetes:

```
apiVersion: s3.services.k8s.aws/v1alpha1
kind: Bucket
metadata:
  name: important-bucket
  annotations:
    services.k8s.aws/deletion-policy: "retain"
spec:
  name: production-data-bucket
```

Menghapus sumber daya ini menghapusnya dari Kubernetes tetapi membiarkan bucket S3 masuk. AWS

`retain`Kebijakan ini berguna untuk basis data produksi yang harus hidup lebih lama dari sumber daya Kubernetes, sumber daya bersama yang digunakan oleh beberapa aplikasi, sumber daya dengan data penting yang tidak boleh dihapus secara tidak sengaja, atau manajemen ACK sementara di mana Anda mengadopsi sumber daya, mengonfigurasinya, lalu melepaskannya kembali ke manajemen manual.

Untuk mempelajari selengkapnya tentang kebijakan penghapusan ACK, lihat Kebijakan [Penghapusan ACK](https://aws-controllers-k8s.github.io/community/docs/user-docs/deletion-policy/).

## Adopsi sumber daya
<a name="_resource_adoption"></a>

Adopsi memungkinkan Anda untuk membawa AWS sumber daya yang ada di bawah manajemen ACK tanpa membuatnya kembali.

Kapan menggunakan adopsi:
+ Migrasi infrastruktur yang ada ke manajemen ACK
+ Memulihkan sumber daya yatim piatu jika terjadi penghapusan AWS sumber daya yang tidak disengaja di Kubernetes
+ Mengimpor sumber daya yang dibuat oleh alat lain (CloudFormation, Terraform)

Cara kerja adopsi:

```
apiVersion: s3.services.k8s.aws/v1alpha1
kind: Bucket
metadata:
  name: existing-bucket
  annotations:
    services.k8s.aws/adoption-policy: "adopt-or-create"
spec:
  name: my-existing-bucket-name
```

Saat Anda membuat sumber daya ini:

1. ACK memeriksa apakah ember dengan nama itu ada di AWS 

1. Jika ditemukan, ACK mengadopsinya (tidak ada panggilan API untuk dibuat)

1. ACK membaca konfigurasi saat ini dari AWS 

1. ACK memperbarui status Kubernetes untuk mencerminkan keadaan sebenarnya

1. Pembaruan di masa mendatang merekonsiliasi sumber daya secara normal

Setelah diadopsi, sumber daya dikelola seperti sumber daya ACK lainnya, dan menghapus sumber daya Kubernetes akan menghapus sumber daya kecuali Anda menggunakan kebijakan penghapusan. AWS `retain`

Saat mengadopsi sumber daya, AWS sumber daya harus sudah ada dan ACK membutuhkan izin baca untuk menemukannya. `adopt-or-create`Kebijakan mengadopsi sumber daya jika ada, atau membuatnya jika tidak. Ini berguna ketika Anda menginginkan alur kerja deklaratif yang berfungsi apakah sumber daya ada atau tidak.

Untuk mempelajari lebih lanjut tentang adopsi sumber daya ACK, lihat [Adopsi Sumber Daya ACK](https://aws-controllers-k8s.github.io/community/docs/user-docs/adopted-resource/).

## Sumber daya lintas akun dan lintas wilayah
<a name="_cross_account_and_cross_region_resources"></a>

ACK dapat mengelola sumber daya di berbagai AWS akun dan wilayah dari satu cluster.

 **Anotasi sumber daya lintas wilayah** 

Anda dapat menentukan wilayah AWS sumber daya menggunakan anotasi:

```
apiVersion: s3.services.k8s.aws/v1alpha1
kind: Bucket
metadata:
  name: eu-bucket
  annotations:
    services.k8s.aws/region: eu-west-1
spec:
  name: my-eu-bucket
```

Anda juga dapat menentukan wilayah dari semua sumber AWS daya yang dibuat dalam namespace tertentu:

 **Anotasi namespace** 

Menetapkan wilayah default untuk semua sumber daya di namespace:

```
apiVersion: v1
kind: Namespace
metadata:
  name: production
  annotations:
    services.k8s.aws/default-region: us-west-2
```

Sumber daya yang dibuat di namespace ini menggunakan wilayah ini kecuali diganti dengan anotasi tingkat sumber daya.

 **Lintas akun** 

Gunakan Penyeleksi Peran IAM untuk memetakan peran IAM tertentu ke ruang nama:

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

Sumber daya yang dibuat di namespace yang dipetakan secara otomatis menggunakan peran yang ditentukan.

Untuk mempelajari selengkapnya tentang Penyeleksi Peran IAM, lihat Manajemen Sumber Daya [Lintas Akun ACK](https://aws-controllers-k8s.github.io/docs/guides/cross-account). Untuk detail konfigurasi lintas akun, lihat[Konfigurasikan izin ACK](ack-permissions.md).

## Penanganan kesalahan dan perilaku coba lagi
<a name="_error_handling_and_retry_behavior"></a>

ACK secara otomatis menangani kesalahan sementara dan mencoba ulang operasi yang gagal.

Coba lagi strategi:
+ Kesalahan sementara (pembatasan tarif, masalah layanan sementara, izin tidak mencukupi) memicu percobaan ulang otomatis
+ Backoff eksponensial mencegah kewalahan AWS APIs
+ Upaya coba ulang maksimum bervariasi menurut jenis kesalahan
+ Kesalahan permanen (parameter tidak valid, konflik nama sumber daya) jangan coba lagi

Periksa status sumber daya untuk detail kesalahan menggunakan`kubectl describe`:

```
kubectl describe bucket my-bucket
```

Cari kondisi status dengan pesan kesalahan, peristiwa yang menunjukkan upaya rekonsiliasi terbaru, dan `message` bidang dalam kondisi status yang menjelaskan kegagalan. Kesalahan umum termasuk izin IAM yang tidak mencukupi, konflik nama sumber daya AWS, nilai konfigurasi yang tidak valid dalam`spec`, dan melebihi kuota layanan. AWS 

Untuk mengatasi masalah kesalahan umum, lihat. [Memecahkan masalah dengan kemampuan ACK](ack-troubleshooting.md)

## Komposisi sumber daya dengan kro
<a name="_resource_composition_with_kro"></a>

Untuk menyusun dan menghubungkan beberapa sumber daya ACK bersama-sama, gunakan Kemampuan EKS untuk kro (Kube Resource Orchestrator). kro menyediakan cara deklaratif untuk mendefinisikan kelompok sumber daya, meneruskan konfigurasi antar sumber daya untuk mengelola pola infrastruktur yang kompleks secara sederhana.

Untuk contoh rinci tentang membuat komposisi sumber daya kustom dengan sumber daya ACK, lihat [konsep kro](kro-concepts.md) 

## Langkah selanjutnya
<a name="_next_steps"></a>
+  [Pertimbangan ACK untuk EKS](ack-considerations.md)- Pola dan strategi integrasi khusus EKS

# 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

# Pertimbangan ACK untuk EKS
<a name="ack-considerations"></a>

Topik ini mencakup pertimbangan penting untuk menggunakan Kemampuan EKS untuk ACK, termasuk konfigurasi IAM, pola multi-akun, dan integrasi dengan kemampuan EKS lainnya.

## Pola konfigurasi IAM
<a name="_iam_configuration_patterns"></a>

Kemampuan ACK menggunakan Peran Kemampuan IAM untuk mengautentikasi dengan. AWS Pilih pola IAM yang tepat berdasarkan kebutuhan Anda.

### Sederhana: Peran Kemampuan Tunggal
<a name="_simple_single_capability_role"></a>

Untuk pengembangan, pengujian, atau kasus penggunaan sederhana, berikan semua izin yang diperlukan langsung ke Peran Kemampuan.

 **Kapan menggunakan**:
+ Memulai dengan ACK
+ Penerapan akun tunggal
+ Semua sumber daya dikelola oleh satu tim
+ Lingkungan pengembangan dan pengujian

 **Contoh**: Tambahkan izin S3 dan RDS ke Peran Kemampuan Anda dengan kondisi penandaan sumber daya:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:*"],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": ["us-west-2", "us-east-1"]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": ["rds:*"],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": ["us-west-2", "us-east-1"]
        },
      }
    }
  ]
}
```

Contoh ini membatasi operasi S3 dan RDS ke wilayah tertentu dan membutuhkan sumber daya RDS untuk memiliki tag. `ManagedBy: ACK`

### Produksi: Penyeleksi Peran IAM
<a name="_production_iam_role_selectors"></a>

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

 **Kapan menggunakan**:
+ Lingkungan produksi
+ Cluster multi-tim
+ Manajemen sumber daya multi-akun
+ Persyaratan keamanan dengan hak istimewa paling sedikit
+ Layanan yang berbeda memerlukan izin yang berbeda

 **Manfaat**:
+ Setiap namespace hanya mendapatkan izin yang dibutuhkannya
+ Isolasi tim - Tim A tidak dapat menggunakan izin Tim B
+ Audit dan kepatuhan yang lebih mudah
+ Diperlukan untuk manajemen sumber daya lintas akun

Untuk konfigurasi Pemilih Peran IAM yang mendetail, lihat. [Konfigurasikan izin ACK](ack-permissions.md)

## Integrasi dengan kemampuan EKS lainnya
<a name="_integration_with_other_eks_capabilities"></a>

### GitOps dengan Argo CD
<a name="_gitops_with_argo_cd"></a>

Gunakan Kemampuan EKS untuk Argo CD untuk menyebarkan sumber daya ACK dari repositori Git, memungkinkan GitOps alur kerja untuk manajemen infrastruktur.

 **Pertimbangan**:
+ Simpan sumber daya ACK bersama manifes aplikasi untuk end-to-end GitOps
+ Atur berdasarkan lingkungan, layanan, atau jenis sumber daya berdasarkan struktur tim Anda
+ Gunakan sinkronisasi otomatis Argo CD untuk rekonsiliasi berkelanjutan
+ Aktifkan pemangkasan untuk menghapus sumber daya yang dihapus secara otomatis
+ Pertimbangkan hub-and-spoke pola untuk manajemen infrastruktur multi-cluster

GitOps menyediakan jalur audit, kemampuan rollback, dan manajemen infrastruktur deklaratif. Untuk informasi lebih lanjut tentang Argo CD, lihat[Bekerja dengan Argo CD](working-with-argocd.md).

### Komposisi sumber daya dengan kro
<a name="_resource_composition_with_kro"></a>

Gunakan Kemampuan EKS untuk kro (Kube Resource Orchestrator) untuk menyusun beberapa sumber daya ACK ke dalam abstraksi dan kustom tingkat yang lebih tinggi. APIs

 **Kapan menggunakan kro dengan ACK**:
+ Buat pola yang dapat digunakan kembali untuk tumpukan infrastruktur umum (database\$1cadangan\$1pemantauan)
+ Membangun platform swalayan dengan disederhanakan APIs untuk tim aplikasi
+ Kelola dependensi sumber daya dan berikan nilai antar sumber daya (ARN bucket S3 ke fungsi Lambda)
+ Standarisasi konfigurasi infrastruktur di seluruh tim
+ Kurangi kompleksitas dengan menyembunyikan detail implementasi di balik sumber daya khusus

 **Contoh pola**:
+ Tumpukan aplikasi: ember S3\$1antrian SQS\$1konfigurasi notifikasi
+ Pengaturan basis data: contoh RDS\$1grup parameter\$1grup keamanan\$1rahasia
+ Jaringan: VPC\$1subnet\$1tabel rute\$1grup keamanan

kro menangani pengurutan ketergantungan, propagasi status, dan manajemen siklus hidup untuk sumber daya tersusun. Untuk informasi lebih lanjut tentang kro, lihat[konsep kro](kro-concepts.md).

## Mengatur sumber daya Anda
<a name="_organizing_your_resources"></a>

Atur sumber daya ACK menggunakan ruang nama Kubernetes dan tag AWS sumber daya untuk pengelolaan, kontrol akses, dan pelacakan biaya yang lebih baik.

### Organisasi namespace
<a name="_namespace_organization"></a>

Gunakan ruang nama Kubernetes untuk memisahkan sumber daya ACK secara logis berdasarkan lingkungan (produksi, pementasan, pengembangan), tim (platform, data, mL), atau aplikasi.

 **Manfaat**:
+ RBAC dengan cakupan ruang nama untuk kontrol akses
+ Setel wilayah default per namespace menggunakan anotasi
+ Pengelolaan dan pembersihan sumber daya yang lebih mudah
+ Pemisahan logis selaras dengan struktur organisasi

### Penandaan sumber daya
<a name="_resource_tagging"></a>

Kemampuan EKS ACK secara otomatis menerapkan tag default ke semua AWS sumber daya yang dibuatnya. Tag ini berbeda dari ACK yang dikelola sendiri dan memberikan kemampuan penelusuran yang ditingkatkan.

 **Tag default diterapkan oleh kemampuan**:


| Tag Kunci | Deskripsi | 
| --- | --- | 
|   `eks:controller-version`   |  Versi pengontrol ACK  | 
|   `eks:kubernetes-namespace`   |  Namespace Kubernetes dari sumber daya ACK  | 
|   `eks:kubernetes-resource-name`   |  Nama sumber daya Kubernetes  | 
|   `eks:kubernetes-api-group`   |  Grup API Kubernetes (misalnya,) `s3.services.k8s.aws`  | 
|   `eks:eks-capability-arn`   |  ARN dari kemampuan EKS ACK  | 

**catatan**  
ACK yang dikelola sendiri menggunakan tag default yang berbeda: `services.k8s.aws/controller-version` dan`services.k8s.aws/namespace`. Tag kemampuan menggunakan `eks:` awalan untuk konsistensi dengan fitur EKS lainnya.

 **Tag tambahan yang direkomendasikan**:

Tambahkan tag khusus untuk alokasi biaya, pelacakan kepemilikan, dan tujuan organisasi:
+ Lingkungan (Produksi, Pementasan, Pengembangan)
+ Kepemilikan tim atau departemen
+ Pusat biaya untuk alokasi penagihan
+ Nama aplikasi atau layanan

## Migrasi dari Infrastructure-as-code alat lain
<a name="_migration_from_other_infrastructure_as_code_tools"></a>

Banyak organisasi menemukan nilai dalam standarisasi Kubernetes di luar orkestrasi beban kerja mereka. Migrasi infrastruktur dan manajemen AWS sumber daya ke ACK memungkinkan Anda menstandarisasi manajemen infrastruktur menggunakan Kubernetes APIs di samping beban kerja aplikasi Anda.

 **Manfaat standarisasi di Kubernetes** untuk infrastruktur:
+  **Sumber kebenaran tunggal**: Mengelola aplikasi dan infrastruktur di Kubernetes, memungkinkan praktik end-to-end GitOps 
+  **Perkakas terpadu: Tim menggunakan sumber daya dan perkakas** Kubernetes daripada mempelajari beberapa alat dan kerangka kerja
+  **Rekonsiliasi yang konsisten**: ACK terus merekonsiliasi AWS sumber daya seperti yang dilakukan Kubernetes untuk beban kerja, mendeteksi dan mengoreksi penyimpangan dibandingkan dengan alat penting
+  **Komposisi asli**: Dengan kro dan ACK bersama-sama, referensi AWS sumber daya secara langsung dalam manifes aplikasi dan sumber daya, meneruskan string koneksi dan ARNs antar sumber daya
+  **Operasi yang disederhanakan**: Satu bidang kontrol untuk penerapan, rollback, dan observabilitas di seluruh sistem Anda

ACK mendukung adopsi AWS sumber daya yang ada tanpa membuatnya kembali, memungkinkan migrasi zero-downtime dari, Terraform CloudFormation, atau sumber daya di luar cluster.

 **Mengadopsi sumber daya yang ada**:

```
apiVersion: s3.services.k8s.aws/v1alpha1
kind: Bucket
metadata:
  name: existing-bucket
  annotations:
    services.k8s.aws/adoption-policy: "adopt-or-create"
spec:
  name: my-existing-bucket-name
```

Setelah diadopsi, sumber daya dikelola oleh ACK dan dapat diperbarui melalui manifes Kubernetes. Anda dapat bermigrasi secara bertahap, mengadopsi sumber daya sesuai kebutuhan sambil mempertahankan alat IAc yang ada untuk sumber daya lain.

ACK juga mendukung sumber daya read-only. Untuk sumber daya yang dikelola oleh tim atau alat lain yang ingin Anda referensikan tetapi tidak diubah, gabungkan adopsi dengan kebijakan `retain` penghapusan dan berikan izin IAM baca saja. Hal ini memungkinkan aplikasi untuk menemukan infrastruktur bersama (VPCs, peran IAM, kunci KMS) melalui Kubernetes tanpa risiko modifikasi APIs .

Untuk informasi lebih lanjut tentang adopsi sumber daya, lihat[Konsep ACK](ack-concepts.md).

## Kebijakan penghapusan
<a name="_deletion_policies"></a>

Kebijakan penghapusan mengontrol apa yang terjadi pada AWS sumber daya ketika Anda menghapus sumber daya Kubernetes yang sesuai. Pilih kebijakan yang tepat berdasarkan siklus hidup sumber daya dan persyaratan operasional Anda.

### Hapus (default)
<a name="_delete_default"></a>

Sumber AWS daya akan dihapus ketika Anda menghapus sumber daya Kubernetes. Ini menjaga konsistensi antara cluster Anda dan AWS, memastikan sumber daya tidak menumpuk.

 **Kapan menggunakan hapus**:
+ Lingkungan pengembangan dan pengujian di mana pembersihan itu penting
+ Sumber daya sementara yang terkait dengan siklus hidup aplikasi (database pengujian, ember sementara)
+ Sumber daya yang seharusnya tidak hidup lebih lama dari aplikasi (antrian SQS, cluster) ElastiCache 
+ Optimalisasi biaya - secara otomatis membersihkan sumber daya yang tidak digunakan
+ Lingkungan yang dikelola dengan GitOps tempat penghapusan sumber daya dari Git harus menghapus infrastruktur

Kebijakan penghapusan default sejalan dengan model deklaratif Kubernetes: apa yang ada di klaster cocok dengan apa yang ada di dalamnya. AWS

### Mempertahankan
<a name="_retain"></a>

Sumber AWS daya disimpan saat Anda menghapus sumber daya Kubernetes. Ini melindungi data penting dan memungkinkan sumber daya untuk hidup lebih lama dari representasi Kubernetes mereka.

 **Kapan menggunakan pertahankan**:
+ Database produksi dengan data penting yang harus bertahan dari perubahan klaster
+ Ember penyimpanan jangka panjang dengan kepatuhan atau persyaratan audit
+ Sumber daya bersama yang digunakan oleh beberapa aplikasi atau tim
+ Sumber daya dimigrasikan ke alat manajemen yang berbeda
+ Skenario pemulihan bencana di mana Anda ingin melestarikan infrastruktur
+ Sumber daya dengan dependensi kompleks yang membutuhkan penonaktifan yang cermat

```
apiVersion: rds.services.k8s.aws/v1alpha1
kind: DBInstance
metadata:
  name: production-db
  annotations:
    services.k8s.aws/deletion-policy: "retain"
spec:
  dbInstanceIdentifier: prod-db
  # ... configuration
```

**penting**  
Sumber daya yang tertahan terus mengeluarkan AWS biaya dan harus dihapus secara manual dari AWS saat tidak lagi diperlukan. Gunakan penandaan sumber daya untuk melacak sumber daya yang disimpan untuk pembersihan.

Untuk selengkapnya tentang kebijakan penghapusan, lihat. [Konsep ACK](ack-concepts.md)

## Dokumentasi hulu
<a name="_upstream_documentation"></a>

Untuk informasi rinci tentang penggunaan ACK:
+  [Panduan penggunaan ACK](https://aws-controllers-k8s.github.io/community/docs/user-docs/usage/) - Membuat dan mengelola sumber daya
+  [Referensi ACK API](https://aws-controllers-k8s.github.io/community/reference/) - Dokumentasi API lengkap untuk semua layanan
+  [Dokumentasi ACK - Dokumentasi](https://aws-controllers-k8s.github.io/community/docs/) pengguna yang komprehensif

## Langkah selanjutnya
<a name="_next_steps"></a>
+  [Konfigurasikan izin ACK](ack-permissions.md)- Konfigurasikan izin IAM dan pola multi-akun
+  [Konsep ACK](ack-concepts.md)- Memahami konsep ACK dan siklus hidup sumber daya
+  [Memecahkan masalah dengan kemampuan ACK](ack-troubleshooting.md)- Memecahkan masalah ACK
+  [Bekerja dengan Argo CD](working-with-argocd.md)- Menyebarkan sumber daya ACK dengan GitOps
+  [konsep kro](kro-concepts.md)- Tulis sumber daya ACK ke dalam abstraksi tingkat yang lebih tinggi

# Memecahkan masalah dengan kemampuan ACK
<a name="ack-troubleshooting"></a>

Topik ini memberikan panduan pemecahan masalah untuk Kemampuan EKS untuk ACK, termasuk pemeriksaan kesehatan kemampuan, verifikasi status sumber daya, dan masalah izin IAM.

**catatan**  
Kemampuan EKS sepenuhnya dikelola dan dijalankan di luar cluster Anda. Anda tidak memiliki akses ke log pengontrol atau ruang nama pengontrol. Pemecahan masalah berfokus pada kesehatan kemampuan, status sumber daya, dan konfigurasi IAM.

## Kemampuan aktif tetapi sumber daya tidak dibuat
<a name="_capability_is_active_but_resources_arent_being_created"></a>

Jika kemampuan ACK Anda menunjukkan `ACTIVE` status tetapi sumber daya tidak dibuat AWS, periksa kesehatan kemampuan, status sumber daya, dan izin IAM.

 **Periksa kesehatan kemampuan**:

Anda dapat melihat masalah kesehatan dan status kemampuan di konsol EKS atau menggunakan AWS CLI.

 **Konsol**:

1. Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/ rumah\$1/cluster.

1. Pilih nama cluster Anda.

1. Pilih tab **Observability**.

1. Pilih **Monitor cluster**.

1. Pilih tab **Kemampuan** untuk melihat kesehatan dan status untuk semua kemampuan.

 ** AWS CLI**:

```
# View capability status and health
aws eks describe-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-ack

# Look for issues in the health section
```

 **Penyebab umum**:
+  **Izin IAM hilang**: Peran Kemampuan tidak memiliki izin untuk layanan AWS 
+  **Namespace yang salah**: Sumber daya dibuat di namespace tanpa Selector yang tepat IAMRole
+  **Spesifikasi sumber daya tidak valid**: Periksa kondisi status sumber daya untuk kesalahan validasi
+  **Pelambatan API: Batas** laju AWS API tercapai
+  **Webhooks penerimaan**: Webhook masuk memblokir pengontrol dari menambal status sumber daya

 **Periksa status sumber daya**:

```
# Describe the resource to see conditions and events
kubectl describe bucket my-bucket -n default

# Look for status conditions
kubectl get bucket my-bucket -n default -o jsonpath='{.status.conditions}'

# View resource events
kubectl get events --field-selector involvedObject.name=my-bucket -n default
```

 **Verifikasi izin IAM**:

```
# View the Capability Role's policies
aws iam list-attached-role-policies --role-name my-ack-capability-role
aws iam list-role-policies --role-name my-ack-capability-role

# Get specific policy details
aws iam get-role-policy --role-name my-ack-capability-role --policy-name policy-name
```

## Sumber daya dibuat AWS tetapi tidak ditampilkan di Kubernetes
<a name="resources_created_in_shared_aws_but_not_showing_in_kubernetes"></a>

ACK hanya melacak sumber daya yang dibuatnya melalui manifes Kubernetes. Untuk mengelola AWS sumber daya yang ada dengan ACK, gunakan fitur adopsi.

```
apiVersion: s3.services.k8s.aws/v1alpha1
kind: Bucket
metadata:
  name: existing-bucket
  annotations:
    services.k8s.aws/adoption-policy: "adopt-or-create"
spec:
  name: my-existing-bucket-name
```

Untuk informasi lebih lanjut tentang adopsi sumber daya, lihat[Konsep ACK](ack-concepts.md).

## Sumber daya lintas akun tidak dibuat
<a name="_cross_account_resources_not_being_created"></a>

Jika sumber daya tidak dibuat di AWS akun target saat menggunakan Penyeleksi Peran IAM, verifikasi hubungan kepercayaan dan konfigurasi IAMRole Pemilih.

 **Verifikasi hubungan kepercayaan**:

```
# Check the trust policy in the target account role
aws iam get-role --role-name cross-account-ack-role --query 'Role.AssumeRolePolicyDocument'
```

Kebijakan kepercayaan harus memungkinkan Peran Kemampuan akun sumber untuk mengasumsikannya.

 **Konfirmasikan konfigurasi IAMRole Selector**:

```
# List IAMRoleSelectors (cluster-scoped)
kubectl get iamroleselector

# Describe specific selector
kubectl describe iamroleselector my-selector
```

 **Verifikasi penyelarasan namespace**:

IAMRoleSelector adalah sumber daya dengan cakupan cluster tetapi menargetkan ruang nama tertentu. Pastikan sumber daya ACK Anda berada di namespace yang cocok dengan pemilih namespace IAMRole Selector:

```
# Check resource namespace
kubectl get bucket my-cross-account-bucket -n production

# List all IAMRoleSelectors (cluster-scoped)
kubectl get iamroleselector

# Check which namespace the selector targets
kubectl get iamroleselector my-selector -o jsonpath='{.spec.namespaceSelector}'
```

 **Periksa Kondisi IAMRole yang dipilih**:

Verifikasi bahwa IAMRole Pemilih berhasil dicocokkan dengan sumber daya Anda dengan memeriksa kondisi: `ACK.IAMRoleSelected`

```
# Check if IAMRoleSelector was matched
kubectl get bucket my-cross-account-bucket -n production -o jsonpath='{.status.conditions[?(@.type=="ACK.IAMRoleSelected")]}'
```

Jika kondisinya ada `False` atau hilang, IAMRole pemilih namespace Selector tidak cocok dengan namespace sumber daya. Verifikasi bahwa pemilih `namespaceSelector` cocok dengan label namespace sumber daya Anda.

 **Periksa izin Peran Kemampuan**:

Kebutuhan `sts:AssumeRole` dan `sts:TagSession` izin Peran Kemampuan untuk peran akun target:

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

Untuk konfigurasi lintas akun yang mendetail, lihat[Konfigurasikan izin ACK](ack-permissions.md).

## Langkah selanjutnya
<a name="_next_steps"></a>
+  [Pertimbangan ACK untuk EKS](ack-considerations.md)- Pertimbangan ACK dan praktik terbaik
+  [Konfigurasikan izin ACK](ack-permissions.md)- Konfigurasikan izin IAM dan pola multi-akun
+  [Konsep ACK](ack-concepts.md)- Memahami konsep ACK dan siklus hidup sumber daya
+  [Memecahkan Masalah Kemampuan EKS](capabilities-troubleshooting.md)- Panduan pemecahan masalah kemampuan umum

# Membandingkan Kemampuan EKS untuk ACK dengan ACK yang dikelola sendiri
<a name="ack-comparison"></a>

Kemampuan EKS untuk ACK menyediakan fungsionalitas yang sama dengan pengontrol ACK yang dikelola sendiri, tetapi dengan keunggulan operasional yang signifikan. Untuk perbandingan umum Kemampuan EKS vs solusi yang dikelola sendiri, lihat[Pertimbangan Kemampuan EKS](capabilities-considerations.md). Topik ini berfokus pada perbedaan spesifik ACK.

## Perbedaan dari ACK hulu
<a name="_differences_from_upstream_ack"></a>

Kemampuan EKS untuk ACK didasarkan pada pengontrol ACK hulu tetapi berbeda dalam integrasi IAM.

 **Peran Kemampuan IAM: Kemampuan menggunakan peran** IAM khusus dengan kebijakan kepercayaan yang memungkinkan prinsipal `capabilities.eks.amazonaws.com` layanan, bukan IRSA (Peran IAM untuk Akun Layanan). Anda dapat melampirkan kebijakan IAM langsung ke Peran Kemampuan tanpa perlu membuat atau membuat anotasi akun layanan Kubernetes atau mengonfigurasi penyedia OIDC. Praktik terbaik untuk kasus penggunaan produksi adalah mengonfigurasi izin layanan menggunakan`IAMRoleSelector`. Lihat [Konfigurasikan izin ACK](ack-permissions.md) untuk detail selengkapnya.

 **Tag sesi**: Kemampuan terkelola secara otomatis menetapkan tag sesi pada semua permintaan AWS API, memungkinkan kontrol akses dan audit berbutir halus. Tag termasuk`eks:eks-capability-arn`,`eks:kubernetes-namespace`, dan`eks:kubernetes-api-group`. Ini berbeda dari ACK yang dikelola sendiri, yang tidak mengatur tag ini secara default. Lihat [Konfigurasikan izin ACK](ack-permissions.md) detail tentang penggunaan tag sesi dalam kebijakan IAM.

 **Tag sumber daya**: Kemampuan menerapkan tag default yang berbeda ke AWS sumber daya daripada ACK yang dikelola sendiri. Kemampuan menggunakan tag `eks:` awalan (seperti`eks:kubernetes-namespace`,`eks:eks-capability-arn`) alih-alih `services.k8s.aws/` tag yang digunakan oleh ACK yang dikelola sendiri. Lihat [Pertimbangan ACK untuk EKS](ack-considerations.md) daftar lengkap tag sumber daya default.

 **Kompatibilitas sumber daya**: Sumber daya kustom ACK bekerja secara identik dengan ACK upstream tanpa perubahan pada file YAMAL sumber daya ACK Anda. Kemampuannya menggunakan Kubernetes yang sama APIs dan CRDs, jadi alat seperti `kubectl` bekerja dengan cara yang sama. Semua pengontrol GA dan sumber daya dari ACK hulu didukung.

Untuk dokumentasi ACK lengkap dan panduan khusus layanan, lihat dokumentasi [ACK](https://aws-controllers-k8s.github.io/community/).

## Jalur migrasi
<a name="_migration_path"></a>

Anda dapat bermigrasi dari ACK yang dikelola sendiri ke kemampuan terkelola tanpa waktu henti:

1. Perbarui pengontrol ACK yang dikelola sendiri `kube-system` untuk digunakan untuk sewa pemilihan pemimpin, misalnya:

   ```
   helm upgrade --install ack-s3-controller \
     oci://public.ecr.aws/aws-controllers-k8s/s3-chart \
     --namespace ack-system \
     --set leaderElection.namespace=kube-system
   ```

   Ini memindahkan sewa pengontrol`kube-system`, memungkinkan kemampuan terkelola untuk berkoordinasi dengannya.

1. Buat kemampuan ACK di cluster Anda (lihat[Buat kemampuan ACK](create-ack-capability.md))

1. Kemampuan terkelola mengenali AWS sumber daya yang dikelola ACK yang ada dan mengambil alih rekonsiliasi

1. Secara bertahap turunkan atau hapus penerapan pengontrol yang dikelola sendiri:

   ```
   helm uninstall ack-s3-controller --namespace ack-system
   ```

Pendekatan ini memungkinkan kedua pengendali untuk hidup berdampingan dengan aman selama migrasi. Kemampuan yang dikelola secara otomatis mengadopsi sumber daya yang sebelumnya dikelola oleh pengendali yang dikelola sendiri, memastikan rekonsiliasi berkelanjutan tanpa konflik.

## Langkah selanjutnya
<a name="_next_steps"></a>
+  [Buat kemampuan ACK](create-ack-capability.md)- Buat sumber daya kemampuan ACK
+  [Konsep ACK](ack-concepts.md)- Memahami konsep ACK dan siklus hidup sumber daya
+  [Konfigurasikan izin ACK](ack-permissions.md)- Konfigurasikan IAM dan izin