Ativar a autorização binária para o Cloud Run

Neste guia, mostramos como configurar a autorização binária para aplicar a implantação baseada em política dos jobs e serviços do Cloud Run.

Antes de começar

Para configurar o Cloud Run e ativar APIs, faça o seguinte:

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init

Ativar a autorização binária em um serviço atual do Cloud Run

É possível ativar a aplicação da autorização binária em um serviço atual. Para ativar a aplicação depois de ativá-la, talvez seja necessário implantar uma revisão ou atualizar o tráfego do serviço.

É possível ativar a aplicação da autorização binária em um serviço atual usando o console do Google Cloud ou a CLI do Google Cloud:

Console

  1. Acesse a página do Cloud Run no Console do Google Cloud.

    Acesse o Cloud Run

  2. Clique no serviço.

  3. Clique na guia Segurança.

  4. Para ativar a aplicação da autorização binária no serviço, clique em Ativar.

  5. Opcional: para configurar a política de autorização binária, clique em Configurar política.

gcloud

Ative a autorização binária no serviço e implante-a:

gcloud run services update SERVICE_NAME --binary-authorization=default

Substitua SERVICE_NAME por um nome para o serviço.

YAML

  1. Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Atualize a anotação run.googleapis.com/binary-authorization: da seguinte maneira:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      annotations:
        run.googleapis.com/binary-authorization: POLICY
      name: SERVICE
    spec:
      template:

    Substitua:

    • SERVICE: o nome do Cloud Run
    • POLICY: defina como default
  3. Substitua o serviço pela nova configuração usando o seguinte comando:

gcloud run services replace service.yaml

Ativar a autorização binária em um job atual do Cloud Run

É possível ativar a aplicação da autorização binária em um job atual usando o Console do Google Cloud ou a Google Cloud CLI:

Console

  1. Acesse a página de jobs do Cloud Run no Console do Google Cloud.

    Acesse o Cloud Run

  2. Clique no job para abrir os detalhes.

  3. Clique na guia Configuração.

  4. Em Autorização binária, selecione uma política na lista.

  5. Clique em Aplicar para ativar a aplicação da autorização binária no job.

  6. Opcional: para configurar a política de autorização binária, clique em Configurar política.

gcloud

Ative a autorização binária no job:

gcloud run jobs update JOB_NAME --binary-authorization=POLICY

Substitua:

  • JOB_NAME: o nome do job.
  • POLICY: a política que você quer aplicar. Use o valor default para usar a política padrão.

Recomendamos que você exija uma autorização binária para o Cloud Run configurando uma política da organização para fazer isso. A autorização binária pode ser desativada pelos desenvolvedores do Cloud Run se a política não estiver configurada.

Conferir a política

Para analisar a política, clique em Ver política.

Para mais informações, consulte Como configurar uma política de autorização binária.

Falha na implantação do serviço ou do job

Se a implantação do job ou serviço falhar por violar a política de autorização binária, talvez você veja um erro como este:

Revision REVISION_NAME uses an unauthorized container image.
Container image IMAGE_NAME is not authorized by policy.

O erro também contém informações sobre o motivo pelo qual a imagem violou a política. Nesse caso, é possível usar a implantação forçada para ignorar a aplicação da política e implantar a imagem.

Ativar a autorização binária em um novo serviço

É possível ativar a autorização binária em um novo serviço usando o console do Google Cloud ou a Google Cloud CLI:

Console

  1. Acesse a página do Cloud Run:

    Acesse o Cloud Run

  2. Clique em Criar serviço.

  3. No formulário Criar serviço:

    1. Selecione o Cloud Run como a plataforma de desenvolvimento.
    2. Selecione a região em que você quer que o serviço esteja localizado.
    3. Digite o nome do serviço.
    4. Clique em Avançar para acessar a página Configurar a primeira revisão do serviço.
    5. Selecione Implantar uma revisão de uma imagem de contêiner atual.
    6. Digite ou selecione a imagem a ser implantada.
    7. Expanda a seção Configurações avançadas.
    8. Clique na guia Security.
    9. Marque a caixa de seleção Verificar a implantação do contêiner com autorização binária.

    10. Opcional: clique em Configurar política para configurar a política de autorização binária. Para saber mais sobre como configurar uma política, consulte Como configurar uma política

    11. Implante o serviço.

gcloud

Ative a autorização binária no serviço e implante-a:

  gcloud run deploy SERVICE_NAME --image=IMAGE_URL --binary-authorization=default --region=REGION

Substitua:

  • SERVICE_NAME: um nome para o serviço.
  • IMAGE_URL: a imagem que você quer implantar.
  • REGION: a região em que você quer implantar o serviço.

Ativar a autorização binária em um novo job

É possível ativar a autorização binária em um novo job usando a Google Cloud CLI:

gcloud

  1. Crie um novo job com a autorização binária ativada:

    gcloud run jobs create JOB_NAME \
      --image IMAGE_URL OPTIONS \
      --binary-authorization=POLICY \
      --region=REGION

    Substitua:

    • JOB_NAME: o nome do job que você quer criar. É possível omitir esse parâmetro, mas será solicitado o nome do job se você omiti-lo.
    • POLICY: a política que você quer aplicar. Use o valor default para usar a política padrão.
    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • REGION: a região em que o job será executado.
    • OPTIONS: qualquer uma das opções disponíveis descritas na página de criação de jobs do Cloud Run.
  2. Aguarde a conclusão da criação do job. Após a conclusão, o console exibe uma mensagem de sucesso.

  3. Para executar o job, consulte Executar jobs ou executar jobs em uma programação.

Quando você cria um novo job, o agente de serviço do Cloud Run precisa ser capaz de acessar o contêiner, o que é o caso por padrão.

YAML

  1. Crie um novo arquivo service.yaml com este conteúdo:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/binary-authorization: POLICY
    spec:
      template:
        spec:
          containers:
          - image: IMAGE

    Substitua:

    • SERVICE: o nome do Cloud Run
    • IMAGE pelo URL da imagem de contêiner.
    • POLICY: defina como default
  2. Implante o novo serviço usando o seguinte comando:

gcloud run services replace service.yaml

A seguir