Yüksek güvenlik veya uyumluluk gerektiren senaryolar için veri şifrelemesi önerilir. ACK kümelerindeki OSS birimlerini şifrelemek üzere Key Management Service (KMS) Müşteri Anahtarlarını (CMK) veya Object Storage Service (OSS) tarafından yönetilen anahtarları kullanabilirsiniz. Bu yaklaşım, veri gizliliğini korumanıza yardımcı olur ve verileriniz üzerinde kontrol sahibi olmanızı sağlar.
Şifreleme yöntemleri
OSS birimi şifrelemesi sunucu taraflı şifreleme (SSE) veya istemci taraflı şifreleme olarak uygulanabilir. ACK yalnızca SSE'yi destekler.
Sunucu taraflı şifreleme: OSS, verileri bir veri merkezindeki diske kaydetmeden önce şifreler ve nesneleri indirdiğinizde otomatik olarak şifresini çözer.
İstemci taraflı şifreleme: Verileri OSS'e yüklemeden önce yerel ortamda şifrelemek için bir istemci taraflı şifreleme SDK'sı kullanabilirsiniz.
OSS iki sunucu taraflı şifreleme yöntemi sunar. Bir nesne için aynı anda yalnızca bir sunucu taraflı şifreleme yöntemi kullanılabilir.
-
Şifreleme için KMS CMK'larının kullanılması (SSE-KMS)
Varsayılan CMK'yı kullanma: Bir nesne yüklerken
X-OSS-server-side-encryptionistek üstbilgisiniKMSolarak ayarlayın ve bir CMK Kimliği belirtmeyin.Belirtilen bir CMK Kimliği kullanma: Bir nesne yüklerken
X-OSS-server-side-encryptionistek üstbilgisiniKMSolarak ayarlayın veX-OSS-server-side-encryption-key-iddeğeriniCMK IDolarak belirleyin.
ÖnemliKMS anahtarlarının kullanılması, API çağrıları için küçük bir ücrete neden olur. Daha fazla bilgi için bkz. KMS 1,0 Faturalandırması.
OSS, şifreleme ve şifre çözme işlemleri için verileri ağ üzerinden KMS sunucusuna göndermediğinden bu yöntem maliyet etkilidir.
-
Şifreleme için tamamen OSS tarafından yönetilen anahtarların kullanılması (SSE-OSS)
Bu yöntem, tamamen OSS tarafından yönetilen anahtarları kullanır ve şifreleme bir nesne niteliğidir.
OSS, veri şifreleme anahtarlarını oluşturur ve yönetir; endüstri standardı AES-256 güçlü şifreleme algoritmasını kullanır.
Bir nesne yüklerken
X-OSS-server-side-encryptionistek üstbilgisiniAES256olarak ayarlayın.
ossfs aracını kullanarak bir OSS birimi için şifreleme parametrelerini yapılandırabilirsiniz. Bu ayarlar, kalıcı birimi (PV) bağladığınızda uygulanır.
ossfs'in nasıl yapılandırılacağı ve kurulacağı hakkında daha fazla bilgi için bkz. ossfs 1,0'ı Yükleme .
Ön koşullar
-
csi-plugin ve csi-provisioner bileşenleri yüklüdür.
CSI bileşenleri varsayılan olarak yüklenir. Yüklü kaldıklarından emin olun. Kurulum durumunu sayfasında kontrol edebilirsiniz. CSI bileşenlerini en son sürüme yükseltmenizi öneririz.
-
Paket oluşturma. Paket ve küme aynı Alibaba Cloud hesabına ait olmalıdır.
Farklı bir hesaba ait bir OSS paketini bağlamak için kimlik doğrulama amacıyla RRSA kullanmanızı öneririz. Daha fazla bilgi için bkz. Farklı bir hesaba ait OSS paketi nasıl bağlanır?
Senaryo 1: Varsayılan KMS CMK'sını kullanma
-
Aşağıdaki içeriği kms-cmk-default.yaml adlı bir dosyaya kopyalayın.
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>" # Replace with your AccessKey ID akSecret: "<YourAccessKey Secret>" # Replace with your AccessKey Secret path: "/" encrypted: "kms"Parametre
Açıklama
akIdAccessKey Kimliği
akSecretAccessKey Gizli Anahtarı
encryptedBirim için şifreleme yöntemi:
kms: KMS şifrelemesi.aes256: AES-256 şifrelemesi.
-
Şifrelenmiş birimi oluşturun.
kubectl create -f kms-cmk-default.yaml -
Oluşturulan şifrelenmiş birimi görüntüleyin.
kubectl get pv
Senaryo 2: Belirtilen bir KMS CMK Kimliği kullanma
1. KMS erişim izinlerini yapılandırma
Belirli bir CMK ile bir OSS nesnesini şifrelemek için PV'nin AccessKey'i ile ilişkili RAM kullanıcısına veya rolüne söz konusu CMK'yı kullanma izni verilmelidir. Daha fazla bilgi için bkz. Sunucu taraflı şifreleme.
Başlamadan önce bir RAM kullanıcısı oluşturduğunuzdan veya RAM rolü oluşturduğunuzdan emin olun.
Bir Alibaba Cloud hesabı veya RAM yöneticisi olarak RAM konsolunda oturum açın.
Sol gezinme bölmesinde veya Role seçeneğini seçin.
-
Hedef RAM kullanıcısını bulun ve Actions sütununda Add Permissions seçeneğine tıklayın. Alternatif olarak, hedef RAM rolünü bulun ve Attach Policy sütununda Actions seçeneğine tıklayın. İzinleri vermek için ekrandaki talimatları izleyin. AliyunKMSFullAccess sistem ilkesini veya AliyunOSSEncryptCustomizedPolicy adlı özel bir ilkeyi ekleyebilirsiniz.
AliyunKMSFullAccess izni geniş kapsamlı erişim sağlar. Daha ayrıntılı kontrol için aşağıdaki içeriğe sahip AliyunOSSEncryptCustomizedPolicy adlı özel bir ilke oluşturabilirsiniz.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:List*", "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "acs:kms:*:141661496593****:*" // This allows the principal to use all KMS keys under this Alibaba Cloud account. To allow access to only a specific CMK, replace the wildcard resource with the ARN of that CMK. ] } ] }
2. Şifrelenmiş birimi oluşturma
-
kms-cmk.yaml adlı bir dosya oluşturun.
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>" # Replace with your AccessKey ID akSecret: "<YourAccessKey Secret>" # Replace with your AccessKey Secret path: "/" encrypted: "kms" kmsKeyId: "<YourCMKID>" # Replace with your CMK ID -
Şifrelenmiş birimi oluşturun.
kubectl create -f kms-cmk.yaml -
Oluşturulan şifrelenmiş birimi görüntüleyin.
kubectl get pv
Senaryo 3: OSS tarafından yönetilen anahtarları kullanma
-
sse-oss.yaml adlı bir dosya oluşturun.
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>" # Replace with your AccessKey ID akSecret: "<YourAccessKey Secret>" # Replace with your AccessKey Secret path: "/" encrypted: "aes256" -
Şifrelenmiş birimi oluşturun.
kubectl create -f sse-oss.yaml -
Oluşturulan şifrelenmiş birimi görüntüleyin.
kubectl get pv