Questa pagina mostra come concedere l'accesso all'autorizzazione binaria a criteri e immagini container che esistono in progetti Google Cloud diversi dal tuo progetto attuale. Ad esempio, se esegui il deployment di immagini nel cluster Google Kubernetes Engine (GKE) da un repository Artifact Registry o Container Registry (ritirato) di proprietà di un altro progetto, devi concedere al servizio di autorizzazione binaria nel tuo progetto l'accesso ai metadati dell'immagine nel repository di origine.
Terminologia
Questo documento utilizza i seguenti termini:
- Agente di servizio : account di servizio gestito da Google Cloud. Autorizzazione binaria utilizza un service agent per interagire con le tue risorse, come i cluster GKE. Google Cloud
- Progetto policy: il progetto che contiene la policy di autorizzazione binaria. Google Cloud
- Progetto cluster: il progetto Google Cloud che contiene il tuo cluster GKE.
- Progetto artefatto : il progetto Google Cloud che contiene il tuo repository Artifact Registry o Container Registry (deprecato).
Scenari che richiedono l'accesso tra progetti
Devi concedere le autorizzazioni tra progetti in situazioni come le seguenti:
- Il progetto delle norme è diverso dal progetto del cluster.
- Il progetto del cluster è diverso dal progetto dell'artefatto.
Prima di iniziare
- 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 utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo 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 utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo 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
: l'ID del progetto che contiene la policy.CLUSTER_PROJECT_ID
: l'ID progetto del cluster.ARTIFACT_PROJECT_ID
: l'ID del progetto che contiene il repository Artifact Registry.CLUSTER_PROJECT_ID
: l'ID progetto che esegue i cluster GKE.
Il progetto del cluster è diverso dal progetto del criterio
Concedi all'agente di servizio Autorizzazione binaria nel progetto cluster il ruolo
Valutatore del criterio di autorizzazione binaria
(roles/binaryauthorization.policyEvaluator
)
nel progetto dei criteri.
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
Sostituisci quanto segue:
Progetto cluster diverso dal progetto artefatto
Concedi all'agente di servizio Autorizzazione binaria nel progetto cluster il ruolo
Lettore Artifact Registry
(roles/artifactregistry.reader
) nel progetto artefatto.
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
Sostituisci quanto segue: