Esta página fornece instruções sobre como usar o originais com a autorização binária.
Antes de começar
Este guia pressupõe que você tenha configurado a autorização binária.
Visão geral
Use o acesso de emergência para implantar uma imagem de contêiner que a autorização binária bloqueia.
A Breakglass oferece uma saída de emergência que permite modificar a aplicação da política de autorização binária para permitir que as imagens sejam implantadas, mesmo as que não seriam permitidas.
Esse recurso é implementado de acordo com recomendações na especificação do controlador de admissão do Kubernetes.
Quando você usa a implantação forçada para implantar uma imagem, um evento de implantação forçada é registrado automaticamente nos Registros de auditoria do Cloud, independentemente da implantação atender ou violar a política. Nos registros de auditoria do Cloud, é possível auditar manualmente ou acionar automaticamente um alerta ou outro evento downstream.
Para ativar o acesso de emergência, adicione um campo label
à especificação do pod com uma sinalização de política break-glass
.
Demonstrar um evento de acesso rápido
Esta seção mostra como usar a implantação forçada para implantar imagens, incluindo aquelas que violam a política de autorização binária.
Atualizar a política de autorização binária para rejeitar todas as solicitações de implantação
Para atualizar a política e proibir a implantação de todas as imagens, siga estas etapas:
Console do Google Cloud
Acesse a página "Autorização binária" no Console do Google Cloud.
Clique em Editar política.
Na página Editar política, em Regra padrão do projeto, anote o modo de avaliação original e clique em Não permitir todas as imagens.
Clique em Salvar política.
gcloud
Para salvar a política atual no projeto atual, execute este comando:
gcloud container binauthz policy export > SAVE_POLICY_YAML
Substitua SAVE_POLICY_YAML pelo caminho do arquivo de exportação, por exemplo,
/tmp/save_policy.yaml
.Crie um arquivo de política:
cat > TEST_POLICY_YAML << EOM admissionWhitelistPatterns: defaultAdmissionRule: enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG evaluationMode: ALWAYS_DENY globalPolicyEvaluationMode: DISABLE EOM
Substitua TEST_POLICY_YAML por um caminho de arquivo, por exemplo,
/tmp/policy.yaml
.Importe a política:
gcloud container binauthz policy import TEST_POLICY_YAML
Substitua TEST_POLICY_YAML por um caminho de arquivo, por exemplo,
/tmp/policy.yaml
.
Por padrão, a implantação de todas as imagens é bloqueada.
Tentar implantar uma imagem
Nesta seção, você tentará implantar uma imagem. A regra padrão da política é configurada para impedir a implantação de todas as imagens. Portanto, a solicitação de implantação falha.
Crie um arquivo de configuração no formato YAML. Este arquivo contém as informações básicas necessárias para criar o pod:
cat > /tmp/create_pod.yaml << EOM apiVersion: v1 kind: Pod metadata: name: breakglass-pod spec: containers: - name: container-name image: gcr.io/google-samples/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4 EOM
Crie o pod usando
kubectl
:kubectl create -f /tmp/create_pod.yaml
Você verá um erro indicando que a imagem foi bloqueada pela política. O erro é semelhante a este:
Error from server (Forbidden): error when creating "/tmp/create_pod.yaml": pods "breakglass-pod" is forbidden: image policy webhook backend denied one or more images: Image gcr.io/google-samples/hello-app denied by Binary Authorization default admission rule. Denied by always_deny admission rule`.
Ativar o acesso rápido e implantar novamente
Nesta seção, você ativará o acesso de emergência. Embora o acesso de emergência seja específico da
autorização binária, é necessário atualizar o campo label
na especificação do pod para
ativá-lo.
Para ativar o acesso de emergência, execute os seguintes comandos:
Crie um arquivo de configuração no formato YAML.
O seguinte comando cria o arquivo que contém o rótulo
break-glass
e outras informações necessárias para criar o pod:cat > /tmp/create_pod.yaml << EOM apiVersion: v1 kind: Pod metadata: name: pod-name labels: image-policy.k8s.io/break-glass: "true" spec: containers: - name: container-name image: gcr.io/google-samples/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4 EOM
Crie o pod usando
kubectl
:kubectl create -f /tmp/create_pod.yaml
Observe a saída:
pod/pod-name created
Encontrar a entrada de registro da implantação forçada nos registros de auditoria do Cloud
Veja os eventos de implantação forçada nos Registros de auditoria do Cloud.
PodSpecs mais antigos que especificam annotations: alpha.image-policy.k8s.io/break-glass
também acionam a implantação forçada e produzem entradas de registro. O uso dessa anotação não é
mais recomendado, mas ainda é possível manter a compatibilidade com versões anteriores.
Limpar
Para excluir o pod e desativar o acesso de emergência, faça o seguinte:
Exclua o pod:
kubectl delete -f /tmp/create_pod.yaml
Verifique se você recebeu uma saída como
pod <var>pod-name</var> deleted
.Remova o bloco
label
da especificação do pod.Redefina sua política:
Console do Google Cloud
Acesse a página "Autorização binária" no Console do Google Cloud.
Clique em Editar política.
Na página Editar política, em Regra padrão do projeto, redefina o modo de avaliação para a configuração anterior.
Clique em Salvar política.
gcloud
Reimporte sua política original.
gcloud container binauthz policy import SAVE_POLICY_YAML
Substitua SAVE_POLICY_YAML pelo caminho para o arquivo criado anteriormente neste guia.
Sua política será redefinida.
A seguir
- Veja os eventos de implantação forçada nos Registros de auditoria do Cloud.