Usar a validação contínua legada

Esta página é destinada aos usuários da validação contínua legada (CV legada) (descontinuada).

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

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

Limitações

A CV legada tem as seguintes limitações:

  • A CV legada só dá suporte a pods implantados no Google Kubernetes Engine (GKE).
  • A CV legada não dá suporte a 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 para o Google Kubernetes Engine em um projeto. A CV legada registra eventos de conformidade com a política referentes aos pods em todos os clusters do projeto.

  2. Verifique se a gcloud CLI 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 do papel Permissões da CV legada 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 legada usando o 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 legada:

    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 legada 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 da CV legada, consulte Conferir eventos da CV legada no Cloud Logging.

Solução de problemas

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

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

Desativar a CV

Console

Para desativar a CV legada usando o 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 legada 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 legada 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"}}'
    

Mostrar eventos da CV legada no Cloud Logging

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

Essas entradas de registro contêm o seguinte nome:

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

Análise de registros

Para conferir os eventos da CV legada no Cloud Logging usando a Análise de registros, faça o seguinte:

  1. Acesse a Análise de registros

  2. Selecione o ID do projeto em que você ativou o Google Cloud Observability.

  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 conferir os eventos da CV legada no Cloud Logging usando a Análise de registros, faça o seguinte:

  1. Acesse a Análise 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 Google Cloud Observability.

  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 conferir os eventos da CV legada da última semana no Cloud Logging usando gcloud, execute o seguinte comando:

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

A seguir