Audite automaticamente as cargas de trabalho para encontrar problemas de configuração

Esta página mostra-lhe como auditar automaticamente as configurações da carga de trabalho para problemas de segurança e receber recomendações acionáveis para melhorar a postura de segurança dos seus clusters do Google Kubernetes Engine (GKE) Autopilot e Standard. Este artigo explica como ativar a auditoria da configuração da carga de trabalho, implementar uma carga de trabalho de teste, ver e tomar medidas relativamente aos resultados da auditoria da configuração e desativar a auditoria da configuração da carga de trabalho. Também aborda os preços, os requisitos e as limitações da auditoria da configuração da carga de trabalho.

Esta página destina-se a especialistas de segurança que monitorizam a segurança dos respetivos clusters do GKE e querem saber como auditar automaticamente as configurações das cargas de trabalho nos clusters do GKE Autopilot e Standard. Para saber mais acerca das funções comuns e das tarefas de exemplo que referimos no Trusted Cloud by S3NS conteúdo, consulte o artigo Funções e tarefas comuns de utilizadores do GKE.

Antes de ler esta página, uma vez que a auditoria da configuração da carga de trabalho é uma funcionalidade do painel de controlo da postura de segurança, certifique-se de que conhece os seguintes conceitos:

Preços

O painel de controlo da postura de segurança é oferecido sem custo adicional no GKE através da API Container Security.

As entradas adicionadas ao Cloud Logging usam os preços do Cloud Logging.

Antes de começar

Antes de começar, certifique-se de que realizou as seguintes tarefas:

  • Ative a API Google Kubernetes Engine.
  • Ative a API Google Kubernetes Engine
  • Se quiser usar a CLI gcloud para esta tarefa, instale-a e, em seguida, inicialize-a. Se instalou anteriormente a CLI gcloud, execute gcloud components update para obter a versão mais recente.

Requisitos

  • Para receber as autorizações de que precisa para usar a auditoria da configuração da carga de trabalho, peça ao seu administrador para lhe conceder a função de IAM de Visualizador da postura de segurança (roles/containersecurity.viewer) no seu projeto Trusted Cloud . Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

    Esta função predefinida contém as autorizações necessárias para usar a auditoria da configuração da carga de trabalho. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

    Autorizações necessárias

    São necessárias as seguintes autorizações para usar a auditoria da configuração da carga de trabalho:

    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • containersecurity.locations.list
    • containersecurity.locations.get
    • containersecurity.clusterSummaries.list
    • containersecurity.findings.list

    Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

  • A auditoria da configuração da carga de trabalho requer a versão 1.21 do GKE e posteriores.

Ative a auditoria da configuração da carga de trabalho

A auditoria da configuração da carga de trabalho está ativada por predefinição em novos clusters do Autopilot e Standard com a versão 1.27 e posteriores. Também pode ativar manualmente esta funcionalidade através da CLI gcloud ou da Trusted Cloud consola.

Ative a auditoria de configuração num cluster existente

gcloud

Atualize o cluster:

gcloud container clusters update CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --security-posture=standard

Substitua o seguinte:

  • CLUSTER_NAME: o nome do cluster.
  • CONTROL_PLANE_LOCATION: a localização do plano de controlo do seu cluster. Indique uma região para clusters padrão e do Autopilot regionais ou uma zona para clusters padrão zonais.

Consola

  1. Aceda à página Posição de segurança na Trusted Cloud consola.

    Aceda à postura de segurança
  2. Clique no separador Definições.
  3. Na secção Clusters com auditoria de configuração ativada, clique em Selecionar clusters.
  4. Selecione as caixas de verificação dos clusters que quer adicionar.
  5. No menu pendente Selecionar ação, selecione Definir como básico.
  6. Clique em Aplicar.

Também pode configurar definições de auditoria de configuração ao nível da frota que se aplicam a todos os clusters membros. Para obter instruções, consulte o artigo Configure as funcionalidades do painel de controlo de segurança do GKE ao nível da frota.

Implemente uma carga de trabalho de teste

Implemente uma aplicação de exemplo que viole intencionalmente as normas de segurança de pods.

  1. Guarde o seguinte manifesto como misconfig-sample.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: helloweb
      labels:
        app: hello
    spec:
      selector:
        matchLabels:
          app: hello
          tier: web
      template:
        metadata:
          labels:
            app: hello
            tier: web
        spec:
          containers:
          - name: hello-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            ports:
            - containerPort: 8080
            securityContext:
              runAsNonRoot: false
            resources:
              requests:
                cpu: 200m
    
  2. Implemente a aplicação no cluster:

    kubectl apply -f misconfig-sample.yaml
    

