|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
Segurança de Volume
Harvester permite que você criptografe e descriptografe imagens de máquinas virtuais. O mecanismo de criptografia utiliza o módulo do kernel Linux dm_crypt e o utilitário de linha de comando cryptsetup.
Pré-requisitos
Prepare os seguintes recursos:
-
Segredo: Um segredo do Kubernetes é usado como a senha do dm_crypt. Você deve especificar o valor do campo
CRYPTO_KEY_VALUE. Todos os outros campos são fixos.
Exemplo de um segredo:
apiVersion: v1 kind: Secret metadata: name: encryption namespace: default data: CRYPTO_KEY_CIPHER: aes-xts-plain64 CRYPTO_KEY_HASH: sha256 CRYPTO_KEY_PROVIDER: secret CRYPTO_KEY_SIZE: 256 CRYPTO_KEY_VALUE: "Your encryption passphrase" CRYPTO_PBKDF: argon2iO exemplo contém o código YAML padrão para segredos do Kubernetes. Além disso, você pode usar opções de criptografia para o modo LUKS, que é um modo de operação do cryptsetup. Harvester v1.4.1 e versões posteriores suportam essas opções, mas você deve verificar se elas são suportadas pelos seus nós.
Opção Valores Possíveis CRYPTO_KEY_CIPHER
aes-xts-plain, aes-xts-plain64, aes-cbc-plain, aes-cbc-plain64, aes-cbc-essiv:sha256
CRYPTO_KEY_HASH
sha256, sha384, sha512
CRYPTO_KEY_SIZE
256, 384, 512
CRYPTO_PBKDF
argon2i, argon2id, pbkdf2
Você pode criar um segredo no namespace do sistema usando kubectl ou a interface do Harvester (Editar como YAML recurso). Recursos no namespace do sistema não são exibidos na tela Segredos da interface do Harvester.
-
Classe de Armazenamento: As imagens são criptografadas usando Longhorn, portanto, os campos obrigatórios devem ser passados para o Driver CSI do Longhorn. Você pode especificar o segredo de criptografia ao criar uma Classe de Armazenamento. Para mais informações, veja Classe de Armazenamento de Imagem.
Exemplo de uma Classe de Armazenamento:
allowVolumeExpansion: true apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: encryption parameters: csi.storage.k8s.io/node-publish-secret-name: encryption csi.storage.k8s.io/node-publish-secret-namespace: default csi.storage.k8s.io/node-stage-secret-name: encryption csi.storage.k8s.io/node-stage-secret-namespace: default csi.storage.k8s.io/provisioner-secret-name: encryption csi.storage.k8s.io/provisioner-secret-namespace: default encrypted: "true" migratable: "true" numberOfReplicas: "3" staleReplicaTimeout: "2880" provisioner: driver.longhorn.io reclaimPolicy: Delete volumeBindingMode: ImmediateVocê pode criar um segredo no namespace do sistema usando a interface do Harvester (Editar como YAML recurso) e kubectl. Recursos no namespace do sistema não são exibidos na tela Segredos da interface do Harvester.
Volumes Criptografados
Você pode criar um volume criptografado usando uma Classe de Armazenamento criptografada nos seguintes locais da interface do usuário:
-
Volumes: Tela de criação
-
A aba Volumes na Máquina Virtual: Tela de criação
Uso Avançado com Integração ao Rancher
O segredo é uma string codificada em Base64 não criptografada. Para manter o segredo seguro, você pode usar projetos e namespaces para isolar permissões. Para mais informações, veja Multi-Tenancy.