Use a validação contínua antiga

Esta página destina-se a utilizadores da validação contínua antiga (CV antiga) (descontinuada).

A validação contínua antiga é uma funcionalidade da autorização binária que verifica periodicamente as imagens de contentores associadas aos pods em execução para garantir a conformidade contínua com a política singleton do projeto de autorização binária. Os registos de CV antigos registam as deteções no Cloud Logging.

O CV antigo não termina os pods em execução.

Limitações

O CV antigo tem as seguintes limitações:

  • O CV antigo só suporta pods implementados no Google Kubernetes Engine (GKE).
  • O CV antigo não suporta políticas de autorização binária que especifiquem regras específicas para identidades de serviço da Cloud Service Mesh, contas de serviço do Kubernetes ou espaços de nomes do Kubernetes.

Antes de começar

  1. Certifique-se de que configurou a autorização binária para o Google Kubernetes Engine num projeto. A política de registos de CV antiga regista eventos de conformidade de Pods em todos os clusters no projeto.

  2. Certifique-se de que a CLI gcloud está atualizada para a versão mais recente

Autorizações necessárias

As funções de gestão de identidade e de acesso (IAM) incluem autorizações e podem ser atribuídas a utilizadores, grupos e contas de serviço. As seguintes funções incluem as autorizações indicadas para CV:

Nome da função Autorizações de CV antigas Descrição
roles/binaryauthorization.policyEditor binaryauthorization.continuousValidationConfig.update Ative e desative o CV.

Para definir as autorizações de 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'

Ative o CV antigo

Consola

Para ativar o CV antigo através da consola Google Cloud , faça o seguinte:

  1. Na Google Cloud consola, aceda à página Autorização binária Política.

    Aceda à política de autorização binária

  2. Clique no separador Política.

  3. Clique em Editar política.

  4. Expanda a secção Definições adicionais para implementações do GKE e do Anthos.

  5. Selecione a caixa de verificação Ativar validação contínua.

  6. Clique em Guardar política.

API REST

Para ativar o CV antigo através da 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 onde executa o GKE.

  2. Obtenha o token OAuth para Google Cloud.

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

    O token só é válido durante um curto período de tempo.

  3. Ative o CV antigo:

    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 antiga está agora configurada para registar eventos.

A entrada de registo do Logging é semelhante ao seguinte 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 antigos, consulte o artigo Veja eventos de CV antigos no Cloud Logging.

Resolução de problemas

O CV antigo usa outros Google Cloud serviços, como o Cloud Asset Inventory e o Pub/Sub. Nos casos em que a validação de crédito antiga falha, pode verificar se existem erros do Cloud Asset Inventory no Cloud Logging.

Além disso, o CV antigo cria um recurso de feed denominado binauthz-cv-cai-feed. A eliminação ou a modificação do feed podem fazer com que o CV antigo falhe. A CV antiga restaura automaticamente os feeds em falta ou alterados, mas pode não conseguir registar as conclusões até o fazer.

Desative o CV

Consola

Para desativar o CV antigo através da Google Cloud consola, faça o seguinte:

  1. Na Google Cloud consola, aceda à página Autorização binária:

    Aceda à política de autorização binária

  2. Clique no separador Política.

  3. Clique em Editar política.

  4. Desmarque a caixa de verificação Ativar validação contínua.

  5. Clique em Guardar política.

API REST

Para desativar a CV antiga através da 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 onde executa o GKE.

  2. Obtenha o token OAuth para Google Cloud.

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

    O token só é válido durante um curto período de tempo.

  3. Desative o CV antigo através do 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"}}'
    

Veja eventos de CV antigos nos Registos na nuvem

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

Estas entradas de registo contêm o seguinte nome de registo:

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

Logs Explorer

Para ver eventos de CV antigos no Cloud Logging através do Explorador de registos, faça o seguinte:

  1. Aceda ao Explorador de registos.

  2. Selecione o ID do projeto onde ativou o Google Cloud Observability.

  3. Introduza a seguinte consulta na caixa search-query:

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

Visualizador de registos antigo

Para ver eventos de CV antigos no Cloud Logging através do Explorador de registos, faça o seguinte:

  1. Aceda ao Explorador de registos.

  2. Selecione Voltar ao visualizador de registos antigo no menu pendente Opções.

  3. Escolha o Google Cloud projeto no qual configurou o Google Cloud Observability.

  4. Introduza 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 antigos da semana passada no Cloud Logging com o comando gcloud, execute o seguinte comando:

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

O que se segue?