Este guia mostra como configurar a autorização binária para aplicar a implementação baseada em políticas de serviços e tarefas do Cloud Run.
Antes de começar
Configure o Cloud Run e ative as APIs fazendo 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
Aceda à página do Cloud Run na Google Cloud consola.
Clique no serviço.
Clique no separador 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 estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
gcloud run services describe SERVICE --format export > service.yaml
Atualize a anotação
run.googleapis.com/binary-authorization:
da seguinte forma:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/binary-authorization: POLICY name: SERVICE spec: template:
Substitua o seguinte:
- SERVICE: o nome do seu Cloud Run
- POLICY: definido como
default
Substitua o serviço pela respetiva nova configuração através do seguinte comando:
Aceda à página Tarefas do Cloud Run na Google Cloud consola.
Clique na tarefa para abrir os detalhes da tarefa.
Clique no separador Configuração.
Em Autorização binária, selecione uma política na lista de políticas.
Clique em Aplicar para ativar a aplicação da autorização binária na tarefa.
Opcional: para configurar a política de autorização binária, clique em Configurar política.
JOB_NAME
: o nome da sua profissão.POLICY
: a política que quer aplicar. Use o valordefault
para usar a política predefinida.Aceda à página do Cloud Run:
Clique em Criar serviço.
No formulário Criar serviço :
- Selecione o Cloud Run como plataforma de desenvolvimento.
- Selecione a região onde quer que o seu serviço esteja localizado.
- Introduza o nome do serviço.
- Clique em Seguinte para continuar para a página Configure a primeira revisão do serviço.
- Selecione Implementar uma revisão a partir de uma imagem de contentor existente.
- Introduza ou selecione a imagem a implementar.
- Expanda a secção Definições avançadas.
- Clique no separador Segurança.
Selecione a caixa de verificação Validar implementação do contentor com a autorização binária.
Opcional: clique em Configurar política para configurar a política de autorização binária. Para saber como configurar uma política, consulte o artigo Configurar uma política
Implemente o serviço.
SERVICE_NAME
: um nome para o seu serviço.IMAGE_URL
: a imagem que quer implementar.REGION
: a região na qual quer implementar o seu serviço.Crie uma nova tarefa com a autorização binária ativada:
gcloud run jobs create JOB_NAME \ --image IMAGE_URL OPTIONS \ --binary-authorization=POLICY \ --region=REGION
Substitua o seguinte:
JOB_NAME
: o nome da tarefa que quer criar. Pode omitir este parâmetro, mas é-lhe pedido o nome da tarefa se o omitir.POLICY
: a política que quer aplicar. Use o valordefault
para usar a política predefinida.- IMAGE_URL: uma referência à
imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/job:latest
. REGION
: a região onde esta tarefa vai ser executada.OPTIONS
: qualquer uma das opções disponíveis descritas na página de criação de tarefas do Cloud Run.
Aguarde a conclusão da criação da tarefa. Após a conclusão com êxito, a consola apresenta uma mensagem de êxito.
Para executar a tarefa, consulte Executar tarefas ou executar tarefas de acordo com uma programação.
Crie um novo ficheiro
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 o seguinte:
- JOB: o nome da sua tarefa do Cloud Run
- IMAGE: o URL da imagem do contentor
- POLICY: definido como
default
Implemente a nova tarefa através do seguinte comando:
gcloud run jobs replace job.yaml
- Use o
built-by-cloud-build
atestador para implementar apenas imagens criadas pelo Cloud Build. - Configure a política de autorização binária através da Google Cloud consola ou da ferramenta de linha de comandos.
- Use atestações para implementar apenas imagens de contentores assinadas.
- Veja um vídeo sobre como usar a autorização binária no Cloud Run para que apenas as compilações aprovadas sejam implementadas.
Ative a Autorização binária num serviço do Cloud Run existente
Pode ativar a aplicação da autorização binária num serviço existente. Para ativar a aplicação após a ativação, pode ter de implementar uma revisão ou atualizar o tráfego de serviço.
Pode ativar a aplicação da autorização binária num serviço existente através da Google Cloud consola ou da CLI do Google Cloud:
Consola
gcloud
Ative a Autorização binária no serviço e implemente-a:
gcloud run services update SERVICE_NAME --binary-authorization=default
Substitua SERVICE_NAME
por um nome para o seu serviço.
YAML
gcloud run services replace service.yaml
Ative a Autorização binária num trabalho do Cloud Run existente
Pode ativar a aplicação da autorização binária num trabalho existente através da Google Cloud consola ou da Google Cloud CLI:
Consola
gcloud
Ative a autorização binária na tarefa:
gcloud run jobs update JOB_NAME --binary-authorization=POLICY
Substitua o seguinte:
Recomendamos que exija a autorização binária para o Cloud Run configurando uma política da organização para o fazer. A autorização binária pode ser desativada pelos programadores do Cloud Run se a política não estiver configurada.
Veja a política
Para ver a política, clique em Ver política.
Para mais informações, consulte o artigo sobre a configuração de uma política de autorização binária.
Falha na implementação do serviço ou do trabalho
Se a implementação do seu serviço ou tarefa falhar porque viola a política de autorização binária, pode ver um erro semelhante ao seguinte:
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. Neste caso, pode usar o acesso de emergência para ignorar a aplicação da política e implementar a imagem.
Ative a Autorização binária num novo serviço
Pode ativar a autorização binária num novo serviço através da Google Cloud consola ou da CLI do Google Cloud:
Consola
gcloud
Ative a Autorização binária no serviço e implemente-a:
gcloud run deploy SERVICE_NAME --image=IMAGE_URL --binary-authorization=default --region=REGION
Substitua o seguinte:
Ative a autorização binária num novo trabalho
Pode ativar a autorização binária num novo trabalho através da Google Cloud CLI:
gcloud
Quando cria uma nova tarefa, o agente de serviço do Cloud Run tem de poder aceder ao contentor, o que acontece por predefinição.