Restrinja as permissões de exportação e compartilhamento de imagens para evitar a exposição acidental de credenciais, dados de usuários e rastros do sistema.
Riscos de segurança
O compartilhamento e a exportação de imagens aumentam a eficiência da implantação, mas introduzem riscos à segurança dos dados. Permissões inadequadas ou imagens não limpas podem vazar código principal, configurações de ambiente e dados sensíveis. Por exemplo, um funcionário pode exportar uma imagem de produção para obter credenciais, ou dados residuais de teste e credenciais temporárias em uma imagem podem ser expostos quando a imagem é compartilhada. Os riscos específicos incluem:
-
Snapshots de dados estáticos: Imagens e snapshots capturam o estado completo de uma instância ECS em um momento específico, incluindo o sistema operacional, arquivos de aplicativos e dados sensíveis, como:
Credenciais de identidade: Chaves privadas ssh, AccessKeys de API, strings de conexão de banco de dados e senhas de aplicativos codificadas diretamente no código.
Dados do usuário: Código principal da empresa, informações de banco de dados e dados privados de usuários.
Rastros do sistema: Histórico de comandos Shell (.bash_history), arquivos temporários, logs e caches de aplicativos.
Risco de divergência de permissões: O compartilhamento e a exportação estendem o acesso aos dados de um ambiente controlado para um escopo mais amplo e, às vezes, incontrolável. Se uma imagem com informações sensíveis for compartilhada com a conta errada ou exportada para um ambiente offline, agentes mal-intencionados poderão usar os dados indevidamente.
Melhores práticas
Criação de imagens
Antes de criar uma imagem, faça logon na instância e remova as informações sensíveis. Se uma imagem contiver credenciais de logon, como chaves ssh, essas credenciais persistirão nas novas instâncias criadas a partir dela — mesmo que você anexe um novo par de chaves ou defina uma nova senha durante a criação da instância.
-
Limpe as informações de senha do usuário:
Linux: Remova entradas de usuários desnecessárias de /etc/shadow e /etc/passwd.
Windows: Execute o System Preparation (Sysprep) para generalizar a imagem. Isso redefine o SID, limpa as informações do usuário e exige uma nova conta ou senha de administrador na próxima inicialização. Exclua também contas locais desnecessárias em Usuários e Grupos Locais (lusrmgr.msc).
-
Exclua todas as chaves ssh:
Linux: Exclua arquivos de chave (especialmente id_rsa e authorized_keys) de /root/.ssh e de todos os diretórios home de usuários (/home/*/.ssh).
Windows: Exclua arquivos de chave de C:\Users\Administrator\.ssh e de todos os diretórios home de usuários (C:\Users\*\\.ssh). Limpe também as credenciais armazenadas em cache no Gerenciador de Credenciais.
-
Limpe o histórico do Shell:
Linux: Execute history -c e exclua .bash_history de /root/ e de todos os diretórios home de usuários (/home/*/).
Windows: Execute Clear-History para limpar o histórico da sessão atual do powershell. Em seguida, exclua o arquivo de histórico do powershell para todos os usuários, geralmente localizado em AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt.
-
Limpe arquivos temporários e logs:
Linux: Limpe /tmp e /var/tmp. Revise e limpe os logs em /var/log.
Windows: Execute a Limpeza de Disco (cleanmgr.exe) para limpar arquivos temporários do sistema, a lixeira e outros itens. Use o comando wevtutil cl <LogName> (por exemplo, wevtutil cl System) ou o Visualizador de Eventos para limpar todos os principais logs de eventos do Windows, como logs de aplicativos, segurança e sistema.
Remova credenciais codificadas: Verifique o código do aplicativo e os arquivos de configuração em busca de informações sensíveis codificadas diretamente, como senhas de banco de dados ou chaves de API.
Limpe dados comerciais e caches de aplicativos: Remova dados comerciais e diretórios de cache de servidores web, bancos de dados e outros aplicativos.
Capacidades de conformidade
Bloqueie a exportação de imagens e o compartilhamento de imagens/snapshots
Para usuários ram ou grupos de usuários com baixos níveis de confiança, use uma política de negação (Deny) para proibir operações de alto risco em ativos principais de imagens — especificamente exportação de imagens, compartilhamento de imagens e compartilhamento de snapshots. No nível organizacional ou da conta, utilize uma política ram para impor essas restrições.
-
Para usuários corporativos:
-
Faça logon no console do Resource Directory com sua conta Alibaba Cloud. Na barra de menus à esquerda, clique em Control Policy, crie uma política personalizada e cole o seguinte conteúdo json.
Esta política nega a exportação de imagens, o compartilhamento de imagens e o compartilhamento de snapshots.
{ "Version": "1", "Statement": [ { "Action": [ "ecs:ExportImage", "ecs:ModifyImageSharePermission" ], "Resource": "*", "Effect": "Deny" }, { "Action": [ "resourcesharing:CreateResourceShare", "resourcesharing:AssociateResourceShare" ], "Resource": "*", "Condition": { "StringEquals": { "resourcesharing:RequestedResourceType": [ "Snapshot", "Image" ] } }, "Effect": "Deny" } ] } No Resource Directory, selecione um nó e anexe a política. A política bloqueia as operações especificadas para todas as contas sob esse nó.
-
-
Para usuários não corporativos:
Faça logon no console ram com sua conta Alibaba Cloud. No painel de navegação à esquerda, clique em Permission Policy. Crie uma política personalizada com o mesmo conteúdo.
Anexe a política a um usuário ram, grupo de usuários ram ou função ram. Consulte gerencie autorização de política de acesso.