

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

# Enkripsi rahasia Kubernetes dengan KMS di cluster yang ada
<a name="enable-kms"></a>

**penting**  
Prosedur ini hanya berlaku untuk klaster EKS yang menjalankan Kubernetes versi 1.27 atau lebih rendah. Jika Anda menjalankan Kubernetes versi 1.28 atau lebih tinggi, rahasia Kubernetes Anda dilindungi dengan enkripsi amplop secara default. Untuk informasi selengkapnya, lihat [Enkripsi amplop default untuk semua Data API Kubernetes](envelope-encryption.md).

Jika Anda mengaktifkan [enkripsi rahasia](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/), rahasia Kubernetes dienkripsi menggunakan kunci AWS KMS yang Anda pilih. Kunci KMS harus memenuhi ketentuan berikut:
+ Simetris
+ Dapat mengenkripsi dan mendekripsi data
+ Dibuat di AWS Wilayah yang sama dengan cluster
+ Jika kunci KMS dibuat di akun yang berbeda, [kepala sekolah IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal) harus memiliki akses ke kunci KMS.

Untuk informasi selengkapnya, lihat [Mengizinkan kepala IAM di akun lain menggunakan kunci KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) di Panduan Pengembang Layanan Manajemen *[AWS Kunci](https://docs.aws.amazon.com/kms/latest/developerguide/)*.

**Awas**  
Anda tidak dapat menonaktifkan enkripsi rahasia setelah mengaktifkannya. Tindakan ini tidak dapat diubah.

eksctl   
Prosedur ini hanya berlaku untuk klaster EKS yang menjalankan Kubernetes versi 1.27 atau lebih rendah. Untuk informasi selengkapnya, lihat [Enkripsi amplop default untuk semua Data API Kubernetes](envelope-encryption.md).

Anda dapat mengaktifkan enkripsi dengan dua cara:
+ Tambahkan enkripsi ke klaster Anda dengan satu perintah.

  Untuk mengenkripsi ulang rahasia Anda secara otomatis, jalankan perintah berikut.

  ```
  eksctl utils enable-secrets-encryption \
      --cluster my-cluster \
      --key-arn arn:aws: kms:region-code:account:key/key
  ```

  Untuk memilih keluar dari mengenkripsi ulang rahasia Anda secara otomatis, jalankan perintah berikut.

  ```
  eksctl utils enable-secrets-encryption
      --cluster my-cluster \
      --key-arn arn:aws: kms:region-code:account:key/key \
      --encrypt-existing-secrets=false
  ```
+ Tambahkan enkripsi ke cluster Anda dengan `kms-cluster.yaml` file.

  ```
  apiVersion: eksctl.io/v1alpha5
  kind: ClusterConfig
  
  metadata:
    name: my-cluster
    region: region-code
  
  secretsEncryption:
    keyARN: arn:aws: kms:region-code:account:key/key
  ```

  Agar rahasia Anda mengenkripsi ulang secara otomatis, jalankan perintah berikut.

  ```
  eksctl utils enable-secrets-encryption -f kms-cluster.yaml
  ```

  Untuk memilih keluar dari enkripsi ulang rahasia Anda secara otomatis, jalankan perintah berikut.

  ```
  eksctl utils enable-secrets-encryption -f kms-cluster.yaml --encrypt-existing-secrets=false
  ```  
 Konsol Manajemen AWS   

  1. Prosedur ini hanya berlaku untuk klaster EKS yang menjalankan Kubernetes versi 1.27 atau lebih rendah. Untuk informasi selengkapnya, lihat [Enkripsi amplop default untuk semua Data API Kubernetes](envelope-encryption.md).

  1. Buka [konsol Amazon EKS](https://console.aws.amazon.com/eks/home#/clusters).

  1. Pilih cluster yang ingin Anda tambahkan enkripsi KMS.

  1. Pilih tab **Ikhtisar** (ini dipilih secara default).

  1. Gulir ke bawah ke bagian **enkripsi Rahasia** dan pilih **Aktifkan**.

  1. Pilih kunci dari daftar dropdown dan pilih tombol **Enable**. Jika tidak ada kunci yang tercantum, Anda harus membuatnya dulu. Untuk informasi selengkapnya, lihat [Membuat kunci](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) 

  1. Pilih tombol **Konfirmasi** untuk menggunakan tombol yang dipilih.  
 AWS CLI  

  1. Prosedur ini hanya berlaku untuk klaster EKS yang menjalankan Kubernetes versi 1.27 atau lebih rendah. Untuk informasi selengkapnya, lihat [Enkripsi amplop default untuk semua Data API Kubernetes](envelope-encryption.md).

  1. Kaitkan konfigurasi [enkripsi rahasia](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/) dengan cluster Anda menggunakan perintah AWS CLI berikut. Ganti Contoh nilai dengan nilai Anda sendiri.

     ```
     aws eks associate-encryption-config \
         --cluster-name my-cluster \
         --encryption-config '[{"resources":["secrets"],"provider":{"keyArn":"arn:aws: kms:region-code:account:key/key"}}]'
     ```

     Contoh output adalah sebagai berikut.

     ```
     {
       "update": {
         "id": "3141b835-8103-423a-8e68-12c2521ffa4d",
         "status": "InProgress",
         "type": "AssociateEncryptionConfig",
         "params": [
           {
             "type": "EncryptionConfig",
             "value": "[{\"resources\":[\"secrets\"],\"provider\":{\"keyArn\":\"arn:aws: kms:region-code:account:key/key\"}}]"
           }
         ],
         "createdAt": 1613754188.734,
         "errors": []
       }
     }
     ```

  1. Anda dapat memantau status pembaruan enkripsi Anda dengan perintah berikut. Gunakan spesifik `cluster name` dan `update ID` yang dikembalikan pada output sebelumnya. Ketika `Successful` status ditampilkan, pembaruan selesai.

     ```
     aws eks describe-update \
         --region region-code \
         --name my-cluster \
         --update-id 3141b835-8103-423a-8e68-12c2521ffa4d
     ```

     Contoh output adalah sebagai berikut.

     ```
     {
       "update": {
         "id": "3141b835-8103-423a-8e68-12c2521ffa4d",
         "status": "Successful",
         "type": "AssociateEncryptionConfig",
         "params": [
           {
             "type": "EncryptionConfig",
             "value": "[{\"resources\":[\"secrets\"],\"provider\":{\"keyArn\":\"arn:aws: kms:region-code:account:key/key\"}}]"
           }
         ],
         "createdAt": 1613754188.734>,
         "errors": []
       }
     }
     ```

  1. Untuk memverifikasi bahwa enkripsi diaktifkan di klaster Anda, jalankan perintah `describe-cluster`. Responsnya berisi `EncryptionConfig` string.

     ```
     aws eks describe-cluster --region region-code --name my-cluster
     ```

Setelah mengaktifkan enkripsi di klaster, Anda harus mengenkripsi semua rahasia yang ada dengan kunci baru:

**catatan**  
Jika Anda menggunakan`eksctl`, menjalankan perintah berikut hanya diperlukan jika Anda memilih untuk tidak mengenkripsi ulang rahasia Anda secara otomatis.

```
kubectl get secrets --all-namespaces -o json | kubectl annotate --overwrite -f - kms-encryption-timestamp="time value"
```

**Awas**  
Jika Anda mengaktifkan [enkripsi rahasia](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/) untuk cluster yang ada dan kunci KMS yang Anda gunakan pernah dihapus, maka tidak ada cara untuk memulihkan cluster. Jika Anda menghapus kunci KMS, Anda secara permanen menempatkan cluster dalam keadaan terdegradasi. Untuk informasi selengkapnya, lihat [Menghapus kunci AWS KMS.](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html)

**catatan**  
Secara default, `create-key` perintah membuat [kunci KMS enkripsi simetris](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) dengan kebijakan kunci yang memberikan akses admin root akun pada tindakan dan sumber daya AWS KMS. Jika Anda ingin mengurangi izin, pastikan bahwa `kms:CreateGrant` tindakan `kms:DescribeKey` dan diizinkan pada kebijakan untuk prinsipal yang memanggil `create-cluster` API.  
Untuk cluster yang menggunakan Enkripsi Amplop KMS, `kms:CreateGrant` izin diperlukan. Kondisi `kms:GrantIsForAWSResource` ini tidak didukung untuk CreateCluster tindakan, dan tidak boleh digunakan dalam kebijakan KMS untuk mengontrol `kms:CreateGrant` izin bagi pengguna yang melakukan. CreateCluster