Crie um espaço de isolamento confiável dentro de uma instância ECS com o Enclave para proteger suas aplicações e dados em uso.
Contexto
Os dados são classificados em dados em repouso, dados em trânsito e dados em uso.
A criptografia protege dados em repouso e dados em trânsito.
A proteção de dados em uso exige computação confidencial.
O Enclave cria um espaço de isolamento confiável dentro de uma instância ECS e executa software legítimo no enclave para proteger a confidencialidade e a integridade do seu código e dados contra malware. Essa solução é adequada para setores que exigem proteção rigorosa de dados, como finanças, internet e saúde.
Como o Enclave funciona
Os recursos de computação (vCPUs e memória) dentro de uma instância ECS (a VM primária) são divididos para criar uma VM do Enclave (EVM) como um ambiente de execução confiável. A EVM é protegida por:
Isolamento baseado em virtualização: a EVM fica isolada da VM primária e de outras instâncias ECS.
Superfície de ataque mínima: a EVM executa um sistema operacional independente e confiável, sem armazenamento persistente, conexões interativas ou rede externa. Ela se comunica com a VM primária apenas por meio de um canal seguro local baseado em vsock.
A figura a seguir ilustra o funcionamento do Enclave.
O Enclave oferece segurança em várias camadas. A arquitetura SHENLONG de terceira geração, com chips TPM ou TCM, equipa a EVM com dispositivos vTPM ou vTCM para maior confiabilidade. Os SDKs permitem criar e gerenciar ambientes Enclave. Para atestação, aplicações confidenciais geram materiais de atestação — incluindo dados da plataforma, informações da aplicação e assinaturas — durante a execução e os verificam por meio de um servidor de atestação remota, que pode funcionar em conjunto com o Key Management Service (KMS). Assim que a VM primária aloca recursos para a EVM, a camada subjacente os isola, impedindo que a VM primária acesse os recursos de vCPU ou memória da EVM.
A figura a seguir mostra a arquitetura do Enclave.
Limitações
Apenas tipos de instância com quatro ou mais vCPUs nas famílias de instâncias hfg9i, hfc9i, hfr9i, g8i, c8i e r8i oferecem suporte ao Enclave.
Cada instância ECS suporta apenas um enclave.
Reserve pelo menos um núcleo de processador físico e parte da memória para a VM primária antes de usar um enclave. Os recursos restantes podem ser alocados ao enclave. Se o hyper-threading estiver ativado, dois hyperthreads do mesmo núcleo serão reservados; portanto, a instância deve ter pelo menos quatro vCPUs.
Para outros limites, consulte Limits.
Criar uma instância habilitada para Enclave
A criação de uma instância habilitada para Enclave é semelhante à criação de uma instância comum. Esta seção aborda apenas os parâmetros específicos do Enclave. Para outros parâmetros, consulte Create an instance with Custom Launch.
Acesse ECS console - Instance.
No canto superior esquerdo da página, selecione uma região e um grupo de recursos.
-
Clique em Create Instance e configure os seguintes parâmetros.
Parâmetro
Descrição
Instance Type
Selecione um tipo de instância com ≥ 4 vCPUs na família de instâncias hfg9i, hfc9i, hfr9i, g8i, c8i ou r8i.
Image
Selecione Enclave e, em seguida, selecione a imagem Alibaba Cloud Linux 2.1903 LTS 64-bit (UEFI).
NotaSelecionar Enclave instala automaticamente um sistema operacional confiável.
Instance RAM Role
Selecione AliyunECSInstanceForYundunSysTrustRole, uma função vinculada ao service fornecida pela Alibaba Cloud.
Instalar a CLI do Enclave
Use Workbench to connect to the Enclave-enabled instance over SSH.
-
Instale o pacote RPM da CLI do Enclave.
-
Baixe o pacote RPM da CLI do Enclave.
wget https://enclave-cn-beijing.oss-cn-beijing.aliyuncs.com/download/linux/enclave-cli/x86_64/2.1903/enclave-cli-1.0.9-1.x86_64.rpm -
Instale a CLI do Enclave.
sudo rpm -ivh enclave-cli-1.0.9-1.x86_64.rpm -
Verifique a instalação.
enclave-cli --versionSe um número de versão for retornado, a instalação foi bem-sucedida.
[test@iz2zebt88ixxx ~]$ enclave-cli --version Enclave CLI 1.0.9
-
-
Adicione o usuário atual aos grupos
deedocker.-
Adicione o usuário atual ao grupo
de:sudo usermod -aG de <username>NotaSubstitua
<username>pelo nome de usuário real, por exemplo,test. -
Adicione o usuário atual ao grupo
docker.sudo usermod -aG docker <username>NotaSubstitua
<username>pelo nome de usuário real, por exemplo,test. Reconecte-se à instância para aplicar as alterações.
-
-
Pré-aloque vCPUs e memória para o enclave.
-
Abra o arquivo
allocator.yaml.sudo vim /etc/ali-enclaves/allocator.yaml Pressione a tecla
ipara entrar no modo de inserção.-
Defina os seguintes parâmetros:
memory_mib: memória alocada para o enclave. Unidade: MiB.
cpu_count: vCPUs alocadas para o enclave.
O exemplo a seguir aloca 1.024 MiB de memória e 2 vCPUs para o enclave.
# Enclave configuration file. # # How much memory to allocate for enclaves (in MiB). memory_mib: 1024 # # How many CPUs to reserve for enclaves. cpu_count: 2 Pressione a tecla
Esc, insira:wqe pressione a teclaEnterpara salvar e fechar o arquivo.
-
-
Inicie o service de alocação de recursos e ative-o na inicialização.
sudo systemctl start ali-enclaves-allocator.service && \ sudo systemctl enable ali-enclaves-allocator.serviceO service cria um pool dedicado de vCPUs para o enclave. Esse pool é exclusivo para o enclave e não está disponível para a instância host.
NotaPara alterar os recursos alocados, modifique o arquivo
allocator.yamle reinicie o service:sudo systemctl restart ali-enclaves-allocator.service -
Verifique o status do service.
systemctl status ali-enclaves-allocator.serviceA saída a seguir indica que o service está em execução.
[test@iZ2zebt88 ~]$ systemctl status ali-enclaves-allocator.service ● ali-enclaves-allocator.service - Nitro Enclaves Resource Allocator Loaded: loaded (/usr/lib/systemd/system/ali-enclaves-allocator.service; enabled; vendor preset: disabled) Active: active (exited) since Tue 2023-06-20 10:39:57 CST; 46min ago Main PID: 1960 (code=exited, status=0/SUCCESS) -
Inicie o Docker e ative-o na inicialização.
sudo systemctl start docker && sudo systemctl enable dockerNotaPara desinstalar a CLI do Enclave, execute
sudo yum remove enclave-cli. Restart the instance para aplicar as alterações.
Referências
Para obter informações sobre o uso da CLI do Enclave, consulte Quick start.