阿里云容器服务Kubernetes集群如何使用BYOK创建加密云盘。
前提条件
使用BYOK创建加密云盘时,系统需要使用同一地域的密钥管理服务(KMS)提供的BYOK(Bring Your Own Key)。因此,首次通过控制台或者API使用云盘加密功能之前,您必须先开通密钥管理服务请参见开通方法
背景信息
当您的业务因为安全需求或法规合规要求等原因,需要对存储在云盘上的数据进行加密保护时,您可以使用阿里云ECS云盘加密功能,无需构建、维护和保护自己的密钥管理基础设施,即可保护数据的隐私性和自主性。
本文中的云盘指代云盘和共享块存储中的数据盘。下文中统一简称为云盘,除非特别指出。
创建BYOK
创建BYOK并记录密钥ID。
- 登录KMS 控制台。
- 在控制台左上角处,单击创建密钥。
- 在弹出的创建密钥对话框中,填写别名和描述。
- 在高级选项下,选择密钥材料来源。
- 选择阿里云KMS:密钥材料将由KMS生成。
- 选择外部:KMS将不会生成密钥材料,您需要将自己的密钥材料导入。详情请参见导入密钥材料。
- 单击确定。
创建StorageClass使用BYOK
在容器服务Kubernetes集群中新建StorageClass,并配置encrypted: "true" kmsKeyId: <your BYOK>
。
- 通过 kubectl 连接 Kubernetes 集群。
- 执行如下命令,打开您的storageclass-ssd-byok.yaml文件。
$ cat storageclass-ssd-byok.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: alicloud-disk-ssd-byok
parameters:
type: cloud_ssd
encrypted: "true"
kmsKeyId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
provisioner: alicloud/disk
reclaimPolicy: Delete
说明 kmsKeyId
需要替换成创建BYOK中填写的密钥ID。
- 执行如下命令,创建StorageClass。
kubectl apply -f storageclass-ssd-byok.yaml
- 执行如下命令,查看StorageClass。
$ kubectl get sc
NAME PROVISIONER AGE
alicloud-disk-available alicloud/disk 19m
alicloud-disk-efficiency alicloud/disk 19m
alicloud-disk-essd alicloud/disk 19m
alicloud-disk-ssd alicloud/disk 19m
alicloud-disk-ssd-byok alicloud/disk 28s
创建示例应用并挂载云盘
- 执行如下命令,打开您的deploy.yaml文件。
$ cat deploy.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: disk-ssd-byok
spec:
accessModes:
- ReadWriteOnce
storageClassName: alicloud-disk-ssd-byok
resources:
requests:
storage: 20Gi
---
kind: Pod
apiVersion: v1
metadata:
name: disk-pod-ssd-byok
spec:
containers:
- name: disk-pod-byok
image: nginx
volumeMounts:
- name: disk-pvc-byok
mountPath: "/mnt"
restartPolicy: "Never"
volumes:
- name: disk-pvc-byok
persistentVolumeClaim:
claimName: disk-ssd-byok
- 执行如下命令,创建应用。
kubectl apply -f deploy.yaml
- 执行如下命令,查看PV。
$ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
d-j6c5jezzajt9ri47lvjs 20Gi RWO Delete Bound default/disk-ssd-byok alicloud-disk-ssd-byok 8s
- 登录ECS管理控制台,单击左侧导航栏的,在磁盘列表中, 查看磁盘ID为
d-j6c5jezzajt9ri47lvjs
的云盘是否已加密。
更多关于云盘加密以及BYOK的介绍请参见云盘加密。