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
Verifique se você configurou a autorização binária do Google Kubernetes Engine.
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.
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:
No Console do Google Cloud, acesse a página Política de autorização binária.
Clique na guia Política.
Clique em Editar política.
Expanda a seção Configurações adicionais para implantações do GKE e do Anthos.
Marque a caixa de seleção Ativar validação contínua.
Clique em Save Policy.
API REST
Para ativar a CV usando a 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 em que você executa o GKE.Receba o token OAuth do Google Cloud.
BEARER_TOKEN=$(gcloud auth print-access-token)
O token é válido apenas por um curto período.
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:
No Console do Google Cloud, acesse a página Autorização binária.
Clique na guia Política.
Clique em Editar política.
Desmarque a caixa de seleção Ativar validação contínua.
Clique em Save Policy.
API REST
Para desativar a CV usando a 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 em que você executa o GKE.Receba o token OAuth do Google Cloud.
BEARER_TOKEN=$(gcloud auth print-access-token)
O token é válido apenas por um curto período.
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:
Selecione o ID do projeto em que você ativou o pacote de operações do Google Cloud.
Insira a seguinte consulta na caixa consulta de pesquisa:
logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
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:
Selecione Voltar para o Visualizador de registros legado no menu suspenso Opções.
Escolha o projeto do Google Cloud em que você configurou o pacote de operações do Google Cloud.
Digite 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 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
- Usar a implantação forçada para implantar um pod e ver eventos de implantação forçada.
- Ativar teste, implantar uma imagem de contêiner e ver eventos de teste.