Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengaktifkan enkripsi rahasia pada cluster yang ada
Jika Anda mengaktifkan enkripsi rahasia, Kubernetes rahasia dienkripsi menggunakan AWS KMS key yang Anda pilih. Kunci KMS harus memenuhi ketentuan berikut:
-
Simetris
-
Dapat mengenkripsi dan mendekripsi data
-
Dibuat Wilayah AWS sama dengan cluster
-
Jika kunci KMS dibuat di akun yang berbeda, kepala sekolah IAM harus memiliki akses ke kunci KMS.
Untuk informasi selengkapnya, lihat Mengizinkan prinsipal IAM di akun lain menggunakan kunci KMS di Panduan Pengembang. AWS Key Management Service
Anda tidak dapat menonaktifkan enkripsi rahasia setelah mengaktifkannya. Tindakan ini tidak dapat diubah.
- eksctl
-
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 dienkripsi 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
- AWS Management Console
-
Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/home#/clusters.
-
Pilih cluster yang ingin Anda tambahkan enkripsi KMS.
-
Pilih tab Ikhtisar (ini dipilih secara default).
-
Gulir ke bawah ke bagian enkripsi Rahasia dan pilih Aktifkan.
-
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
-
Pilih tombol Konfirmasi untuk menggunakan tombol yang dipilih.
- AWS CLI
-
-
Kaitkan konfigurasi enkripsi rahasia dengan cluster Anda menggunakan AWS CLI perintah berikut. Ganti example values
dengan milik 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": []
}
}
-
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": []
}
}
-
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 Anda mengaktifkan enkripsi pada cluster Anda, Anda harus mengenkripsi semua rahasia yang ada dengan kunci baru:
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
"
Jika Anda mengaktifkan enkripsi rahasia untuk klaster 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.
Secara default, create-key
perintah membuat kunci KMS enkripsi simetris dengan kebijakan kunci yang memberikan akses admin root akun pada AWS KMS tindakan dan sumber daya. 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