O ACK oferece o recurso de inspeção para verificar riscos de segurança nas configurações dos workloads do seu cluster. Após a execução de uma tarefa de inspeção, o sistema gera um relatório correspondente. Com esse relatório, você visualiza e trata itens de risco, além de monitorar o status de integridade dos workloads em tempo real.
Pré-requisitos
O cluster deve executar o Kubernetes v1.14 ou posterior. Para atualizar seu cluster, consulte Manually update an ACK cluster.
-
Caso utilize um usuário RAM, conclua as autorizações RAM e RBAC conforme descrito nas seções a seguir.
-
Autorização RAM
Conclua a autorização RAM na página Inspections para garantir que o usuário RAM atual tenha permissões de uso da página Inspections no cluster em questão. Sem essa etapa, as permissões serão insuficientes e os recursos da página Inspections ficarão inacessíveis. Para mais informações, consulte Grant permissions to access clusters and cloud resources by using RAM.
Para utilizar o recurso de relatórios de inspeção, conceda ao usuário RAM permissões de leitura no projeto especificado do Simple Log Service (SLS). Esse projeto é utilizado pelo componente de coleta de logs do seu cluster. Caso contrário, a falta de permissões impedirá a visualização dos relatórios de inspeção. Para mais informações, consulte Examples of custom RAM authorization.
-
Autorização RBAC
Conclua a autorização RBAC para os recursos na página Inspections a fim de conceder permissões de administrador do cluster especificado ao usuário RAM. Isso assegura que o usuário RAM tenha permissão para operar nos recursos Kubernetes disponíveis na página Inspections. Para mais informações, consulte Use RBAC to authorize operations on resources within a cluster.
-
Executar uma inspeção
Faça login 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 ou atualizar o componente de inspeção.
O componente security-inspector é gratuito, mas consome recursos de pod. Para mais detalhes sobre o componente e suas notas de versão, consulte security-inspector.
-
Execute a inspeção.
ImportanteRecomendamos executar as inspeções fora dos horários de pico.
Por padrão, a inspeção verifica todos os itens suportados. No canto superior direito da página Inspections, clique em Configure Periodic Inspection para especificar quais itens devem ser verificados. Para mais informações, consulte Inspection items.
Para uma inspeção imediata, no canto superior direito da página Inspections, clique em Inspect.
Para inspeções periódicas, no canto superior direito da página Inspections, clique em Configure Periodic Inspection. Em seguida, selecione Configure Periodic Inspection e configure o período da inspeção.
Após a conclusão da inspeção, na aba Inspections, localize o resultado desejado e clique em Details na coluna Actions.
Detalhes da inspeção
A página Inspections lista resultados detalhados para diferentes workloads. 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 os Risk Item de cada workload.
Consulte detalhes de cada item inspecionado, incluindo o status da verificação (aprovado ou reprovado) nos níveis de pod e contêiner, descrição detalhada e sugestões de correção. Se um item reprovado não exigir correção, adicione-o à lista de permissões.
Visualize o arquivo YAML de um workload.
Relatórios de inspeção
A página Reports exibe os resultados da inspeção mais recente. Esta página inclui as seguintes informações:
Visão geral dos resultados da varredura, abrangendo o total de itens inspecionados, a quantidade e porcentagem de cada tipo de recurso verificado e a pontuação geral de integridade.
Estatísticas das principais categorias de varredura, incluindo verificações de integridade, imagens, rede, recursos e segurança.
Resultados detalhados da varredura para cada configuração de workload, contendo tipo de recurso, nome do recurso, namespace, tipo de verificação, item de inspeção e resultado.
Itens de inspeção
O recurso de inspeção de configuração verifica e exibe resultados para os seguintes itens.
ID da verificação | Item de verificação | Descrição e risco de segurança | Correção |
hostNetworkSet | Impedir que contêineres compartilhem o namespace de rede do host | Verifica se | Modifique a especificação do pod para remover o campo Exemplo: |
hostIPCSet | Impedir que contêineres compartilhem o namespace IPC do host | Verifica se | Modifique a especificação do pod para remover o campo Exemplo: |
hostPIDSet | Impedir que contêineres compartilhem o namespace PID do host | Verifica se | Modifique a especificação do pod para remover o campo Exemplo: |
hostPortSet | Impedir que processos de contêiner escutem em portas do nó | Verifica se | Modifique a especificação do pod para remover o campo Exemplo: |
runAsRootAllowed | Impedir que contêineres executem como usuário root | Verifica se | Modifique a especificação do pod para adicionar Exemplo: |
runAsPrivileged | Impedir que contêineres executem em modo privilegiado | Verifica se | Modifique a especificação do pod para remover o campo Exemplo: |
privilegeEscalationAllowed | Impedir escalonamento de privilégios em contêineres | Verifica se | Modifique a especificação do pod para adicionar o campo Exemplo: |
capabilitiesAdded | Remover capabilities Linux desnecessárias | Verifica o campo | Modifique a especificação do pod para adicionar apenas as capabilities Linux necessárias e remover todas as outras. Se nenhuma capability Linux extra for necessária, remova todas. Exemplo: Caso sejam necessárias capabilities específicas, adicione apenas as indispensáveis e remova as demais. Exemplo: |
notReadOnlyRootFilesystem | Usar sistema de arquivos raiz somente leitura para contêineres | Verifica se | Modifique a especificação do pod para adicionar Exemplo: Para modificar arquivos em um diretório específico, utilize o campo Exemplo: |
cpuRequestsMissing | Definir solicitações de CPU para contêineres | Verifica se | Modifique a especificação do pod para adicionar o campo Exemplo: |
cpuLimitsMissing | Definir limites de CPU para contêineres | Verifica se | Modifique a especificação do pod para adicionar o campo Exemplo: |
memoryRequestsMissing | Definir solicitações de memória para contêineres | Verifica se | Modifique a especificação do pod para adicionar o campo Exemplo: |
memoryLimitsMissing | Definir limites de memória para contêineres | Verifica se | Modifique a especificação do pod para adicionar o campo Exemplo: |
readinessProbeMissing | Configurar sondas de prontidão para contêineres | Verifica se uma | Modifique a especificação do pod para adicionar o campo Exemplo: |
livenessProbeMissing | Configurar sondas de atividade para contêineres | Verifica se uma | Modifique a especificação do pod para adicionar o campo Exemplo: |
tagNotSpecified | Usar uma tag de imagem específica para contêineres | Verifica se o campo | Modifique o campo Exemplo: |
anonymousUserRBACBinding | Proibir acesso de usuários anônimos ao cluster | Verifica as vinculações de Controle de Acesso Baseado em Função (RBAC) no cluster para identificar configurações que concedam acesso a usuários anônimos. Se o acesso anônimo for permitido, usuários mal-intencionados poderão roubar informações sensíveis ou atacar o cluster. | Modifique as vinculações RBAC para remover quaisquer permissões que permitam a usuários anônimos acessar recursos do cluster. Exemplo: |
Eventos
Tipo de evento | Nome do evento | Exemplo de conteúdo | Descrição | Ações |
Normal | SecurityInspectorConfigAuditStart | Starting config audit | A tarefa de inspeção foi iniciada. | Nenhuma ação necessária. |
Normal | SecurityInspectorConfigAuditFinished | Config audit finished | A tarefa de inspeção foi concluída. | Nenhuma ação necessária. |
Warning | SecurityInspectorConfigAuditHighRiskFound | Found 2 high-risk items after config audit | Após a inspeção, foram encontrados itens de alto risco não mitigados em alguns workloads. |
|