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
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.
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:
Na Google Cloud consola, aceda à página Autorização binária Política.
Clique no separador Política.
Clique em Editar política.
Expanda a secção Definições adicionais para implementações do GKE e do Anthos.
Selecione a caixa de verificação Ativar validação contínua.
Clique em Guardar política.
API REST
Para ativar o CV antigo através da API REST, faça o seguinte:
Armazene o ID do projeto:
DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
Substitua
DEPLOYER_PROJECT_ID
pelo ID do projeto onde executa o GKE.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.
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:
Na Google Cloud consola, aceda à página Autorização binária:
Clique no separador Política.
Clique em Editar política.
Desmarque a caixa de verificação Ativar validação contínua.
Clique em Guardar política.
API REST
Para desativar a CV antiga através da API REST, faça o seguinte:
Armazene o ID do projeto:
DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
Substitua
DEPLOYER_PROJECT_ID
pelo ID do projeto onde executa o GKE.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.
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:
Selecione o ID do projeto onde ativou o Google Cloud Observability.
Introduza a seguinte consulta na caixa search-query:
logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
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:
Selecione Voltar ao visualizador de registos antigo no menu pendente Opções.
Escolha o Google Cloud projeto no qual configurou o Google Cloud Observability.
Introduza a seguinte consulta na caixa de consulta de pesquisa:
logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
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?
- Use o acesso de emergência para implementar um pod e ver eventos de acesso de emergência.
- Ative a execução de ensaio, implemente uma imagem de contentor e veja os eventos de execução de ensaio.