O Container Service for Kubernetes (ACK) oferece o recurso de inspeção para verificar as cargas de trabalho do seu cluster em busca de riscos de segurança nas configurações. Após a execução de uma tarefa de inspeção, o sistema gera um relatório de inspeção. Utilize esse relatório para visualizar e resolver itens de risco, além de monitorar a integridade das cargas de trabalho em tempo real.
Pré-requisitos
O cluster executa o Kubernetes v1.14 ou posterior. Para atualizar seu cluster, consulte Atualizar manualmente um cluster.
-
Se você for um usuário do Resource Access Management (RAM), certifique-se de ter concluído a autorização do RAM e a autorização RBAC descritas abaixo.
-
Autorização do RAM
Conclua a autorização do RAM na página Inspections e certifique-se de que o usuário do RAM atual tenha as permissões para usar a página Inspections do cluster atual. Caso contrário, a falta de permissões impedirá o uso dos recursos na página Inspections. Para mais informações, consulte Conceder acesso ao cluster e a recursos da nuvem com o RAM.
Para usar o recurso de relatório de inspeção, conclua a autorização do RAM para o projeto específico do Simple Log Service (SLS) que o complemento de coleta de logs do cluster atual utiliza. Além disso, certifique-se de que o usuário do RAM atual tenha permissões de leitura nesse projeto. Caso contrário, a falta de permissões impedirá a visualização dos relatórios de inspeção. Para mais informações, consulte Exemplos de políticas personalizadas do RAM.
-
Autorização RBAC
Conclua a autorização RBAC para os recursos na página Inspections e conceda permissões de administrador ao usuário do RAM no cluster especificado. Isso garante que o usuário do RAM tenha as permissões para operar nos recursos do Kubernetes envolvidos na página Inspections. Para mais informações, consulte Autorizar operações em recursos internos do cluster com RBAC.
-
Execute 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 e atualizar o complemento de inspeção.
O complemento security-inspector é gratuito, mas consome recursos dos seus pods. Para mais informações sobre o complemento e suas notas de versão, consulte Security inspector.
-
Execute uma inspeção.
ImportanteExecute inspeções durante horários de baixa demanda.
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, em seguida, especifique os itens de inspeção a serem executados. Para mais informações, consulte Itens de inspeção.
Para executar uma inspeção imediatamente: no canto superior direito da página Inspections, clique em Inspect.
Para 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 da inspeção que deseja visualizar. Na coluna Actions, clique em Details para ver os resultados da verificação.
Detalhes da inspeção
A página Inspections lista 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. Além disso, 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 contêiner (Aprovado ou Reprovado), uma descrição detalhada do item e sugestões de endurecimento (hardening). Se um item reprovado não precisar ser corrigido, adicione-o à lista de permissões.
Visualize o arquivo YAML de uma carga de trabalho.
Relatórios de inspeção
A página Reports exibe os resultados da varredura da inspeção mais recente. A página inclui os seguintes tipos de informações:
Uma visão geral dos resultados da varredura, incluindo o número total de itens de inspeção, a quantidade e o percentual de cada tipo de recurso inspecionado e a pontuação geral de integridade.
Estatísticas para cada categoria principal de varredura, incluindo resultados de verificação de integridade, imagem, rede, recurso e segurança.
Resultados detalhados da varredura para cada configuração de carga de trabalho, incluindo o tipo de recurso, nome do recurso, namespace, tipo de verificação, item de inspeção e resultado da verificação.
Itens de inspeção
O recurso de inspeção de configuração verifica 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 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 do contêiner escutem nas portas do host no nó |
Verifica se |
Modifique a especificação do pod para remover o campo Exemplo:
|
|
runAsRootAllowed |
Impedir que contêineres sejam executados como usuário root |
Verifica se |
Modifique a especificação do pod para adicionar Exemplo:
|
|
runAsPrivileged |
Impedir que contêineres 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 contêiner obtenham privilégios elevados |
Verifica se |
Modifique a especificação do pod para adicionar o campo Exemplo:
|
|
capabilitiesAdded |
Remover capacidades (capabilities) desnecessárias do Linux |
Verifica o campo |
Modifique a especificação do pod para adicionar apenas as capacidades do Linux que suas cargas de trabalho exigem e remova as desnecessárias. Se nenhuma capacidade adicional do Linux for necessária, remova todas. Exemplo:
Se capacidades específicas forem necessárias, adicione apenas as essenciais e remova todas as outras. Exemplo:
|
|
notReadOnlyRootFileSystem |
Tornar o sistema de arquivos do contêiner 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 contêineres |
Verifica se |
Modifique a especificação do pod para adicionar o campo Exemplo:
|
|
cpuLimitsMissing |
Limitar os recursos máximos de CPU que os contêineres 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 contêineres |
Verifica se |
Modifique a especificação do pod para adicionar o campo Exemplo:
|
|
memoryLimitsMissing |
Limitar os recursos máximos de memória que os contêineres podem usar |
Verifica se |
Modifique a especificação do pod para adicionar o campo Exemplo:
|
|
readinessProbeMissing |
Configurar sondas de prontidão (readiness probes) para contêineres |
Verifica se |
Modifique a especificação do pod para adicionar o campo Exemplo:
|
|
livenessProbeMissing |
Configurar sondas de atividade (liveness probes) para contêineres |
Verifica se |
Modifique a especificação do pod para adicionar o campo Exemplo:
|
|
tagNotSpecified |
Usar uma versão explícita de imagem para contêineres |
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 |
Verifica as vinculações de Controle de Acesso Baseado em Função (RBAC) no cluster em busca de itens de configuração que concedem permissões de acesso a usuários anônimos. Se um item de configuração permitir que usuários anônimos acessem recursos do cluster, um usuário anônimo mal-intencionado poderá exfiltrar informações confidenciais do cluster e atacar ou invadir o cluster. |
Modifique as vinculações RBAC retornadas pela varredura e remova os itens de configuração de permissão que permitem que usuários anônimos acessem recursos do cluster, de acordo com os requisitos do seu negócio. Exemplo:
|
Eventos
|
Tipo de evento |
Nome do evento |
Exemplo de conteúdo |
Descrição |
Ações |
|
Normal |
SecurityInspectorConfigAuditStart |
Start to running config audit |
A tarefa de inspeção é iniciada. |
Nenhuma ação é necessária. |
|
Normal |
SecurityInspectorConfigAuditFinished |
Finished running once config audit |
A tarefa de inspeção foi concluída. |
Nenhuma ação é necessária. |
|
Warning |
SecurityInspectorConfigAuditHighRiskFound |
2 high risks have been found after running config audit |
Após a execução da inspeção, itens de inspeção de alto risco não corrigidos são encontrados em algumas cargas de trabalho. |
|