Se quiser experimentar outras violações, modifique misconfig-sample.yaml com a configuração "incorreta" correspondente.

Veja e tome medidas relativamente aos resultados da auditoria de configuração

A auditoria inicial demora até 15 minutos a devolver resultados. O GKE apresenta os resultados no painel de controlo da postura de segurança e adiciona automaticamente entradas aos registos do cluster.

Ver resultados

Para ver uma vista geral das preocupações descobertas nos clusters e nas cargas de trabalho do seu projeto, faça o seguinte:

  1. Aceda à página Posição de segurança na Trusted Cloud consola.

    Aceda à postura de segurança

  2. Clique no separador Preocupações.

  3. No painel Filtrar preocupações, na secção Tipo de preocupação, selecione a caixa de verificação Configuração.

Veja detalhes e recomendações sobre preocupações

Para ver informações detalhadas sobre um problema de configuração específico, clique na linha que contém esse problema.

O painel Problema de configuração mostra as seguintes informações:

  • Descrição: uma descrição da preocupação.
  • Ação recomendada: uma vista geral das ações que pode realizar para corrigir o problema de configuração. Esta secção inclui os seguintes detalhes:
    • Que recursos precisam da correção
    • Exemplos de comandos que pode executar para aplicar a correção aos recursos afetados
    • As Trusted Cloud instruções da consola, se aplicável, para corrigir o problema

Veja registos de preocupações detetadas

O GKE adiciona entradas ao contentor de registos _Default no Logging para cada preocupação descoberta. Estes registos só são retidos durante um período específico. Para ver detalhes, consulte o artigo Períodos de retenção de registos.

  1. Na Trusted Cloud consola, aceda ao Explorador de registos:

    Aceda ao Explorador de registos
  2. No campo Consulta, especifique a seguinte consulta:

    resource.type="k8s_cluster"
    jsonPayload.@type="type.googleapis.com/cloud.kubernetes.security.containersecurity_logging.Finding"
    jsonPayload.type="FINDING_TYPE_MISCONFIG"
  3. Clique em Executar consulta.

Para receber notificações quando o GKE adicionar novas descobertas ao Logging, configure alertas baseados em registos para esta consulta. Para mais informações, consulte o artigo Configure alertas baseados em registos.

Limpar

  1. Elimine a carga de trabalho de exemplo que implementou.

    kubectl delete deployment helloweb
    
  2. Opcionalmente, elimine o cluster que usou.

    gcloud container clusters delete CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION
    

Desative a auditoria da configuração da carga de trabalho

Pode desativar a auditoria da configuração da carga de trabalho através da CLI gcloud ou da Trusted Cloud consola.

gcloud

Execute o seguinte comando:

gcloud container clusters update CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --security-posture=disabled

Substitua o seguinte:

  • CLUSTER_NAME: o nome do cluster.
  • CONTROL_PLANE_LOCATION: a localização do plano de controlo do seu cluster. Indique uma região para clusters padrão e do Autopilot regionais ou uma zona para clusters padrão zonais.

Consola

  1. Aceda à página Posição de segurança na Trusted Cloud consola.

    Aceda à postura de segurança
  2. Clique no separador Definições.
  3. Na secção Clusters com auditoria de configuração ativada, clique em Selecionar clusters.
  4. No separador Auditoria ativada, selecione as caixas de verificação dos clusters que quer remover.
  5. Clique em Desativar auditoria e, de seguida, em Confirmar para desativar a auditoria nesses clusters.

Limitações da auditoria da configuração da carga de trabalho

  • Os conjuntos de nós do Windows Server não são suportados.
  • A auditoria da configuração da carga de trabalho não analisa cargas de trabalho geridas pelo GKE, como cargas de trabalho no espaço de nomes kube-system.
  • A auditoria da configuração da carga de trabalho só está disponível para clusters com menos de 1000 nós.
  • O painel de controlo da postura de segurança suporta até 150 000 resultados de auditoria de configuração de carga de trabalho ativos para cada cluster. Quando o número de resultados de um cluster excede este máximo, o painel de controlo de postura de segurança deixa de apresentar resultados de configuração para esse cluster.

    Para resolver este problema, use os registos no Logging para identificar problemas de configuração e implementar manifestos atualizados. Quando o número de resultados da configuração é inferior a 150 000, o painel de controlo da postura de segurança começa a apresentar resultados para o cluster.

O que se segue?