Enkripsi data direkomendasikan untuk skenario yang memerlukan keamanan data tinggi atau kepatuhan. Anda dapat menggunakan Customer Master Keys (CMK) dari Key Management Service (KMS) atau kunci yang dikelola oleh Object Storage Service (OSS) untuk mengenkripsi volume OSS di kluster ACK. Metode ini membantu memastikan privasi dan kontrol data.
Metode enkripsi
Enkripsi volume OSS dapat dikategorikan sebagai enkripsi sisi server (SSE) atau enkripsi sisi klien. ACK hanya mendukung SSE.
Enkripsi sisi server: OSS mengenkripsi data sebelum disimpan ke disk di pusat data dan secara otomatis mendekripsi data saat Anda mengunduh objek tersebut.
Enkripsi sisi klien: Anda dapat menggunakan kit pengembangan perangkat lunak (SDK) enkripsi sisi klien untuk mengenkripsi data secara lokal sebelum mengunggahnya ke OSS.
OSS menyediakan dua metode enkripsi sisi server untuk berbagai skenario. Anda hanya dapat menggunakan satu metode enkripsi sisi server untuk satu objek dalam satu waktu.
Gunakan CMK dari KMS untuk enkripsi (SSE-KMS)
Gunakan CMK default: Saat mengunggah objek, atur header permintaan
X-OSS-server-side-encryptionmenjadiKMSdan jangan tentukan ID CMK.Gunakan ID CMK tertentu: Saat mengunggah objek, atur header permintaan
X-OSS-server-side-encryptionmenjadiKMSdan aturX-OSS-server-side-encryption-key-idmenjadiCMK ID.
PentingPenggunaan kunci KMS akan dikenai biaya kecil untuk panggilan API. Untuk informasi lebih lanjut tentang penagihan, lihat Penagihan KMS 1.0.
Metode ini hemat biaya karena data tidak perlu dikirim melalui jaringan ke server KMS untuk enkripsi dan dekripsi.
Gunakan kunci yang dikelola oleh OSS untuk enkripsi (SSE-OSS)
Metode enkripsi ini menggunakan kunci yang dikelola oleh OSS. Enkripsi merupakan atribut objek.
OSS menghasilkan dan mengelola kunci enkripsi data serta menggunakan algoritma enkripsi standar industri AES-256.
Saat Anda mengunggah objek, atur header permintaan
X-OSS-server-side-encryptionkeAES256.
Anda dapat mengonfigurasi parameter enkripsi untuk volume OSS menggunakan alat ossfs. Konfigurasi ini berlaku saat volume persisten (PV) dipasang.
Untuk informasi selengkapnya tentang cara mengonfigurasi dan menginstal ossfs, lihat Instal ossfs 1.0.
Persiapan
Plugin CSI telah diinstal di kluster. Jika diperlukan peningkatan, lihat Peningkatan csi-plugin dan csi-provisioner.
CatatanJika kluster Anda menggunakan FlexVolume, lakukan peningkatan ke CSI karena FlexVolume sudah tidak digunakan lagi. Untuk detailnya, lihat Peningkatan dari FlexVolume ke CSI. Untuk memverifikasi jenis komponen penyimpanan Anda, buka , lalu klik tab Storage.
Anda telah membuat bucket OSS. Untuk informasi selengkapnya, lihat Buat bucket OSS. Bucket dan kluster harus berada dalam akun Alibaba Cloud yang sama.
CatatanUntuk memasang bucket OSS lintas akun, gunakan autentikasi RRSA. Untuk informasi selengkapnya, lihat Bagaimana cara memasang bucket OSS lintas akun?
Skenario 1: Gunakan CMK default yang dihosting di KMS untuk enkripsi
Salin konten berikut ke file bernama kms-cmk-default.yaml.
apiVersion: v1 kind: PersistentVolume metadata: name: oss-csi-pv spec: capacity: storage: 5Gi accessModes: - ReadOnlyMany csi: driver: ossplugin.csi.alibabacloud.com volumeHandle: oss-csi-pv volumeAttributes: bucket: "python" url: "oss-cn-hangzhou.aliyuncs.com" otherOpts: "-o umask=022 -o max_stat_cache_size=100000 -o allow_other" akId: "<YourAccessKey ID>" # Ganti dengan ID AccessKey Anda. akSecret: "<YourAccessKey Secret>" # Ganti dengan Rahasia AccessKey Anda. path: "/" encrypted: "kms"Parameter
Deskripsi
akIdID AccessKey
akSecretRahasia AccessKey
encryptedMetode enkripsi untuk volume:
kms: Enkripsi KMS.aes256: Enkripsi AES-256.
Buat volume terenkripsi.
kubectl create -f kms-cmk-default.yamlLihat volume terenkripsi yang telah dibuat.
kubectl get pv
Skenario 2: Gunakan ID CMK tertentu yang dihosting di KMS untuk enkripsi
1. Konfigurasi izin akses KMS
Untuk mengenkripsi objek OSS dengan ID CMK tertentu yang dikelola KMS, Anda harus memberikan izin akses KMS kepada pengguna RAM atau peran RAM untuk AccessKey PV. Untuk informasi selengkapnya, lihat Enkripsi sisi server.
Sebelum memulai, pastikan Anda telah membuat Pengguna Resource Access Management (RAM) atau membuat Peran RAM.
Masuk ke Konsol RAM menggunakan akun Alibaba Cloud atau pengguna RAM yang memiliki hak administratif.
Di panel navigasi sebelah kiri, pilih atau Roles.
Temukan pengguna RAM target dan klik Add Permissions di kolom Actions. Atau, temukan peran RAM target dan klik Grant Permission di kolom Actions. Ikuti petunjuk di layar untuk menambahkan izin. Anda dapat memilih kebijakan sistem AliyunKMSFullAccess atau kebijakan kustom AliyunOSSEncryptCustomizedPolicy kebijakan kustom.
Izin AliyunKMSFullAccess memberikan akses luas. Jika Anda memerlukan kontrol akses detail halus, Anda dapat membuat kebijakan kustom bernama AliyunOSSEncryptCustomizedPolicy dengan konten berikut.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:List*", "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "acs:kms:*:141661496593****:*" // Ini memungkinkan entitas memanggil semua kunci KMS di bawah ID akun Alibaba Cloud ini. Jika Anda hanya ingin mengizinkan penggunaan CMK tertentu, masukkan ID CMK yang sesuai. ] } ] }
2. Buat volume terenkripsi
Buat file bernama kms-cmk.yaml.
apiVersion: v1 kind: PersistentVolume metadata: name: oss-csi-pv spec: capacity: storage: 5Gi accessModes: - ReadOnlyMany csi: driver: ossplugin.csi.alibabacloud.com volumeHandle: oss-csi-pv volumeAttributes: bucket: "python" url: "oss-cn-hangzhou.aliyuncs.com" otherOpts: "-o umask=022 -o max_stat_cache_size=100000 -o allow_other" akId: "<YourAccessKey ID>" # Ganti dengan ID AccessKey Anda. akSecret: "<YourAccessKey Secret>" # Ganti dengan Rahasia AccessKey Anda. path: "/" encrypted: "kms" kmsKeyId: "<YourCMKID>" # Ganti dengan ID CMK Anda.Buat volume terenkripsi.
kubectl create -f kms-cmk.yamlLihat volume terenkripsi yang telah dibuat.
kubectl get pv
Skenario 3: Gunakan kunci yang sepenuhnya dikelola oleh OSS untuk enkripsi
Buat file bernama sse-oss.yaml.
apiVersion: v1 kind: PersistentVolume metadata: name: oss-csi-pv spec: capacity: storage: 5Gi accessModes: - ReadOnlyMany csi: driver: ossplugin.csi.alibabacloud.com volumeHandle: oss-csi-pv volumeAttributes: bucket: "python" url: "oss-cn-hangzhou.aliyuncs.com" otherOpts: "-o umask=022 -o max_stat_cache_size=100000 -o allow_other" akId: "<YourAccessKey ID>" # Ganti dengan ID AccessKey Anda. akSecret: "<YourAccessKey Secret>" # Ganti dengan Rahasia AccessKey Anda. path: "/" encrypted: "aes256"Buat volume terenkripsi.
kubectl create -f sse-oss.yamlLihat volume terenkripsi yang telah dibuat.
kubectl get pv