Ative a Autorização binária para o Cloud Run

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:

  1. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  7. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  8. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  13. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  14. 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

    1. Aceda à página do Cloud Run na Google Cloud consola.

      Aceda ao Cloud Run

    2. Clique no serviço.

    3. Clique no separador Segurança.

    4. Para ativar a aplicação da autorização binária no serviço, clique em Ativar.

    5. 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 implemente-a:

    gcloud run services update SERVICE_NAME --binary-authorization=default
    

    Substitua SERVICE_NAME por um nome para o seu serviço.

    YAML

    1. 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
    2. 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
    3. Substitua o serviço pela respetiva nova configuração através do seguinte comando:

    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

    1. Aceda à página Tarefas do Cloud Run na Google Cloud consola.

      Aceda ao Cloud Run

    2. Clique na tarefa para abrir os detalhes da tarefa.

    3. Clique no separador Configuração.

    4. Em Autorização binária, selecione uma política na lista de políticas.

    5. Clique em Aplicar para ativar a aplicação da autorização binária na tarefa.

    6. Opcional: para configurar a política de autorização binária, clique em Configurar política.

    gcloud

    Ative a autorização binária na tarefa:

    gcloud run jobs update JOB_NAME --binary-authorization=POLICY
    

    Substitua o seguinte:

    • JOB_NAME: o nome da sua profissão.
    • POLICY: a política que quer aplicar. Use o valor default para usar a política predefinida.

    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

    1. Aceda à página do Cloud Run:

      Aceda ao Cloud Run

    2. Clique em Criar serviço.

    3. No formulário Criar serviço :

      1. Selecione o Cloud Run como plataforma de desenvolvimento.
      2. Selecione a região onde quer que o seu serviço esteja localizado.
      3. Introduza o nome do serviço.
      4. Clique em Seguinte para continuar para a página Configure a primeira revisão do serviço.
      5. Selecione Implementar uma revisão a partir de uma imagem de contentor existente.
      6. Introduza ou selecione a imagem a implementar.
      7. Expanda a secção Definições avançadas.
      8. Clique no separador Segurança.
      9. Selecione a caixa de verificação Validar implementação do contentor com a autorização binária.

      10. 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

      11. Implemente o serviço.

    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:

    • 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.

    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

    1. 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 valor default 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.
    2. Aguarde a conclusão da criação da tarefa. Após a conclusão com êxito, a consola apresenta uma mensagem de êxito.

    3. Para executar a tarefa, consulte Executar tarefas ou executar tarefas de acordo com uma programação.

    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.

    YAML

    1. 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
    2. Implemente a nova tarefa através do seguinte comando:

      gcloud run jobs replace job.yaml

    O que se segue?