Container Registry e Artifact Registry utilizzano ruoli Identity and Access Management diversi per controllare alle immagini container archiviate nel registro.
Per facilitare la transizione da Container Registry ad Artifact Registry, puoi eseguire un comando Google Cloud CLI che:
- Identifica i criteri di autorizzazione che si applicano a un bucket Cloud Storage Storage che archivia immagini per Container Registry
- Restituisce un criterio con ruoli Artifact Registry simili in modo da poter concedere gli utenti di Container Registry esistenti accedano ai repository Artifact Registry.
Il comando utilizza l'Analizzatore criteri IAM per analizzare i criteri di autorizzazione IAM.
Prima di iniziare
Attiva Cloud Asset API.
Devi abilitare l'API nel progetto o nell'organizzazione in cui vuoi per analizzare i criteri di autorizzazione esistenti.
Installa e inizializza gcloud CLI. Per un esistente, esegui l'aggiornamento alla versione più recente con il comando:
gcloud components update
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per analizzare i criteri di autorizzazione e concedere l'accesso ai repository Artifact Registry, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto, nella cartella o nell'organizzazione a cui analizza le autorizzazioni:
-
Cloud Asset Viewer (
roles/cloudasset.viewer
) -
Per analizzare i criteri con i ruoli IAM personalizzati:
Visualizzatore ruoli (
roles/iam.roleViewer
) -
Per utilizzare Google Cloud CLI per analizzare i criteri:
Consumer Service Usage (
roles/serviceusage.serviceUsageConsumer
) - Per concedere ruoli in un repository Artifact Registry: Amministratore Artifact Registry
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Questi ruoli predefiniti le autorizzazioni necessarie per analizzare i criteri di autorizzazione e concedere l'accesso ai repository Artifact Registry. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per analizzare i criteri di autorizzazione e concedere l'accesso ai repository Artifact Registry sono necessarie le seguenti autorizzazioni:
-
cloudasset.assets.analyzeIamPolicy
-
cloudasset.assets.searchAllResources
-
cloudasset.assets.searchAllIamPolicies
-
Per analizzare i criteri con i ruoli IAM personalizzati:
iam.roles.get
-
Per utilizzare Google Cloud CLI per analizzare i criteri:
serviceusage.services.use
-
Per concedere ruoli in un repository Artifact Registry:
artifactregistry.repositories.setIamPolicy
Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati altri ruoli predefiniti.
Utilizzare lo strumento di mappatura
Lo strumento di mappatura controlla i criteri di autorizzazione per un Container Registry specificato
nome host, ad esempio gcr.io
.
Lo strumento verifica la presenza di insiemi di autorizzazioni predefinite i ruoli di Cloud Storage e li mappa ai ruoli di Artifact Registry. Per un confronto delle autorizzazioni Cloud Storage ai ruoli di Artifact Registry, consulta Mappature dei ruoli.
Per utilizzare lo strumento di mappatura dei ruoli:
Esegui lo strumento di mappatura:
gcloud beta artifacts docker upgrade print-iam-policy HOSTNAME \ --project=PROJECT_ID > POLICY_FILENAME
Sostituisci i seguenti valori:
HOSTNAME è il nome host di Container Registry che vuoi lo strumento per analizzare:
gcr.io
asia.gcr.io
eu.gcr.io
us.gcr.io
PROJECT_ID è l'ID del progetto Google Cloud con l'host del registro che stai analizzando.
POLICY_FILE è il nome file del criterio, in formato YAML, che lo strumento restituirà.
Il comando di esempio seguente analizza il bucket di archiviazione per
gcr.io
in nel progettomy-project
per i criteri di autorizzazione applicati direttamente o che vengono ereditati dall'ID organizzazione padre101231231231
e dei suoi discendenti.gcloud beta artifacts docker upgrade print-iam-policy gcr.io \ --project=my-project > gcr-io-policy.yaml
Il comando restituisce un file di criteri in formato YAML con ruolo Artifact Registry associazioni, in base ai criteri di autorizzazione esistenti per il bucket di archiviazione. Se il progetto padre per il bucket di archiviazione si trova in un'organizzazione, il criterio include le entità che hanno l'accesso concesso nella cartella o a livello di organizzazione.
Ad esempio, l'esempio seguente include associazioni di ruolo Artifact Registry per:
- Cloud Build, Compute Engine e Container Registry agenti di servizio. Gli agenti di servizio agiscono per conto di servizi Google Cloud.
- L'account utente
user@example.com
- L'account di servizio gestito dall'utente
deploy@my-project.iam.gserviceaccount.com
.
bindings: - members: - service-3213213213213@gcp-sa-cloudbuild.iam.gserviceaccount.com - user:user@example.com role: roles/artifactregistry.repoAdmin - members: - serviceAccount:deploy@my-project.iam.gserviceaccount.com - serviceAccount:service-1231231231231@@compute-system.iam.gserviceaccount.com - serviceAccount:service-1231231231231@containerregistry.iam.gserviceaccount.com role: roles/artifactregistry.reader
Rimuovi dal criterio la riga dell'agente di servizio Container Registry poiché questo account di servizio non richiede l'accesso al tuo Artifact Registry repository. Il suffisso dell'indirizzo email dell'agente di servizio è
containerregistry.iam.gserviceaccount.com
.Nel criterio di esempio del passaggio precedente, la riga con L'agente di servizio di Container Registry è:
- serviceAccount:service-1231231231231@containerregistry.iam.gserviceaccount.com
Esamina le altre associazioni di ruoli per verificare che siano appropriate.
Artifact Registry offre altri ruoli predefiniti che potresti prendere in considerazione per alcune entità. Ad esempio Artifact Registry L'amministratore di repository Create-on-push consente a un'entità di creare gcr.io in Artifact Registry, ma non ne consente la creazione in altri repository Artifact Registry.
Aggiungi associazioni di ruoli per tutte le entità mancanti nel file del criterio.
Nel file dei criteri restituito potrebbero mancare le seguenti entità:
- le entità con ruoli personalizzati, che non hanno insiemi di autorizzazioni utilizzati dallo strumento per mappare i ruoli.
- Entità a cui è stato concesso l'accesso su una cartella o un'organizzazione padre se non disponi delle autorizzazioni per visualizzare un'organizzazione o una cartella principale.
Applica le associazioni di criteri ai tuoi repository Artifact Registry.
gcloud artifacts repositories set-iam-policy REPOSITORY FILENAME \ --project=PROJECT_ID \ --location=LOCATION
Sostituisci i seguenti valori:
- REPOSITORY è il nome del repository.
- POLICY_FILENAME è il nome del file dei criteri che hai al repository.
- PROJECT_ID è l'ID progetto.
- LOCATION indica una o più regioni località del repository.
Nell'esempio seguente per il progetto
my-project
il criterio viene applicato in il filegcr-io-policy.yaml
nel repository denominatogcr.io
inus
più regioni:gcloud artifacts repositories set-iam-policy gcr.io gcr-io-policy.yaml \ --project=my-project \ --location=us
Se vuoi applicare associazioni di ruoli a una risorsa di livello superiore, modifica criterio di progetto, cartella o organizzazione esistente con le associazioni che vuoi aggiungere.
Mappature dei ruoli
La tabella seguente mostra quali ruoli Artifact Registry predefiniti devono essere concessi agli utenti di Container Registry esistenti in base alla Cloud Storage autorizzazioni di cui dispongono.
Autorizzazioni richieste nel ruolo | Ruolo Artifact Registry |
---|---|
storage.objects.get storage.objects.list |
Lettore Artifact Registry |
storage.buckets.get storage.objects.get storage.objects.list storage.objects.create |
Writer Artifact Registry |
storage.buckets.get storage.objects.get storage.objects.list storage.objects.create storage.objects.delete |
Amministratore repository Artifact Registry |
storage.buckets.get storage.objects.get storage.objects.list storage.objects.create storage.buckets.create |
Amministratore Artifact Registry |