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:
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
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.-
Instale a CLI do Google Cloud.
-
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.-
Instale a CLI do Google Cloud.
-
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
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
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-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 Google Cloud console ou a Google Cloud CLI:
Console
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.
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 valordefaultpara 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 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-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 uma das seguintes opções:
Console
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.
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 valordefaultpara usar a política padrão.- IMAGE_URL: uma referência à imagem do 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.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
A seguir
- 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.