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:
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
- Install the Google Cloud CLI.
-
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 Google Cloud CLI:
Console
Acesse a página do Cloud Run no console Google Cloud .
Clique no serviço.
Clique na guia Segurança.
Para ativar a aplicação da autorização binária no serviço, clique em Ativar.
Opcional: para configurar a política de autorização binária, clique em Configurar política.
gcloud
Ative e implante a autorização binária no serviço:
gcloud run services update SERVICE_NAME --binary-authorization=default
Substitua SERVICE_NAME
por um nome para o serviço.
YAML
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
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
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
Acesse a página de jobs do Cloud Run no console do Google Cloud .
Clique no job para abrir os detalhes.
Clique na guia Configuração.
Em Autorização binária, selecione uma política na lista.
Clique em Aplicar para ativar a aplicação da autorização binária no job.
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 valordefault
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
Acesse a página do Cloud Run:
Clique em Criar serviço.
No formulário Criar serviço:
- Selecione o Cloud Run como a plataforma de desenvolvimento.
- Selecione a região em que você quer que o serviço esteja localizado.
- Digite o nome do serviço.
- Clique em Avançar para acessar a página Configurar a primeira revisão do serviço.
- Selecione Implantar uma revisão de uma imagem de contêiner atual.
- Digite ou selecione a imagem a ser implantada.
- Expanda a seção Configurações avançadas.
- Clique na guia Security.
Marque a caixa de seleção Verificar a implantação do contêiner com autorização binária.
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
Implante o serviço.
gcloud
Ative e implante a autorização binária no serviço:
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
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 valordefault
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.
Aguarde a conclusão da criação do job. Após a conclusão, o console exibe uma mensagem de sucesso.
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
Crie um novo arquivo
job.yaml
com este conteúdo:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB annotations: run.googleapis.com/binary-authorization: POLICY spec: template: spec: containers: - image: IMAGE
Substitua:
- JOB: o nome do job do Cloud Run
- IMAGE: o URL da imagem do contêiner
- POLICY: defina como
default
Implante o novo job usando este comando:
gcloud run jobs replace job.yaml
A seguir
- Use o atestador
built-by-cloud-build
para implantar somente imagens criadas pelo Cloud Build). - Configure a política de autorização binária usando o console do Google Cloud ou a ferramenta de linha de comando.
- Use atestados para implantar somente imagens de contêiner assinadas.
- Assista a um vídeo sobre como usar a autorização binária no Cloud Run para que apenas versões aprovadas sejam implantadas.