Como usar o acesso de emergência

Esta página fornece instruções sobre como usar o originais com a autorização binária.

Visão geral

A autorização binária oferece a segurança da cadeia de suprimentos de software, gerenciando se o GKE pode implantar uma imagem de contêiner. Ocasionalmente, você precisa forçar a implantação de uma imagem de contêiner que o aplicador de autorização binária normalmente bloqueia. Nesses casos, a autorização binária fornece um recurso conhecido como a lupa. Para ignorar as restrições da política e permitir implantações de imagem, anote a definição do pod com uma sinalização de política break-glass.

A Breakglass oferece uma saída de emergência que permite modificar a aplicação da política de autorização binária e permitir que uma imagem de contêiner seja implantada, incluindo as de contêiner que não seriam permitidas.

Por fim, o acesso de emergência registra automaticamente o evento de acesso de emergência no Cloud Logging. No Cloud Logging, é possível auditar manualmente ou acionar automaticamente um alerta ou outro evento downstream.

Demonstrar um evento de acesso rápido

Atualizar a política de autorização binária para rejeitar todas as solicitações de implantação

Ela é específica da autorização binária, mas requer que você atualize a anotação em uma especificação de pod.

Para atualizar a política e rejeitar todas as solicitações de implantação de uma imagem de contêiner, siga estas etapas:

  1. Acesse a página "Autorização binária" no Console do Google Cloud.

    Acessar a página "Autorização binária"

  2. Clique em Editar política.

  3. Defina a regra padrão do projeto como Deny All:

Na página Editar política, em Regra padrão do projeto, clique em Não permitir todas as imagens.

  1. Clique em Salvar política.

Tentar implantar uma imagem de contêiner

  1. 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: pod-name
    spec:
      containers:
      - name: container-name
        image: gcr.io/google-samples/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4
    EOM
    
  2. Crie o pod usando kubectl:

    kubectl create -f /tmp/create_pod.yaml
    

    Observe o seguinte erro: Error from server (Forbidden): error when creating "/tmp/create_pod.yaml": pods "pod-name" is forbidden: image policy webhook backend denied one or more images: Denied by default admission rule. Overridden by evaluation mode.

Ativar o acesso rápido e implantar novamente

  1. Crie um arquivo de configuração no formato YAML. Esse arquivo agora contém a anotação de acesso rápido, além de outras informações necessárias para criar o pod:

    cat > /tmp/create_pod.yaml << EOM
    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-name
      annotations:
        alpha.image-policy.k8s.io/break-glass: "true"
    spec:
      containers:
      - name: container-name
        image: gcr.io/google-samples/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4
    EOM
    
  2. 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 de acesso rápido no Cloud Logging

  1. Acesse a página do visualizador do Cloud Logging:

    Acesse a página "Visualizador de registros"

  2. Selecione Cluster do Kubernetes na lista Recursos.

  3. Selecione o período no seletor de períodos.

  4. Copie e cole o seguinte comando na caixa de consulta de pesquisa:

    imagepolicywebhook.image-policy.k8s.io/break-glass
    

    Os registros retornados podem ser expandidos para revelar informações sobre o evento de implantação do intervalo.

Faça uma limpeza excluindo o pod:

kubectl delete -f /tmp/create_pod.yaml

e verifique se você recebeu uma saída como esta: pod "pod-name" deleted