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 CLI do Google Cloud:
Console
Acesse a página do Cloud Run no Console do 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 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
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 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
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
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
Implante o novo serviço usando o seguinte comando:
gcloud run services replace service.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.