Usar validação contínua

Nesta página, mostramos como usar a validação contínua (CV) com a autorização binária.

A validação contínua é um recurso de autorização binária que verifica periodicamente as imagens de contêiner associadas aos pods em execução para manter a conformidade com as políticas. A CV registra descobertas no Cloud Logging.

Antes de começar

  1. Você precisa ter configurado a autorização binária para o Google Kubernetes Engine.

  2. Selecione o ID do projeto em que você instalou a autorização binária. A CV registra eventos de conformidade com a política a partir dos pods em todos os clusters no projeto.

Definir papéis do IAM para CV

Os papéis do gerenciamento de identidade e acesso (IAM, na sigla em inglês) incluem permissões e podem ser atribuídos a usuários, grupos e contas de serviço. Os seguintes papéis incluem as permissões listadas para CV:

Nome da função Permissões de CV Descrição
roles/binaryauthorization.policyEditor binaryauthorization.continuousValidationConfig.update Ativar e desativar a CV.

Ativar a CV

Console

Para ativar a CV usando o Console do Cloud, faça o seguinte:

  1. No Console do Cloud, acesse a página Política de autorização binária.

    Acesse Política de autorização binária

  2. Clique na guia Política.

  3. Clique em Editar política.

  4. Marque a caixa de seleção Validação contínua.

  5. Clique em Save Policy.

API REST

Para ativar a CV usando a API REST, faça o seguinte:

  1. Armazene o ID do projeto:

    DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
    

    Substitua DEPLOYER_PROJECT_ID pelo ID do projeto em que você executa o GKE.

  2. Solicite o token do OAuth para o GCP.

    BEARER_TOKEN=$(gcloud auth print-access-token)
    

    O token é válido apenas por um curto período.

  3. Ativar a CV:

    curl "https://binaryauthorization.googleapis.com/v1alpha2/projects/${DEPLOYER_PROJECT_ID}/continuousValidationConfig" -X PUT -H "authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" --data '{"enforcementPolicyConfig": {"enabled": "true"}}'
    

A CV agora está configurada para registrar eventos.

A entrada de registro do Logging é semelhante a este exemplo:

{
  "insertId": "6054e143-0000-2562-aa64-883d24f57e70",
  "jsonPayload": {
    "@type": "type.googleapis.com/google.cloud.binaryauthorization.v1beta1.ContinuousValidationEvent",
    "podEvent": {
      "images": [
        {
          "description": "Image <var>IMAGE_NAME@IMAGE_DIGEST</var> denied by
           attestor projects/<var>ATTESTOR_PROJECT_ID</var>/attestors/<var>ATTESTOR_NAME</var>:
           No attestations found that were valid and signed by a key trusted by
           the attestor",
          "image": "<var>IMAGE_NAME@IMAGE_DIGEST</var>",
          "result": "DENY"
        }
      ],
      "verdict": "VIOLATES_POLICY",
      "deployTime": "2021-03-19T17:00:08Z",
      "pod": "<var>POD_NAME</var>"
    }
  },
  "resource": {
    "type": "k8s_cluster",
    "labels": {
      "cluster_name": "<var>CLUSTER_NAME</var>",
      "location": "<var>CLUSTER_LOCATION</var>",
      "project_id": "<var>DEPLOYER_PROJECT_ID</var>"
    }
  },
  "timestamp": "2021-03-19T17:15:43.872702342Z",
  "severity": "WARNING",
  "logName": "projects/<var>DEPLOYER_PROJECY_ID</var>/logs/binaryauthorization.googleapis.com%2Fcontinuous_validation",
  "receiveTimestamp": "2021-03-19T17:57:00.432116179Z"
}

Para saber como consultar eventos de CV, consulte Ver eventos de CV no Cloud Logging.

Desativar a CV

Console

Para desativar a CV usando o Console do Cloud, faça o seguinte:

  1. No Console do Cloud, acesse a página Autorização binária:

    Acesse Política de autorização binária

  2. Clique na guia Política.

  3. Clique em Editar política.

  4. Desmarque a caixa de seleção Validação contínua.

  5. Clique em Save Policy.

API REST

Para desativar a CV usando a API REST, faça o seguinte:

  1. Armazene o ID do projeto:

    DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
    

    Substitua DEPLOYER_PROJECT_ID pelo ID do projeto em que você executa o GKE.

  2. Solicite o token do OAuth para o GCP.

    BEARER_TOKEN=$(gcloud auth print-access-token)
    

    O token é válido apenas por um curto período.

  3. Desative a CV usando o seguinte comando:

    curl "https://binaryauthorization.googleapis.com/v1alpha2/projects/${DEPLOYER_PROJECT_ID}/continuousValidationConfig" -X PUT -H "authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" --data '{"enforcementPolicyConfig": {"enabled": "false"}}'
    

Ver eventos de CV no Cloud Logging

Depois de ativar a CV, ela registra regularmente todos os pods que violam a política de autorização binária no Cloud Logging.

Essas entradas de registro contêm o seguinte nome:

logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"

Explorador de registros

Para ver eventos de CV no Cloud Logging usando o Explorador de registros, faça o seguinte:

  1. Acesse Explorador de registros

  2. Selecione o ID do projeto em que você ativou o pacote de operações do Google Cloud.

  3. Insira a seguinte consulta na caixa consulta de pesquisa:

    logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
    
  4. Selecione o intervalo de tempo no seletor de intervalo de tempo.

Visualizador de registros legado

Para ver eventos de CV no Cloud Logging usando o Visualizador de registros legado, faça o seguinte:

  1. Acesse Explorador de registros

  2. Selecione Voltar para o Visualizador de registros legado no menu suspenso Opções.

  3. Escolha o projeto do Google Cloud em que você configurou o pacote de operações do Google Cloud.

  4. Digite a seguinte consulta na caixa de consulta de pesquisa:

    logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
    
  5. Selecione o intervalo de tempo no seletor de intervalo de tempo.

gcloud

Para ver eventos de CV da última semana no Cloud Logging usando gcloud, execute o comando a seguir:

gcloud logging read --order="desc" --freshness=7d \
  'logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"'

A seguir