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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init 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.
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:
Acesse a página de jobs do Cloud Run no console 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.
JOB_NAME: o nome do job.POLICY: a política que você quer aplicar. Use o valordefaultpara usar a política padrão.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.
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.Acesse a página de jobs do Cloud Run:
Clique em Criar job para exibir o formulário Criar job.
- No formulário, especifique a imagem do contêiner que contém o código do job ou selecione uma opção em uma lista de contêineres implantados anteriormente.
- O nome do job é gerado automaticamente a partir da imagem do contêiner. É possível editar ou mudar o nome do job conforme necessário. Não é possível alterar o nome de um job depois que ele é criado.
- Selecione a região em que você quer que o job esteja localizado.
- Especifique o número de tarefas que você quer executar no job. Todas as tarefas precisam ser bem-sucedidas para que o job seja concluído. Por padrão, as tarefas são executadas em paralelo.
Clique em Contêiner, variáveis e secrets, conexões, segurança para definir outras propriedades do job.
Clique na guia Configurações. Na seção Recursos, configure o seguinte:
- No menu suspenso Memória, especifique a quantidade de memória necessária. O padrão é o mínimo necessário, 512 MiB.
- No menu CPU, especifique a quantidade de CPU necessária. O padrão é o mínimo necessário, 1 CPU.
Na seção Capacidade da tarefa:
Em Tempo limite da tarefa, especifique o período máximo em segundos em que a tarefa pode ser executada, até 168 horas (7 dias). Cada tarefa precisa ser concluída dentro do tempo especificado. O padrão é de 10 minutos.
Em Número de novas tentativas por tarefa com falha, especifique o número de novas tentativas em caso de falhas de tarefa. O padrão é três novas tentativas.
Na seção Paralelismo:
- Na maioria dos casos, é possível selecionar Executar o máximo possível de tarefas simultaneamente.
- Se você precisar definir um limite menor devido a restrições de escalonamento nos recursos acessados pelo job, selecione Limitar o número máximo de tarefas simultâneas e especifique o número de tarefas simultâneas no campo Limite de paralelismo personalizado.
Quando terminar a configuração, clique em Criar para criar o job no Cloud Run.
Para executar o job, consulte Executar jobs ou executar jobs em uma programação.
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 valordefaultpara usar a política padrão.- IMAGE_URL: 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.
Crie um novo arquivo
job.yamlcom 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 seu 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
- Use o atestador
built-by-cloud-buildpara implantar somente imagens criadas pelo Cloud Build). - Configure a política de autorização binária usando o Google Cloud console 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.
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 Google Cloud ou a Google Cloud CLI:
Console
gcloud
Ative a autorização binária no serviço e implante-o:
gcloud run services update SERVICE_NAME --binary-authorization=default
Substitua SERVICE_NAME por um nome para o serviço.
YAML
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 consoleGoogle Cloud ou a Google Cloud CLI:
Console
gcloud
Ative a autorização binária no job:
gcloud run jobs update JOB_NAME --binary-authorization=POLICY
Substitua:
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 Google Cloud ou a Google Cloud CLI:
Console
gcloud
Ative a autorização binária no serviço e implante-o:
gcloud run deploy SERVICE_NAME --image=IMAGE_URL --binary-authorization=default --region=REGION
Substitua:
Ativar a autorização binária em um novo job
É possível ativar a autorização binária em um novo job usando uma das seguintes opções:
Console
gcloud
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.