View a markdown version of this page

Enkripsi rahasia Kubernetes dengan KMS pada cluster yang ada - Amazon EKS

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.

Enkripsi rahasia Kubernetes dengan KMS pada cluster yang ada

penting

Pemberitahuan penghentian penggunaan: Prosedur ini tidak digunakan lagi dan hanya berlaku untuk cluster EKS yang menjalankan Kubernetes versi 1.27 atau lebih rendah. Jika Anda menjalankan Kubernetes versi 1.28 atau lebih tinggi, Amazon EKS melindungi rahasia Kubernetes Anda dengan enkripsi amplop secara default. Untuk informasi selengkapnya, lihat Enkripsi amplop default untuk semua Data API Kubernetes.

Jika Anda mengaktifkan enkripsi rahasia, rahasia Kubernetes dienkripsi menggunakan kunci AWS KMS yang Anda pilih. Kunci KMS harus memenuhi persyaratan berikut:

  • Simetris

  • Dapat mengenkripsi dan mendekripsi data

  • Dibuat di Wil AWS ayah yang sama dengan cluster

  • Jika kunci KMS dibuat di akun yang berbeda, prinsipal IAM harus memiliki akses ke kunci KMS.

Untuk informasi selengkapnya, lihat Mengizinkan prinsipal IAM di akun lain menggunakan kunci KMS di Panduan Pengembang Layanan Manajemen K AWS unci.

Awas

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

eksctl

Prosedur ini hanya berlaku untuk cluster EKS yang menjalankan Kubernetes versi 1.27 atau lebih rendah. Untuk informasi selengkapnya, lihat Enkripsi amplop default untuk semua Data API Kubernetes.

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 mengenkripsi 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 cluster EKS yang menjalankan Kubernetes versi 1.27 atau lebih rendah. Untuk informasi selengkapnya, lihat Enkripsi amplop default untuk semua Data API Kubernetes.

    2. Buka konsol Amazon EKS.

    3. Pilih cluster yang ingin Anda tambahkan enkripsi KMS.

    4. Pilih tab Ikhtisar (ini dipilih secara default).

    5. Gulir ke bawah ke bagian enkripsi Rahasia dan pilih Aktifkan.

    6. Pilih kunci dari daftar dropdown dan pilih tombol Aktifkan. Jika tidak ada kunci yang tercantum, Anda harus membuatnya dulu. Untuk informasi selengkapnya, lihat Membuat kunci

    7. Pilih tombol Konfirmasi untuk menggunakan tombol yang dipilih.

    AWS CLI
    1. Prosedur ini hanya berlaku untuk cluster EKS yang menjalankan Kubernetes versi 1.27 atau lebih rendah. Untuk informasi selengkapnya, lihat Enkripsi amplop default untuk semua Data API Kubernetes.

    2. Kaitkan konfigurasi enkripsi rahasia 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": []   } }
    3. Anda dapat memantau status pembaruan enkripsi Anda dengan perintah berikut. Gunakan spesifik cluster name dan update ID yang dikembalikan dalam 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": []   } }
    4. Untuk memverifikasi bahwa enkripsi diaktifkan di klaster Anda, jalankan perintah describe-cluster. Jawabannya berisi EncryptionConfig string.

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

Setelah Anda mengaktifkan enkripsi pada cluster Anda, Anda harus mengenkripsi semua rahasia yang ada dengan kunci baru:

catatan

Jika Anda menggunakaneksctl, 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 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 menempatkan cluster secara permanen dalam keadaan terdegradasi. Untuk informasi selengkapnya, lihat Menghapus kunci AWS KMS.

catatan

Secara default, create-key perintah membuat kunci KMS en kripsi simetris dengan kebijakan kunci yang memberikan akses admin root akun pada tindakan dan sumber daya AWS KMS. Jika Anda ingin menguraikan izin, pastikan kms:CreateGrant tindakan kms:DescribeKey dan diizinkan pada kebijakan untuk kepala sekolah 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.