Esta página mostra como conceder acesso à Autorização binária a políticas e imagens de contentores que existem em Google Cloud projetos diferentes do seu projeto atual. Por exemplo, se implementar imagens no cluster do Google Kubernetes Engine (GKE) a partir de um repositório do Artifact Registry ou do Container Registry (obsoleto) pertencente a um projeto diferente, tem de conceder ao serviço de autorização binária no seu projeto acesso aos metadados de imagens no repositório de origem.
Terminologia
Este documento usa os seguintes termos:
- Agente do serviço: uma conta de serviço gerida pela Google Cloud. A autorização binária usa um agente de serviço para interagir com os seus Google Cloud recursos, como clusters do GKE.
- Projeto de políticas: o Google Cloud projeto que contém a sua política de autorização binária.
- Projeto do cluster: o Google Cloud projeto que contém o seu cluster do GKE.
- Projeto do artefacto: o projeto que contém o seu repositório do Artifact Registry ou Container Registry (descontinuado). Google Cloud
Cenários que requerem acesso entre projetos
Tem de conceder autorizações entre projetos em situações como as seguintes:
- O seu projeto de políticas é diferente do projeto de cluster.
- O projeto do cluster é diferente do projeto do artefacto.
Antes de começar
- 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.
-
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
-
Create or select 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.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Binary Authorization API:
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.gcloud services enable binaryauthorization.googleapis.com
-
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
-
Create or select 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.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Binary Authorization API:
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.gcloud services enable binaryauthorization.googleapis.com
POLICY_PROJECT_ID
: o ID do projeto que contém a sua política.CLUSTER_PROJECT_ID
: o ID do projeto do cluster.ARTIFACT_PROJECT_ID
: o ID do projeto que contém o seu repositório do Artifact Registry.CLUSTER_PROJECT_ID
: o ID do projeto que executa os seus clusters do GKE.
O projeto do cluster é diferente do projeto da política
Conceda ao agente de serviço da Autorização binária no projeto do cluster a função de
avaliador de políticas da Autorização binária
(roles/binaryauthorization.policyEvaluator
)
no projeto da política.
gcloud projects add-iam-policy-bindingPOLICY_PROJECT_ID
\ --member="serviceAccount:service-$(gcloud projects describeCLUSTER_PROJECT_ID
--format='value(projectNumber)')@gcp-sa-binaryauthorization.iam.gserviceaccount.com" \ --role=roles/binaryauthorization.policyEvaluator
Substitua o seguinte:
O projeto do cluster é diferente do projeto do artefacto
Conceda ao agente de serviço da Autorização binária no projeto do cluster a função
Leitor do Artifact Registry
(roles/artifactregistry.reader
) no projeto do artefacto.
gcloud projects add-iam-policy-bindingARTIFACT_PROJECT_ID
\ --member="serviceAccount:service-$(gcloud projects describeCLUSTER_PROJECT_ID
--format='value(projectNumber)')@gcp-sa-binaryauthorization.iam.gserviceaccount.com" \ --role=roles/artifactregistry.reader
Substitua o seguinte: