Use a criptografia de disco para criptografar automaticamente os dados gravados nos discos e descriptografá-los na leitura. Com chaves gerenciadas pelo KMS, você pode criptografar volumes de disco do cluster sem criar sua própria infraestrutura de gerenciamento de chaves. Este tópico explica como configurar uma StorageClass com o KMS para criptografar volumes de disco em REST.
Aborda a criptografia de volumes de dados de carga de trabalho por meio de uma StorageClass. Não cobre a criptografia do volume raiz do nó.
Como funciona a criptografia
Os discos do Alibaba Cloud usam criptografia AES-256 gerenciada pelo KMS. O KMS implementa uma hierarquia de chaves de dois níveis — chaves mestras do cliente (CMKs) e chaves de dados (DKs) — com criptografia de envelope:
Criptografia da chave de dados. O KMS criptografa a DK com a CMK. A DK criptografada é armazenada junto com os dados criptografados e não pode ser descriptografada sem a CMK.
Armazenamento e leitura de dados criptografados. Ao ler dados criptografados, o KMS descriptografa a DK após verificar a solicitação. A DK em texto simples existe apenas na memória durante a E/S do disco e nunca é gravada no armazenamento.
A CMK em texto simples nunca sai do módulo de segurança de hardware gerenciado pelo KMS. A DK em texto simples existe apenas na memória do hipervisor e nunca é armazenada em disco.
Consulte Encryption process.
Tipos de dados que podem ser criptografados
Tipos de disco compatíveis
Os seguintes tipos de disco oferecem suporte à criptografia:
|
Tipo de disco |
Suporte a criptografia |
|
Enterprise SSDs (ESSDs) |
Sim |
|
Discos ESSD AutoPL |
Sim |
|
Discos ESSD Entry |
Sim |
|
Standard SSDs |
Sim |
|
Ultra disks |
Sim |
|
Basic disks |
Sim |
|
Local disks |
Não |
Limitações
A criptografia só pode ser definida durante a criação do disco e não pode ser alterada posteriormente. A montagem e a desmontagem não afetam a criptografia.
Não há suporte para converter um disco não criptografado em criptografado, ou um disco criptografado em não criptografado.
Autorizar o ECS a acessar o KMS
Conceda acesso ao KMS para o Elastic Compute Service (ECS) configurando a função do RAM AliyunECSDiskEncryptDefaultRole.
-
Crie a função do RAM (consulte Create a RAM role for a trusted Alibaba Cloud service) com os seguintes valores:
Se a função
AliyunECSDiskEncryptDefaultRolejá existir, pule esta etapa.Campo
Valor
Principal Type
Cloud Service
Principal Name
Elastic Compute Service
Role Name
AliyunECSDiskEncryptDefaultRole
-
Conceda permissões à função
AliyunECSDiskEncryptDefaultRole(consulte Grant permissions to a RAM role) com os seguintes valores:ImportanteA política
AliyunKMSFullAccessconcede permissões totais ao KMS. Para acesso com privilégio mínimo, use uma política personalizada com as seguintes permissões:Campo
Valor
Resource Scope
Account
Policy
AliyunKMSFullAccess(acesso total ao KMS) ouAliyunECSDiskEncryptCustomizedPolicy(permissões mínimas necessárias){ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt", "kms:TagResource" ], "Resource": "*" } ] } Clique em Grant permissions.
Procedimento
A criptografia é configurada no nível da StorageClass. Qualquer persistent volume claim (PVC) que use uma StorageClass com criptografia habilitada será respaldada por um disco criptografado.
Pré-requisitos
Certifique-se de que:
-
O add-on Container Storage Interface (CSI) (csi-plugin e csi-provisioner) esteja instalado. Verifique em Operations > Add-ons > Storage. Consulte Update csi-plugin and csi-provisioner.
Se o seu cluster usa FlexVolume, migre para CSI antes de prosseguir. O FlexVolume não é mais suportado. Consulte Upgrade from FlexVolume to CSI .
A função do RAM
AliyunECSDiskEncryptDefaultRoleesteja configurada com permissões do KMS (consulte Autorizar o ECS a acessar o KMS)
Etapa 1: Criar uma StorageClass criptografada
-
Crie um arquivo chamado
sc-kms.yamlcom o conteúdo a seguir, ajustando os parâmetros conforme necessário:Parâmetro
Descrição
encryptedDefina como
"true"para criptografar os discos criados por esta StorageClass.kmsKeyIdChave do KMS para criptografia do disco. Se não definido, aplica-se a CMK padrão. Ignorado se
encryptedfor"false".typeTipo de disco.
fsTypeTipo de sistema de arquivos.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: csi-disk-encrypted provisioner: diskplugin.csi.alibabacloud.com parameters: fsType: ext4 type: cloud_essd encrypted: "true" kmsKeyId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx reclaimPolicy: DeleteA tabela acima descreve os parâmetros relacionados à criptografia na seção
parameters. -
Crie a StorageClass:
kubectl create -f sc-kms.yaml
Etapa 2: Criar uma PVC
-
Crie um arquivo chamado
sc-pvc.yamlcom o seguinte conteúdo:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: disk-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi storageClassName: csi-disk-encrypted -
Crie a PVC:
kubectl create -f sc-pvc.yaml -
Verifique se a PVC está vinculada:
kubectl get pvcO status da PVC deve ser
Bound. A colunaVOLUMEexibe o ID do disco provisionado:NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE disk-pvc Bound d-2ze0nmbv2var0d9h**** 20Gi RWO csi-disk-encrypted <unset> 6m20s
Etapa 3: Verificar a criptografia do disco
Faça login no console do ECS.
Escolha Storage & Snapshots > Block Storage.
Faça login no console do ECS.
Na aba Cloud Disk, localize o disco e clique em seu ID.
Na aba Basic Information, confirme se Encrypted aparece no campo Encrypted/Unencrypted.
Próximos passos
Consulte Encrypt cloud disks.