Configurar uma política usando a API REST | Autorização binária | Google Cloud
Ativar a aplicação em um cluster existente
Configurar uma política usando a API REST
Nesta página, fornecemos instruções para configurar uma política de autorização binária usando a API REST. Como alternativa, você também pode executar essas tarefas usando a ferramenta de linha de comando gcloud ou o Console do Google Cloud. Esta etapa faz parte da configuração da autorização binária.
Uma política é um conjunto de regras que regem a implantação de uma ou mais imagens de contêiner.
Ao configurar uma política usando a API REST, você preenche valores em um formato JSON que tem uma estrutura idêntica à estrutura YAML usada nas interações gcloud com o serviço. Para mais informações, consulte Referência da política YAML.
Para configurar uma política, você precisa:
Exportar um arquivo JSON de política
Adicionar outras imagens isentas (opcional)
Definir a regra padrão
Adicionar regras específicas do cluster (opcional)
Importar o arquivo JSON da política
A maioria das políticas reais verifica se todos os atestadores necessários verificaram se uma imagem de contêiner está pronta para ser implantada. Nesse caso, você também precisa criar atestadores ao configurar a política.
Observação: esta página descreve como configurar uma política para plataformas baseadas em contêiner compatíveis com a autorização binária, incluindo o Google Kubernetes Engine (GKE), clusters do Anthos no VMware, Cloud Run e Anthos Service Mesh. As configurações de política, como o tipo e os parâmetros da regra e o formato do parâmetro, podem variar de acordo com as plataformas que você usa. Por isso, cada seção desta página explica as plataformas a que as configurações se aplicam. Verifique se as configurações que você usa são compatíveis com suas plataformas.
Defina o projeto padrão do Google Cloud, caso ainda não tenha feito isso:
Exportar a política
Esta seção se aplica ao GKE, aos clusters do Anthos no VMware, Cloud Run e ao Anthos Service Mesh.
Exporte a política para um arquivo JSON em seu sistema local:
"namePattern": "k8s.gcr.io/**"
A lista admissionWhitelistPatterns padrão na exportação da política pode exibir caminhos de imagem diferentes dos mostrados neste guia.
Observação: não recomendamos o uso de admissionWhitelistPatterns para adicionar imagens de sistema gerenciadas pelo Google à lista de permissões. As imagens do sistema gerenciadas pelo Google serão permitidas se globalPolicyEvaluationMode estiver definido como ENABLE. Consulte globalPolicyEvaluationMode para ver detalhes.
Gerenciar imagens isentas
Uma imagem isenta é uma imagem de contêiner isenta de regras de política. A autorização binária sempre permite a implantação de imagens isentas.
Para especificar imagens isentas, liste os caminhos de registro em admissionWhitelistPatterns. O caminho pode se referir ao Container Registry ou outro registro de imagem. O aplicador processa imagens isentas em admissionWhitelistPatterns depois de imagens isentas pelo modo de avaliação da política do sistema.
Para adicionar uma imagem isenta, adicione um nó namePattern em uma lista admissionWhitelistPatterns no arquivo JSON da política:
em que MATCHING_PATTERN é o caminho para uma única imagem em seu registro por correspondência exata ou para qualquer imagem que corresponda a um padrão usando o símbolo curinga (*, **).
Esta seção se aplica ao Cloud Run.
O nome da imagem precisa estar no formato IMAGE_PATH@*—, por exemplo, us-docker.pkg.dev/cloudrun/container/hello@*.
O nome da imagem não pode conter tag. Para formatar um nome de imagem que isenta os nomes de imagem que contêm tags, use * como caractere curinga.
Os nomes de caminho podem especificar um resumo.
Modo de avaliação da política do sistema
Esta seção se aplica ao GKE e aos clusters do Anthos no VMware.
O modo de avaliação da política do sistema é uma configuração que faz com que a autorização binária avalie uma política do sistema antes de avaliar a política configurada. O Google gerencia a política do sistema, que isenta uma lista de imagens de sistema mantidas pelo Google que o GKE usa. As imagens listadas na política do sistema não são bloqueadas pela aplicação da política. Se você não ativar a configuração, precisará gerenciar a lista de imagens isentas por conta própria. Saiba como Gerenciar imagens isentas.
Visualize o conteúdo da política do sistema usando o seguinte comando:
Para ativar o modo de avaliação de política do sistema, adicione o seguinte nó de nível superior ao arquivo JSON da política:
Para desativar o modo de avaliação de política do sistema, adicione o seguinte:
Observação: por motivos de confiabilidade, a política do sistema é atualizada por região. Como resultado, a política do sistema pode diferir entre regiões durante uma atualização.
É possível exportar a política do sistema associada a uma região específica da seguinte maneira:
Substitua REGION pela região associada à política do sistema que você quer exportar (ou "global"). Por exemplo: asia-east1, europe-west1, us-central1.
Se você omitir --location ou especificar --location=global, o comando gerará uma política do sistema de uma região no último grupo de regiões para receber atualizações. Como a maioria das alterações na política do sistema são adições, a saída mostra o conjunto de imagens do sistema que são permitidas atualmente em todas as regiões.
Uma regra é a parte de uma política que define as restrições que as imagens de contêiner precisam passar antes de serem implantadas. Cada solicitação de admissão tem um cluster do GKE associado. Se uma solicitação não corresponder a uma regra específica do cluster, a regra padrão será usada.
A regra padrão é definida no nó defaultAdmissionRule na política. Para mais informações sobre as partes desta regra, consulte ADMISSION_RULE na Referência da política de YAML. Para exemplos de regras padrão, consulte Políticas de exemplo.
Para definir a regra padrão, edite o nó defaultAdmissionRule no arquivo JSON da política, conforme necessário:
EVAL_MODE especifica o tipo de restrição que a autorização binária avalia antes de permitir que uma imagem de contêiner seja implantada.
ENFORCEMENT_MODE especifica a ação realizada se uma imagem de contêiner não estiver em conformidade com as restrições definidas na regra.
ATTESTOR especifica os atestadores (se necessário) que precisam assinar uma imagem de contêiner antes de implantá-la. Use o caminho totalmente qualificado para o atestador no formato projects/PROJECT_ID/attestors/ATTESTOR_NAME.
Se a regra verificar se todos os atestadores necessários assinaram uma imagem de contêiner, você precisará criar atestadores antes de concluir esta etapa.
Definir regras específicas do cluster (opcional)
Um cluster também pode ter uma ou mais regras específicas de cluster. Esse tipo de regra se aplica apenas ao cluster do GKE especificado. Se um cluster não tiver uma regra própria, a regra padrão será usada. As regras específicas do cluster são uma parte opcional de uma política.
As regras específicas do cluster são definidas nos nós clusterAdmissionRules no arquivo JSON da política. Para mais informações sobre as partes desta regra, consulte ADMISSION_RULE na Referência da política de YAML. Por exemplo, consulte Usar uma regra específica do cluster em Políticas de exemplo.
Para adicionar uma regra específica do cluster:
No arquivo JSON da política, adicione um nó clusterAdmissionRules:
em que: CLUSTER_SPECIFIER é o ID de recurso do cluster ao qual a regra se aplica no formato; location.name e as outras propriedades estão conforme descrito Definir a regra padrão acima. Consulte Políticas de exemplo para ver um exemplo de uma regra específica do cluster.