Questa pagina descrive come creare repository remoti in Artifact Registry.
I repository remoti archiviano artefatti da origini esterne preimpostate come Docker Hub, Maven Central, Python Package Index (PyPI), Debian o CentOS, oltre a origini definite dall'utente per i formati supportati. Un repository remoto funge da proxy per l'origine esterna, consentendoti di avere un maggiore controllo sulle dipendenze esterne. La prima volta che richiedi la versione di un pacchetto, Artifact Registry scarica e memorizza il pacchetto nella cache nel repository remoto. La prossima volta che richiedi la stessa versione del pacchetto, Artifact Registry pubblica la copia memorizzata nella cache.
Le altre modalità del repository sono:
- Standard: la modalità di repository predefinita. Puoi caricare o pubblicare gli artefatti, come i pacchetti privati, direttamente nei repository standard. Sebbene sia possibile scaricare direttamente da singoli repository standard, l'accesso a gruppi di repository con un repository virtuale semplifica la configurazione degli strumenti.
- Virtuale: un repository che funge da singolo punto di accesso per più repository a monte, inclusi repository remoti e standard.
Per maggiori dettagli sul funzionamento dei repository remoti, consulta la Panoramica dei repository remoti.
Prima di iniziare
- Abilita Artifact Registry, incluse l'abilitazione dell'API Artifact Registry e l'installazione di Google Cloud CLI.
- (Facoltativo) Configura i valori predefiniti per i comandi gcloud CLI.
- Se hai bisogno di chiavi di crittografia gestite dal cliente (CMEK) per criptare i contenuti del repository, crea e abilita una chiave in Cloud KMS per il repository.
Se vuoi eseguire l'autenticazione in un repository upstream, abilita l'API Secret Manager.
gcloud services enable secretmanager.googleapis.com \ --project=PROJECT_ID
Se Artifact Registry si trova in un perimetro di servizio Controlli di servizio VPC, abilita l'API Access Context Manager se non è già abilitata.
gcloud services enable accesscontextmanager.googleapis.com \ --project=PROJECT_ID
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire i repository, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Crea repository remoti e concedi l'accesso a singoli repository:
Amministratore Artifact Registry (
roles/artifactregistry.admin
) sul progetto -
Salva le credenziali del repository upstream in una versione del secret:
Amministratore Secret Manager (
roles/secretmanager.admin
) sul progetto -
Concedi l'accesso alle origini upstream esterne a un perimetro di servizio dei Controlli di servizio VPC:
Editor del Gestore contesto dell'accesso (
roles/accesscontextmanager.policyEditor
) sul progetto, sulla cartella o sull'organizzazione a cui viene applicato il criterio di accesso
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Crea un repository remoto
Quando crei un repository remoto, devi configurare le seguenti impostazioni, che non possono essere modificate dopo la creazione del repository:
- Formato dell'artefatto.
- Modalità del repository impostata su remota.
- Origine upstream preimpostata o definita dall'utente per il repository remoto.
- Posizione del repository.
- Crittografia con chiavi gestite da Google o chiavi di crittografia gestite dal cliente. Artifact Registry utilizza chiavi di crittografia gestite da Google per impostazione predefinita.
Artifact Registry applica vincoli dei criteri dell'organizzazione che richiedono una CMEK per criptare le risorse o limitare le chiavi Cloud KMS che possono essere utilizzate per la protezione CMEK.
Crea un repository remoto utilizzando la console Google Cloud
Apri la pagina Repositories nella console Google Cloud.
Fai clic su Crea repository.
Specifica il nome del repository. Per ogni posizione del repository di un progetto, i nomi dei repository devono essere univoci.
Nella sezione Formato, seleziona il formato del repository.
Nella sezione Modalità repository, seleziona Remota.
Nella sezione Origine repository remoto, seleziona Upstream preimpostato o Personalizzato se vuoi utilizzare un URL definito dall'utente per l'upstream.
Facoltativo. Se utilizzi un upstream personalizzato, inserisci l'URL del repository personalizzato nel campo Repository personalizzato. L'URL non può essere modificato dopo la creazione del repository.
In Modalità di autenticazione del repository remoto, scegli una delle seguenti opzioni:
- Autenticato: per inserire nome utente e secret per l'autenticazione nel repository upstream.
- Non autenticato: per saltare l'autenticazione al repository a monte.
Facoltativo. Se hai selezionato Autenticato, inserisci quanto segue:
- Nel campo Nome utente, inserisci il tuo nome utente per il repository upstream.
- Nel campo Secret, inserisci la versione del secret in cui hai salvato la password per il repository upstream.
Puoi modificare questi valori dopo aver creato il repository. Per ulteriori informazioni sull'autenticazione negli upstream del repository remoto, consulta Configurare l'autenticazione negli upstream del repository remoto.
Nella sezione Tipo di località, scegli la località per il repository:
Scegli il tipo di località: Regione o Più regioni. L'elenco delle località cambia in base alla selezione.
Nell'elenco Regione o Più regioni, seleziona una località.
Per informazioni sui tipi di località e sulle località supportate, consulta Località del repository
Aggiungi una descrizione per il repository. Le descrizioni aiutano a identificare lo scopo del repository e il tipo di artefatti che contiene.
Non includere dati sensibili, poiché le descrizioni dei repository non sono criptate.
Se vuoi utilizzare le etichette per organizzare i repository, fai clic su Aggiungi etichetta e inserisci la coppia chiave-valore dell'etichetta. Puoi aggiungere, modificare o rimuovere le etichette dopo aver creato il repository.
Nella sezione Crittografia, scegli il meccanismo di crittografia per il repository.
- Chiave gestita da Google: cripta i contenuti del repository con una chiave di crittografia gestita da Google.
- Chiave gestita dal cliente: cripta i contenuti del repository con una chiave che puoi controllare tramite Cloud Key Management Service. Per le istruzioni di configurazione delle chiavi, consulta Configurare CMEK per i repository.
Fai clic su Crea.
Artifact Registry crea il repository e lo aggiunge all'elenco dei repository.
Dopo aver creato il repository:
- Concedi l'accesso al repository.
- Configura Docker, gestori di pacchetti e altri client di terze parti per eseguire l'autenticazione nei repository.
- Configura i repository remoti di Artifact Registry per l'autenticazione nelle rispettive origini upstream.
- Immagini container: Configura l'autenticazione del repository remoto in Docker Hub
- Pacchetti di lingue:
- Upstream personalizzati definiti dall'utente: configura l'autenticazione negli upstream del repository remoto
Crea un repository remoto utilizzando gcloud CLI
Per creare un repository, esegui il comando per il formato di repository appropriato:
Docker
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=docker \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-docker-repo=UPSTREAM
Sostituisci quanto segue:
REMOTE-REPOSITORY-NAME
con il nome del repository. Per ogni località del repository in un progetto, i nomi dei repository devono essere univoci.PROJECT_ID
con l'ID progetto. Se questo flag viene omesso, viene usato il progetto attuale o predefinito.LOCATION
con la località a livello di una o più regioni per il repository. Puoi omettere questo flag se imposti un valore default. Per visualizzare un elenco delle località supportate, esegui il comandogcloud artifacts locations list
.DESCRIPTION
con una descrizione facoltativa del repository. Non includere dati sensibili, poiché le descrizioni dei repository non sono criptate.REMOTE-REPOSITORY-DESCRIPTION
con una descrizione della configurazione del repository esterno per questo repository remoto.Facoltativamente, se utilizzi l'autenticazione,
USERNAME
con il tuo nome utente per l'autenticazione nel repository upstream.Facoltativamente, se utilizzi l'autenticazione,
SECRET_VERSION
con la versione del secret contenente la password del repository upstream.UPSTREAM
con il nome preimpostato o l'URL definito dall'utente del repository a monte. Per informazioni sugli upstream preimpostati disponibili e sugli upstream supportati definiti dall'utente, consulta Formati supportati.
Ad esempio, il comando seguente crea un repository remoto denominato
my-repo
nella regione us-east1
nel progetto Google Cloud
my-project
e può eseguire l'autenticazione nel repository upstream utilizzando il
nome utente my-username
e la versione del secret
projects/my-project/secrets/my-secret/versions/1
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=docker \
--location=us-east1 \
--description="Remote Docker repository" \
--mode=remote-repository \
--remote-repo-config-desc="Docker Hub" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-docker-repo=DOCKER-HUB
Per saperne di più sull'autenticazione nei repository upstream di Docker Hub, consulta Configurare l'autenticazione del repository remoto in Docker Hub.
Maven
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=maven \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-mvn-repo=UPSTREAM
Sostituisci quanto segue:
REMOTE-REPOSITORY-NAME
con il nome del repository. Per ogni località del repository in un progetto, i nomi dei repository devono essere univoci.PROJECT_ID
con l'ID progetto. Se questo flag viene omesso, viene usato il progetto attuale o predefinito.LOCATION
con la località a livello di una o più regioni per il repository. Puoi omettere questo flag se imposti un valore default. Per visualizzare un elenco delle località supportate, esegui il comandogcloud artifacts locations list
.DESCRIPTION
con una descrizione facoltativa del repository. Non includere dati sensibili, poiché le descrizioni dei repository non sono criptate.REMOTE-REPOSITORY-DESCRIPTION
con una descrizione della configurazione del repository esterno per questo repository remoto.Facoltativamente, se utilizzi l'autenticazione,
USERNAME
con il tuo nome utente per l'autenticazione nel repository upstream.Facoltativamente, se utilizzi l'autenticazione,
SECRET_VERSION
con la versione del secret contenente la password del repository upstream.UPSTREAM
con il nome preimpostato o l'URL definito dall'utente del repository a monte. Per informazioni sugli upstream preimpostati disponibili e sugli upstream supportati definiti dall'utente, consulta Formati supportati.
Ad esempio, il comando seguente crea un repository remoto denominato
my-repo
nella regione us-east1
nel progetto Google Cloud
my-project
e può eseguire l'autenticazione nel repository upstream utilizzando il
nome utente my-username
e la versione del secret
projects/my-project/secrets/my-secret/versions/1
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=maven \
--location=us-east1 \
--description="Remote Maven repository" \
--mode=remote-repository \
--remote-repo-config-desc="Maven Central" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-mvn-repo=MAVEN-CENTRAL
npm
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=npm \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-npm-repo=UPSTREAM
Sostituisci quanto segue:
REMOTE-REPOSITORY-NAME
con il nome del repository. Per ogni località del repository in un progetto, i nomi dei repository devono essere univoci.PROJECT_ID
con l'ID progetto. Se questo flag viene omesso, viene usato il progetto attuale o predefinito.LOCATION
con la località a livello di una o più regioni per il repository. Puoi omettere questo flag se imposti un valore default. Per visualizzare un elenco delle località supportate, esegui il comandogcloud artifacts locations list
.DESCRIPTION
con una descrizione facoltativa del repository. Non includere dati sensibili, poiché le descrizioni dei repository non sono criptate.REMOTE-REPOSITORY-DESCRIPTION
con una descrizione della configurazione del repository esterno per questo repository remoto.Facoltativamente, se utilizzi l'autenticazione,
USERNAME
con il tuo nome utente per l'autenticazione nel repository upstream.Facoltativamente, se utilizzi l'autenticazione,
SECRET_VERSION
con la versione del secret contenente la password del repository upstream.UPSTREAM
con il nome preimpostato o l'URL definito dall'utente del repository a monte. Per informazioni sugli upstream preimpostati disponibili e sugli upstream supportati definiti dall'utente, consulta Formati supportati.
Ad esempio, il comando seguente crea un repository remoto denominato
my-repo
nella regione us-east1
nel progetto Google Cloud
my-project
e può eseguire l'autenticazione nel repository upstream utilizzando il
nome utente my-username
e la versione del secret
projects/my-project/secrets/my-secret/versions/1
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=npm \
--location=us-east1 \
--description="Remote npm repository" \
--mode=remote-repository \
--remote-repo-config-desc="Public npm registry" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-npm-repo=NPMJS
Python
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=python \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-python-repo=UPSTREAM
Sostituisci quanto segue:
REMOTE-REPOSITORY-NAME
con il nome del repository. Per ogni località del repository in un progetto, i nomi dei repository devono essere univoci.PROJECT_ID
con l'ID progetto. Se questo flag viene omesso, viene usato il progetto attuale o predefinito.LOCATION
con la località a livello di una o più regioni per il repository. Puoi omettere questo flag se imposti un valore default. Per visualizzare un elenco delle località supportate, esegui il comandogcloud artifacts locations list
.DESCRIPTION
con una descrizione facoltativa del repository. Non includere dati sensibili, poiché le descrizioni dei repository non sono criptate.REMOTE-REPOSITORY-DESCRIPTION
con una descrizione della configurazione del repository esterno per questo repository remoto.Facoltativamente, se utilizzi l'autenticazione,
USERNAME
con il tuo nome utente per l'autenticazione nel repository upstream.Facoltativamente, se utilizzi l'autenticazione,
SECRET_VERSION
con la versione del secret contenente la password del repository upstream.UPSTREAM
con il nome preimpostato o l'URL definito dall'utente del repository a monte. Per informazioni sugli upstream preimpostati disponibili e sugli upstream supportati definiti dall'utente, consulta Formati supportati.
Ad esempio, il comando seguente crea un repository remoto denominato
my-repo
nella regione us-east1
nel progetto Google Cloud
my-project
e può eseguire l'autenticazione nel repository upstream utilizzando il
nome utente my-username
e la versione del secret
projects/my-project/secrets/my-secret/versions/1
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=python \
--location=us-east1 \
--description="Remote Python repository" \
--mode=remote-repository \
--remote-repo-config-desc="PyPI" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-python-repo=PYPI
Apt (anteprima)
gcloud artifacts repositories create REMOTE_REPOSITORY_NAME \
--project=PROJECT_ID \
--repository-format=apt \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE_REPOSITORY_DESCRIPTION" \
--remote-apt-repo=APT_REPOSITORY_BASE \
--remote-apt-repo-path="APT_REPOSITORY_PATH"
Sostituisci quanto segue:
REMOTE_REPOSITORY_NAME
con il nome del repository. Per ogni località del repository in un progetto, i nomi dei repository devono essere univoci.PROJECT_ID
con l'ID progetto. Se questo flag viene omesso, viene usato il progetto attuale o predefinito.LOCATION
con la località a livello di una o più regioni per il repository. Puoi omettere questo flag se imposti un valore default. Per visualizzare un elenco delle località supportate, esegui il comandogcloud artifacts locations list
.DESCRIPTION
con una descrizione facoltativa del repository. Non includere dati sensibili, poiché le descrizioni dei repository non sono criptate.REMOTE_REPOSITORY_DESCRIPTION
con una descrizione facoltativa per la configurazione del repository esterno.APT_REPOSITORY_BASE
con uno dei nomi di base di repository supportati elencati nei upstream supportati dal pacchetto del sistema operativo per i repository remoti Apt.APT_REPOSITORY_PATH
con il resto dell'URL del repository upstream che vuoi memorizzare nella cache nel repository remoto dopo la base del repository.
Ad esempio, il comando seguente crea un repository remoto denominato my-repo
per memorizzare nella cache il repository del busting Debian nella regione us-east1
nel progetto Google Cloud my-project
. L'URL completo del repository
upstream è http://deb.debian.org/debian/dists/buster
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=apt \
--location=us-east1 \
--description="Apt remote repository" \
--mode=remote-repository \
--remote-repo-config-desc="Debian buster distribution" \
--remote-apt-repo=DEBIAN \
--remote-apt-repo-path="debian/dists/buster"
Slurp (anteprima)
gcloud artifacts repositories create REMOTE_REPOSITORY_NAME \
--project=PROJECT_ID \
--repository-format=yum \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE_REPOSITORY_DESCRIPTION" \
--remote-yum-repo=YUM_REPOSITORY_BASE \
--remote-yum-repo-path="YUM_REPOSITORY_PATH"
Sostituisci quanto segue:
REMOTE_REPOSITORY_NAME
con il nome del repository. Per ogni località del repository in un progetto, i nomi dei repository devono essere univoci.PROJECT_ID
con l'ID progetto. Se questo flag viene omesso, viene usato il progetto attuale o predefinito.LOCATION
con la località a livello di una o più regioni per il repository. Puoi omettere questo flag se imposti un valore default. Per visualizzare un elenco delle località supportate, esegui il comandogcloud artifacts locations list
.DESCRIPTION
con una descrizione facoltativa del repository. Non includere dati sensibili, poiché le descrizioni dei repository non sono criptate.REMOTE_REPOSITORY_DESCRIPTION
con una descrizione facoltativa per la configurazione del repository esterno.YUM_REPOSITORY_BASE
con uno dei nomi di base di repository supportati elencati negli upstream supportati dal pacchetto del sistema operativo per i repository remoti Yum.YUM_REPOSITORY_PATH
con il resto dell'URL del repository upstream che vuoi memorizzare nella cache nel repository remoto dopo la base del repository.
Ad esempio, il comando seguente crea un repository remoto per i pacchetti Yum
denominati my-repo
nella regione us-east1
nel progetto Google Cloud
my-project
per il repository a monte centos/8-stream/BaseOs/x86_64/os
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=yum \
--location=us-east1 \
--description="Yum remote repository" \
--mode=remote-repository \
--remote-repo-config-desc="CentOS 8 x86" \
--remote-yum-repo=CENTOS \
--remote-yum-repo-path="centos/8-stream/BaseOs/x86_64/os"
Artifact Registry crea il tuo repository. Esegui questo comando per visualizzare una descrizione del repository:
gcloud artifacts repositories describe REMOTE_REPOSITORY_NAME \
--location=LOCATION
Dopo aver creato il repository:
- Concedi l'accesso al repository.
- Configura Docker, gestori di pacchetti e altri client di terze parti per eseguire l'autenticazione nei repository.
- Configura i repository remoti di Artifact Registry per l'autenticazione nelle rispettive origini upstream.
- Immagini container: Configura l'autenticazione del repository remoto in Docker Hub
- Pacchetti di lingue:
- Upstream personalizzati definiti dall'utente: configura l'autenticazione negli upstream del repository remoto
Crea un repository remoto utilizzando Terraform
Utilizza la risorsa google_artifact_registry_repository
per creare repository.
È necessaria la versione terraform-provider-google
5.0.0
o successiva.
Se è la prima volta che utilizzi Terraform per Google Cloud, consulta la pagina Inizia a utilizzare Google Cloud sul sito web di HashiCorp.
L'esempio seguente definisce il provider e un repository remoto con il nome della risorsa Terraform my-repo
.
Docker
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "docker"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
docker_repository {
public_repository = "DOCKER_HUB"
}
}
}
Dove
- PROJECT-ID è l'ID progetto Google Cloud.
- LOCATION è la località del repository.
- REPOSITORY_ID è l'ID repository.
- DESCRIPTION è la descrizione facoltativa del repository. Non includere dati sensibili, poiché le descrizioni dei repository non sono criptate.
- KEY è il nome della chiave Cloud Key Management Service, se utilizzi chiavi di crittografia gestite dal cliente (CMEK) per la crittografia. Ometti questo argomento per utilizzare l'impostazione predefinita, le chiavi di crittografia gestite da Google.
- CONFIG_DESCRIPTION è la descrizione facoltativa dell'origine remota.
Maven
Se non specifichi un criterio di versione, Artifact Registry crea un Repository Maven che archivia sia le versioni snapshot e di release dei pacchetti per impostazione predefinita.
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "maven"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
maven_repository {
public_repository = "MAVEN_CENTRAL"
}
}
}
Dove
- PROJECT-ID è l'ID progetto Google Cloud.
- LOCATION è la località del repository.
- REPOSITORY_ID è l'ID repository.
- DESCRIPTION è la descrizione facoltativa del repository. Non includere dati sensibili, poiché le descrizioni dei repository non sono criptate.
- KEY è il nome della chiave Cloud Key Management Service, se utilizzi chiavi di crittografia gestite dal cliente (CMEK) per la crittografia. Ometti questo argomento per utilizzare l'impostazione predefinita, le chiavi di crittografia gestite da Google.
- CONFIG_DESCRIPTION è la descrizione facoltativa dell'origine remota.
Per archiviare le versioni di snapshot e rilasciare in repository diversi, specifica un criterio di versione per il repository utilizzando un blocco maven_config
. Questo blocco supporta le seguenti impostazioni:
version_policy
imposta il criterio di versione con uno dei seguenti valori:VERSION_POLICY_UNSPECIFIED
: archivia snapshot e rilascia pacchetti. Questa è l'impostazione predefinita.- RILASCIA: archivia solo i pacchetti di rilascio.
- SNAPSHOT: archivia solo i pacchetti di snapshot.
allow_snapshot_overwrites
configura un repository con un criterio di versioneSNAPSHOT
per accettare snapshot non univoci che sovrascrivono le versioni esistenti nel repository.
L'esempio seguente definisce un Repository Maven con un criterio di versione di release.
provider "google" {
project = "my-project"
}
resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta
location = "LOCATION"
repository_id = "my-repo"
description = "Maven repository"
format = "MAVEN"
mode = "REMOTE_REPOSITORY"
maven_config {
version_policy = "RELEASE"
}
}
npm
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "npm"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
npm_repository {
public_repository = "NPMJS"
}
}
}
Dove
- PROJECT-ID è l'ID progetto Google Cloud.
- LOCATION è la località del repository.
- REPOSITORY_ID è l'ID repository.
- DESCRIPTION è la descrizione facoltativa del repository. Non includere dati sensibili, poiché le descrizioni dei repository non sono criptate.
- KEY è il nome della chiave Cloud Key Management Service, se utilizzi chiavi di crittografia gestite dal cliente (CMEK) per la crittografia. Ometti questo argomento per utilizzare l'impostazione predefinita, le chiavi di crittografia gestite da Google.
- CONFIG_DESCRIPTION è la descrizione facoltativa dell'origine remota.
Python
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "python"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
python_repository {
public_repository = "PYPI"
}
}
}
Dove
- PROJECT-ID è l'ID progetto Google Cloud.
- LOCATION è la località del repository.
- REPOSITORY_ID è l'ID repository.
- DESCRIPTION è la descrizione facoltativa del repository. Non includere dati sensibili, poiché le descrizioni dei repository non sono criptate.
- KEY è il nome della chiave Cloud Key Management Service, se utilizzi chiavi di crittografia gestite dal cliente (CMEK) per la crittografia. Ometti questo argomento per utilizzare l'impostazione predefinita, le chiavi di crittografia gestite da Google.
- CONFIG_DESCRIPTION è la descrizione facoltativa dell'origine remota.
App (anteprima)
provider "google" {
project = "PROJECT_ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "APT"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
apt_repository {
public_repository {
repository_base = "REPOSITORY_BASE"
repository_path = "REPOSITORY_PATH"
}
}
}
}
Dove
- PROJECT-ID è l'ID progetto Google Cloud.
- LOCATION è la località del repository.
- REPOSITORY_ID è l'ID repository.
- DESCRIPTION è la descrizione facoltativa del repository. Non includere dati sensibili, poiché le descrizioni dei repository non sono criptate.
- CONFIG_DESCRIPTION è la descrizione facoltativa dell'origine remota.
- REPOSITORY_BASE è la base di repository pubblico preimpostata per Apt.
I valori possibili sono
DEBIAN
eUBUNTU
. - REPOSITORY_PATH è il repository specifico a partire dalla base. Ad
esempio
debian/dists/buster
.
Slurp (anteprima)
provider "google" {
project = "PROJECT_ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "YUM"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
yum_repository {
public_repository {
repository_base = "REPOSITORY_BASE"
repository_path = "REPOSITORY_PATH"
}
}
}
}
Dove
- PROJECT-ID è l'ID progetto Google Cloud.
- LOCATION è la località del repository.
- REPOSITORY_ID è l'ID repository.
- DESCRIPTION è la descrizione facoltativa del repository. Non includere dati sensibili, poiché le descrizioni dei repository non sono criptate.
- CONFIG_DESCRIPTION è la descrizione facoltativa dell'origine remota.
- REPOSITORY_BASE è la base di repository pubblico preimpostato per Yum.
I valori possibili sono
CENTOS
,CENTOS_DEBUG
,CENTOS_VAULT
,CENTOS_STREAM
,ROCKY
eEPEL
. - REPOSITORY_PATH è il repository specifico a partire dalla base. Ad
esempio
"centos/8-stream/BaseOS/x86_64/os
.
Artifact Registry crea il tuo repository. Esegui questo comando per visualizzare una descrizione del repository:
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
Dopo aver creato il repository:
- Concedi l'accesso al repository.
- Configura Docker, gestori di pacchetti e altri client di terze parti per eseguire l'autenticazione nei repository.
- Configura i repository remoti di Artifact Registry per l'autenticazione nelle rispettive origini upstream.
- Immagini container: Configura l'autenticazione del repository remoto in Docker Hub
- Pacchetti di lingue:
- Upstream personalizzati definiti dall'utente: configura l'autenticazione negli upstream del repository remoto
Modifica descrizioni repository
Puoi modificare la descrizione del repository dalla console Google Cloud o da gcloud CLI.
Console
Apri la pagina Repositories nella console Google Cloud.
Nell'elenco dei repository, seleziona il repository e fai clic su Modifica repository.
Modifica la descrizione del repository e fai clic su Salva.
gcloud
Per aggiornare la descrizione del repository, esegui il comando:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT] \
--location=LOCATION \
--description="DESCRIPTION"
Sostituisci quanto segue:
REPOSITORY
: il nome del repository. Se hai configurato un repository default, puoi omettere questo flag per utilizzare quello predefinito.PROJECT
: l'ID del progetto Google Cloud. Se questo flag viene omesso, viene usato il progetto attuale o predefinito.LOCATION
: una località a una o più regioni. Utilizza questo flag per visualizzare i repository in una località specifica. Se hai configurato una località predefinita, puoi omettere questo flag per utilizzare il valore predefinito.DESCRIPTION
: una descrizione del repository.
Accesso alle origini upstream in un perimetro di servizio
I servizi in un perimetro di servizio Controlli di servizio VPC hanno accesso limitato alle risorse all'esterno del perimetro.
Puoi consentire o negare l'accesso alle origini upstream all'interno di una località e un progetto Google Cloud specificati.
Per impostazione predefinita, Artifact Registry nega l'accesso alle origini upstream se non hai concesso esplicitamente l'accesso.
Per Artifact Registry, il ruolo richiesto è Amministratore di Artifact Registry (roles/artifactregistry.admin
).
Visualizza impostazioni per le origini upstream
Per visualizzare la configurazione per una combinazione specifica di progetto e località, esegui questo comando:
gcloud artifacts vpcsc-config describe \
--project=PROJECT_ID \
--location=LOCATION
Ad esempio, usa il comando seguente per visualizzare le impostazioni dei repository remoti in us-east1
nel progetto my-project
:
gcloud artifacts vpcsc-config describe \
--project=my-project \
--location=us-east1
Consenti l'accesso alle origini upstream
Per consentire l'accesso alle origini upstream in una posizione specificata, esegui il comando:
gcloud artifacts vpcsc-config allow \
--project=PROJECT_ID \
--location=LOCATION
Ad esempio, utilizza il comando seguente per consentire a tutti i repository remoti in us-east1
nel progetto my-project
di accedere alle rispettive origini upstream al di fuori del perimetro:
gcloud artifacts vpcsc-config allow \
--project=my-project \
--location=us-east1
Nega l'accesso alle origini upstream
Quando neghi l'accesso alle origini upstream, gli artefatti memorizzati nella cache nei repository remoti rimangono disponibili.
Per negare l'accesso alle origini upstream in una località specificata, esegui il comando:
gcloud artifacts vpcsc-config deny \
--project=PROJECT_ID \
--location=LOCATION
Ad esempio, utilizza il comando seguente per bloccare l'accesso alle origini upstream all'esterno del perimetro per tutti i repository remoti in us-west1
nel progetto my-project
:
gcloud artifacts vpcsc-config deny \
--project=my-project \
--location=us-west1
Passaggi successivi
- Crea un repository remoto Docker Hub.
- Scopri di più sui repository remoti di Artifact Registry.
- Configura l'autenticazione del repository remoto in Docker Hub.