O Container Service for Kubernetes (ACK) oferece um recurso de inspeção de configuração que analisa as cargas de trabalho do cluster em busca de riscos de segurança na configuração. Após a execução de uma inspeção, o sistema gera um relatório para ajudar você a visualizar e corrigir itens de risco e monitorar a integridade das cargas de trabalho em tempo real.
Pré-requisitos
Um cluster Kubernetes registrado está conectado ao ACK. Para mais informações, consulte Criar um cluster registrado do ACK One.
O Logtail está instalado. Para mais informações, consulte Etapa 2: Instalar o complemento logtail-ds.
Executar uma inspeção
-
Faça logon no ACK console. No painel de navegação à esquerda, clique em Clusters.
-
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em .
-
Opcional: Siga as instruções na tela para instalar e atualizar o complemento de inspeção.
O complemento security-inspector é gratuito, mas consome recursos de pods. Para mais informações sobre o complemento e suas notas de versão, consulte Security inspector.
-
Execute uma inspeção.
Importante-
Execute as inspeções em horários de menor movimento.
-
Por padrão, uma inspeção verifica todos os itens de inspeção suportados. No canto superior direito da página Inspections, clique em Configure Periodic Inspection e especifique os itens de inspeção a serem executados. Para mais informações, consulte Itens de inspeção.
-
Executar uma inspeção imediatamente: no canto superior direito da página Inspections, clique em Inspect.
-
Executar inspeções periódicas: no canto superior direito da página Inspections, clique em Configure Periodic Inspection, selecione Configure Periodic Inspection e configure o período de inspeção.
-
-
Após a conclusão da inspeção, na aba Inspections, localize o resultado de inspeção que deseja visualizar. Na coluna Actions, clique em Details para visualizar os resultados da verificação.
Detalhes da inspeção
A página Inspections apresenta os resultados detalhados da inspeção de diferentes cargas de trabalho em tabelas. A página oferece os seguintes recursos:
-
Filtre os resultados por critérios como Passed or Failed, Namespace e Workload Type, e visualize a Number of Passed Items e a contagem de Risk Item para cada carga de trabalho.
-
Visualize os detalhes de cada item de inspeção, incluindo o status de verificação no nível do pod e do container (aprovado ou reprovado), uma descrição detalhada do item e sugestões de reforço. Se um item reprovado não precisar ser corrigido, adicione-o à lista de exceções.
-
Visualize o arquivo YAML de uma carga de trabalho.
Itens de inspeção
O recurso de inspeção de configuração analisa e exibe os resultados dos seguintes itens de inspeção.
|
ID do item de inspeção |
Item de inspeção |
Descrição e risco de segurança |
Correção |
|
hostNetworkSet |
Impedir que containers compartilhem o namespace de rede do host |
Verifica se |
Modifique a especificação do pod para remover o campo Exemplo:
|
|
hostIPCSet |
Impedir que containers compartilhem o namespace IPC do host |
Verifica se |
Modifique a especificação do pod para remover o campo Exemplo:
|
|
hostPIDSet |
Impedir que containers compartilhem o namespace PID do host |
Verifica se |
Modifique a especificação do pod para remover o campo Exemplo:
|
|
hostPortSet |
Impedir que processos do container escutem em portas do host no nó |
Verifica se |
Modifique a especificação do pod para remover o campo Exemplo:
|
|
runAsRootAllowed |
Impedir que containers sejam executados como usuário root |
Verifica se |
Modifique a especificação do pod para adicionar Exemplo:
|
|
runAsPrivileged |
Impedir que containers sejam executados em modo privilegiado |
Verifica se |
Modifique a especificação do pod para remover o campo Exemplo:
|
|
privilegeEscalationAllowed |
Impedir que processos filhos em um container obtenham privilégios elevados |
Verifica se |
Modifique a especificação do pod para adicionar o campo Exemplo:
|
|
capabilitiesAdded |
Remover capabilities do Linux desnecessárias |
Analisa o campo |
Modifique a especificação do pod para adicionar apenas as capabilities do Linux que suas cargas de trabalho exigem e remover as desnecessárias. Se nenhuma capability adicional do Linux for necessária, remova todas. Exemplo:
Se capabilities específicas forem necessárias, adicione apenas as necessárias e remova todas as outras. Exemplo:
|
|
notReadOnlyRootFileSystem |
Tornar o sistema de arquivos do container somente leitura |
Verifica se |
Modifique a especificação do pod para adicionar Exemplo:
Para modificar arquivos em um diretório específico, use o campo Exemplo:
|
|
cpuRequestsMissing |
Definir os recursos mínimos de CPU necessários para executar containers |
Verifica se |
Modifique a especificação do pod para adicionar o campo Exemplo:
|
|
cpuLimitsMissing |
Limitar os recursos máximos de CPU que os containers podem usar |
Verifica se |
Modifique a especificação do pod para adicionar o campo Exemplo:
|
|
memoryRequestsMissing |
Definir os recursos mínimos de memória necessários para executar containers |
Verifica se |
Modifique a especificação do pod para adicionar o campo Exemplo:
|
|
memoryLimitsMissing |
Limitar os recursos máximos de memória que os containers podem usar |
Verifica se |
Modifique a especificação do pod para adicionar o campo Exemplo:
|
|
readinessProbeMissing |
Configurar sondas de prontidão para containers |
Verifica se |
Modifique a especificação do pod para adicionar o campo Exemplo:
|
|
livenessProbeMissing |
Configurar sondas de atividade para containers |
Verifica se |
Modifique a especificação do pod para adicionar o campo Exemplo:
|
|
tagNotSpecified |
Usar uma versão explícita da imagem para containers |
Verifica se o campo |
Modifique a especificação do pod e altere o campo Exemplo:
|
|
anonymousUserRBACBinding |
Impedir que usuários anônimos acessem o cluster |
Analisa as vinculações do controle de acesso baseado em função (RBAC) no cluster em busca de configurações que concedam permissões de acesso a usuários anônimos. Se uma configuração permitir que usuários anônimos acessem recursos do cluster, um usuário anônimo malicioso pode exfiltrar informações sensíveis do cluster e atacar ou invadir o cluster. |
Modifique as vinculações RBAC retornadas pela verificação e remova as configurações de permissão que permitem o acesso de usuários anônimos aos recursos do cluster, de acordo com os requisitos do seu negócio. Exemplo:
|