Usar a validação contínua legada

Esta página é destinada a usuários da CV legada.

Agora, a validação contínua (CV) é compatível com políticas de plataforma com verificações. Se você é novo na CV, recomendamos que use a CV com políticas de plataforma. Se você usar a CV legada, recomendamos que faça upgrade das políticas de singleton do projeto para políticas da plataforma.

O CV é um recurso de autorização binária que verifica periodicamente imagens de contêiner associadas à execução de pods para garantir a conformidade com a política de projeto único de autorização binária. A CV registra descobertas no Cloud Logging.

A CV não encerra os pods em execução.

Limitações

A CV tem as seguintes limitações:

  • A CV é compatível somente com pods implantados no Google Kubernetes Engine (GKE).
  • A CV não é compatível com políticas de autorização binária que especificam regras específicas para identidades de serviço do Anthos Service Mesh, contas de serviço do Kubernetes ou namespaces do Kubernetes.

Antes de começar

  1. Verifique se você configurou a autorização binária do 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.

  3. Verifique se a CLI gcloud está atualizada para a versão mais recente

Permissões necessárias

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.

Para definir as permissões do IAM necessárias, execute os seguintes comandos:

PROJECT_NUMBER=$(gcloud projects list \
  --filter="projectId:ATTESTATION_PROJECT_ID" \
  --format="value(PROJECT_NUMBER)")
SERVICE_ACCOUNT="service-$PROJECT_NUMBER@gcp-sa-binaryauthorization.iam.gserviceaccount.com"
gcloud projects add-iam-policy-binding ATTESTATION_PROJECT_ID \
    --member="serviceAccount:$SERVICE_ACCOUNT" \
    --role='roles/containeranalysis.occurrences.viewer'

Ativar CV legada

Console

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

  1. No Console do Google 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. Expanda a seção Configurações adicionais para implantações do GKE e do Anthos.

  5. Marque a caixa de seleção Ativar validação contínua.

  6. 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. Receba o token OAuth do Google Cloud.

    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.

Solução de problemas

A CV usa outros serviços do Google Cloud, como o Cloud Asset Inventory e o Pub/Sub. Nos casos em que a CV falha, é possível verificar se há erros do Cloud Asset Inventory no Cloud Logging.

Além disso, a CV cria um recurso de feed chamado binauthz-cv-cai-feed. Excluir ou modificar o feed pode causar falha na CV. A CV restaura automaticamente feeds ausentes ou alterados, mas pode não registrar as descobertas até que isso seja feito.

Desativar a CV

Console

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

  1. No Console do Google 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 Ativar 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. Receba o token OAuth do Google Cloud.

    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 Explorador de registros, 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