

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

# Berikan akses pengontrol penyeimbang beban Mode Otomatis EKS ke Rahasia tertentu
<a name="auto-managed-rbac-example"></a>

Dalam tutorial ini, Anda memberikan akses baca pengontrol penyeimbang beban Mode Otomatis Amazon EKS ke Ku `Secret` bernetes tertentu. Ini membuka blokir otentikasi OIDC pada ALB. `Ingress` Anda menggunakan ruang nama yang dicakup `Role` dan `RoleBinding` ditargetkan pada grup. `eks:managed`

Tutorial ini membutuhkan waktu sekitar 15 menit untuk menyelesaikannya. Objek Kubernetes RBAC yang Anda buat tidak dikenakan biaya. AWS 

Pengontrol penyeimbang beban Mode Otomatis Amazon EKS mendukung otentikasi OIDC pada objek AL `Ingress` B. Ini menggunakan `alb.ingress.kubernetes.io/auth-type: oidc` anotasi untuk mengaktifkan otentikasi ini. Untuk menyelesaikan konfigurasi OIDC, controller membaca Kubernetes yang dinamai dalam anotasi`Secret`. `alb.ingress.kubernetes.io/auth-idp-oidc` Kebijakan akses terkelola saat ini tidak diberikan `get` pada `Secret` objek, sehingga rekonsiliasi gagal dengan pesan yang mirip dengan:

```
Failed build model due to ingress: <ns>/<name>:
  secrets "<secret>" is forbidden:
  User "arn:aws:sts::<acct>:assumed-role/AWSServiceRoleForAmazonEKS/<session>"
  cannot get resource "secrets" in API group "" in the namespace "<ns>"
```

Dengan menggunakan mekanisme yang dijelaskan di[Berikan Kubernetes RBAC tambahan ke pengontrol yang dikelola Mode Otomatis EKS](auto-managed-rbac.md), Anda dapat memberikan pengontrol terkelola tepat `get` pada OIDC yang dibutuh `Secret` kannya.

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

Sebelum memulai, pastikan Anda memiliki:
+ Cluster Mode Otomatis Amazon EKS dengan entri `AWSServiceRoleForAmazonEKS` akses yang dibuat secara otomatis.
+  `kubectl`dikonfigurasi dengan akses cluster.
+  AWS CLI diinstal dan dikonfigurasi dengan izin untuk `aws sts get-caller-identity` dan`aws eks describe-access-entry`.
+ ALB `Ingress` yang menggunakan `alb.ingress.kubernetes.io/auth-type: oidc` anotasi, dan Kubernetes `Secret` yang dirujukkannya.

## Langkah 1: Identifikasi Rahasia untuk ditambahkan ke daftar izinkan
<a name="_step_1_identify_the_secret_to_add_to_the_allow_list"></a>

Konfigurasi OIDC pada ALB `Ingress` terlihat seperti berikut ini. Catat `Secret` nama dan `Ingress` namespace — objek RBAC harus hidup di namespace yang sama dengan. `Secret`

```
annotations:
  alb.ingress.kubernetes.io/auth-type: oidc
  alb.ingress.kubernetes.io/auth-idp-oidc: >
    {
      "issuer": "...",
      "authorizationEndpoint": "...",
      "tokenEndpoint": "...",
      "userInfoEndpoint": "...",
      "secretName": "oidc"
    }
```

Sisa contoh ini menggunakan namespace `monitoring` dan `Secret` nama`oidc`.

## Langkah 2: Terapkan Peran bercakupan ruang nama dan RoleBinding
<a name="_step_2_apply_a_namespace_scoped_role_and_rolebinding"></a>

Formulir ini `get` memberikan persis nama tepat `Secret` dalam satu namespace. Simpan yang berikut ini sebagai`eks-managed-oidc-secret-reader.yaml`:

```
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: eks-managed-oidc-secret-reader
  namespace: monitoring
rules:
- apiGroups: [""]
  resources: ["secrets"]
  resourceNames: ["oidc"]
  verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: eks-managed-oidc-secret-reader
  namespace: monitoring
subjects:
- kind: Group
  name: eks:managed
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: eks-managed-oidc-secret-reader
  apiGroup: rbac.authorization.k8s.io
```

Menerapkannya:

```
kubectl apply -f eks-managed-oidc-secret-reader.yaml
```

Untuk menambahkan lebih banyak `Secret` objek ke daftar izinkan nanti, tambahkan nama mereka ke `Role’s `resourceNames` daftar dan terapkan kembali.

## Langkah 3: Konfirmasikan pemulihan Ingress
<a name="_step_3_confirm_the_ingress_recovers"></a>

Pengontrol penyeimbang beban merekonsiliasi ulang `Ingress` pada lintasan berikutnya (biasanya dalam beberapa menit). Saat hibah berfungsi, `secrets "oidc" is forbidden` kesalahan sebelumnya berhenti muncul di `Ingress` dan penyeimbang beban berlanjut. Jika kesalahan berlanjut, periksa kembali`Role’s `namespace`,`resourceNames`, dan `RoleBinding` subjeknya.

## Menghapus hibah
<a name="_removing_the_grant"></a>

**penting**  
Simpan `Role` dan `RoleBinding` di tempatnya selama ALB `Ingress` digunakan`alb.ingress.kubernetes.io/auth-type: oidc`. Menghapusnya kembali merusak resolusi OIDC pada. `Ingress`

Jika Anda berhenti menggunakan OIDC pada`Ingress`, hapus hibah:

```
kubectl delete rolebinding eks-managed-oidc-secret-reader -n monitoring
kubectl delete role        eks-managed-oidc-secret-reader -n monitoring
```

## Sumber daya terkait
<a name="_related_resources"></a>
+  [Berikan Kubernetes RBAC tambahan ke pengontrol yang dikelola Mode Otomatis EKS](auto-managed-rbac.md)— Tinjauan konseptual `eks:managed` kelompok dan bagaimana ruang lingkup hibah.
+  [Berikan akses kepada pengguna IAM ke Kubernetes dengan entri akses EKS](access-entries.md)— Entri akses Amazon EKS.
+  [Menggunakan Otorisasi RBAC ](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) dalam dokumentasi Kubernetes.