Nesta página, descrevemos como criar repositórios remotos do Artifact Registry.
Os repositórios remotos armazenam artefatos de fontes externas predefinidas, como Docker Hub, Maven Central, Python Package Index (PyPI), Debian ou CentOS, bem como fontes definidas pelo usuário para formatos compatíveis. Um repositório remoto atua como um proxy da origem externa para que você tenha mais controle sobre as dependências externas. Na primeira vez que você solicita uma versão de um pacote, o Artifact Registry faz o download e o armazenamento em cache do pacote no repositório remoto. Na próxima vez que você solicitar a mesma versão do pacote, o Artifact Registry disponibilizará a cópia em cache.
Os outros modos de repositório são:
- Padrão: é o modo de repositório padrão. Faça upload ou publique artefatos, como pacotes particulares, diretamente em repositórios padrão. É possível fazer o download diretamente de repositórios padrão individuais, mas o acesso a grupos de repositórios com um repositório virtual simplifica a configuração da ferramenta.
- Virtual: um repositório que atua como um ponto de acesso único para vários repositórios upstream, incluindo repositórios remotos e padrão.
Para mais detalhes sobre como os repositórios remotos funcionam, consulte a Visão geral do repositório remoto.
Antes de começar
- Ative o Artifact Registry, incluindo a ativação da API Artifact Registry e a instalação da Google Cloud CLI.
- Opcional: configure padrões para os comandos da CLI gcloud.
- Se você precisar de chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografar o conteúdo do repositório, crie e ative uma chave no Cloud KMS para o repositório.
Se você quiser se autenticar em um repositório upstream, ative a API Secret Manager.
gcloud services enable secretmanager.googleapis.com \ --project=PROJECT_ID
Se o Artifact Registry estiver em um perímetro de serviço do VPC Service Controls, ative a API Access Context Manager se ela ainda não estiver ativada.
gcloud services enable accesscontextmanager.googleapis.com \ --project=PROJECT_ID
Funções exigidas
Para ter as permissões necessárias para gerenciar repositórios, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Crie repositórios remotos e conceda acesso a repositórios individuais:
Administrador do Artifact Registry (
roles/artifactregistry.admin
) no projeto -
Salve suas credenciais do repositório upstream em uma versão do secret:
Administrador do Secret Manager (
roles/secretmanager.admin
) no projeto -
Conceda acesso a origens upstream fora de um perímetro de serviço do VPC Service Controls:
Editor do Access Context Manager (
roles/accesscontextmanager.policyEditor
) no projeto, na pasta ou na organização em que a política de acesso é aplicada
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Criar um repositório remoto
Ao criar um repositório remoto, você precisa definir as configurações a seguir, que não podem ser alteradas após a criação do repositório:
- Formato do artefato.
- Modo do repositório definido como remoto.
- Predefinição do repositório remoto ou origem upstream definida pelo usuário.
- Local do repositório.
- Criptografia com chaves gerenciadas pelo Google ou chaves de criptografia gerenciadas pelo cliente. O Artifact Registry usa chaves de criptografia gerenciadas pelo Google por padrão.
O Artifact Registry aplica restrições da política da organização que exigem que a CMEK criptografe recursos ou limite quais chaves do Cloud KMS podem ser usadas para proteção de CMEK.
Criar um repositório remoto usando o console do Google Cloud
Abra a página Repositórios no console do Google Cloud.
Clique em Criar repositório.
Especifique o nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.
Na seção Formato, selecione o formato do repositório.
Na seção Modo de repositório, selecione Remoto.
Na seção Origem do repositório remoto, selecione upstream predefinido ou Personalizado se quiser usar um URL definido pelo usuário para o upstream.
Opcional. Se você estiver usando um upstream personalizado, insira o URL do repositório personalizado no campo Repositório personalizado. Não é possível alterar o URL após a criação do repositório.
No Modo de autenticação do repositório remoto, escolha uma destas opções:
- Autenticado: para inserir o nome de usuário e o secret para autenticação no repositório upstream.
- Não autenticado: para pular a autenticação para o repositório upstream.
Opcional. Se você selecionou Autenticado, digite o seguinte:
- No campo Nome de usuário, digite seu nome de usuário para o repositório upstream.
- No campo Secret, insira a versão do secret em que você salvou sua senha para o repositório upstream.
É possível editar esses valores depois de criar o repositório. Para mais informações sobre autenticação para upstreams de repositório remoto, consulte Configurar autenticação para upstreams de repositório remoto.
Na seção Tipo de local, escolha o local do repositório:
Escolha o tipo de local: Região ou multirregião. A lista de locais muda para refletir a seleção.
Na lista Região ou Multirregião, selecione um local.
Para mais informações sobre tipos de locais e locais compatíveis, consulte Locais de repositório.
Adicione uma descrição para o repositório. As descrições ajudam a identificar a finalidade do repositório e o tipo de artefatos que ele contém.
Não inclua dados sensíveis, porque as descrições dos repositórios não são criptografadas.
Se você quiser usar rótulos para organizar seus repositórios, clique em Adicionar rótulo e insira o par de chave-valor para o rótulo. Depois de criar o repositório, você poderá adicionar, editar ou remover marcadores.
Na seção Criptografia, escolha o mecanismo de criptografia do repositório.
- Chave gerenciada pelo Google: criptografe o conteúdo do repositório com uma chave de criptografia gerenciada pelo Google.
- Chave gerenciada pelo cliente: criptografe o conteúdo do repositório com uma chave controlada por você por meio do Cloud Key Management Service. Para instruções de configuração de chaves, consulte Como configurar CMEK para repositórios.
Clique em Criar.
O Artifact Registry cria o repositório e o adiciona à lista de repositórios.
Depois de criar o repositório:
- Conceda acesso ao repositório.
- Configure o Docker, gerenciadores de pacotes e outros clientes de terceiros para autenticar os repositórios.
- Configure os repositórios remotos do Artifact Registry para autenticação nas
origens upstream.
- Imagens de contêiner: Configurar a autenticação do repositório remoto no Docker Hub
- Pacotes de idiomas:
- upstreams personalizados definidos pelo usuário: configurar a autenticação para upstreams de repositório remoto;
Criar um repositório remoto usando a CLI gcloud
Para criar um repositório, execute o comando para o formato apropriado:
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
Substitua:
REMOTE-REPOSITORY-NAME
pelo nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.PROJECT_ID
pelo ID do projeto. Se essa sinalização for omitida, o projeto atual ou padrão será usado.LOCATION
pelo local regional ou multirregional para o repositório. É possível omitir essa sinalização se você definir um padrão. Para ver uma lista de locais compatíveis, execute o comandogcloud artifacts locations list
.DESCRIPTION
com uma descrição opcional do repositório. Não inclua dados sensíveis, porque as descrições dos repositórios não são criptografadas.REMOTE-REPOSITORY-DESCRIPTION
pela descrição da configuração do repositório externo para este repositório remoto.USERNAME
, opcionalmente, se você estiver usando a autenticação, com seu nome de usuário para autenticar no repositório upstream.SECRET_VERSION
, opcionalmente, se você estiver usando a autenticação, com a versão do secret contendo sua senha do repositório upstream.UPSTREAM
pelo nome predefinido ou pelo URL definido pelo usuário do repositório upstream. Para mais informações sobre upstreams predefinidos disponíveis e upstream definidos pelo usuário compatíveis, consulte Formatos compatíveis.
Por exemplo, o comando a seguir cria um repositório remoto chamado my-repo
na região us-east1
no projeto my-project
do Google Cloud e pode autenticar no repositório upstream usando o nome de usuário my-username
e a versão do 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
Para mais informações sobre a autenticação em repositórios upstream do Docker Hub, consulte Configurar a autenticação do repositório remoto para o 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
Substitua:
REMOTE-REPOSITORY-NAME
pelo nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.PROJECT_ID
pelo ID do projeto. Se essa sinalização for omitida, o projeto atual ou padrão será usado.LOCATION
pelo local regional ou multirregional para o repositório. É possível omitir essa sinalização se você definir um padrão. Para ver uma lista de locais compatíveis, execute o comandogcloud artifacts locations list
.DESCRIPTION
com uma descrição opcional do repositório. Não inclua dados sensíveis, porque as descrições dos repositórios não são criptografadas.REMOTE-REPOSITORY-DESCRIPTION
pela descrição da configuração do repositório externo para este repositório remoto.USERNAME
, opcionalmente, se você estiver usando a autenticação, com seu nome de usuário para autenticar no repositório upstream.SECRET_VERSION
, opcionalmente, se você estiver usando a autenticação, com a versão do secret contendo sua senha do repositório upstream.UPSTREAM
pelo nome predefinido ou pelo URL definido pelo usuário do repositório upstream. Para mais informações sobre upstreams predefinidos disponíveis e upstream definidos pelo usuário compatíveis, consulte Formatos compatíveis.
Por exemplo, o comando a seguir cria um repositório remoto chamado my-repo
na região us-east1
no projeto my-project
do Google Cloud e pode autenticar no repositório upstream usando o nome de usuário my-username
e a versão do 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
Substitua:
REMOTE-REPOSITORY-NAME
pelo nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.PROJECT_ID
pelo ID do projeto. Se essa sinalização for omitida, o projeto atual ou padrão será usado.LOCATION
pelo local regional ou multirregional para o repositório. É possível omitir essa sinalização se você definir um padrão. Para ver uma lista de locais compatíveis, execute o comandogcloud artifacts locations list
.DESCRIPTION
com uma descrição opcional do repositório. Não inclua dados sensíveis, porque as descrições dos repositórios não são criptografadas.REMOTE-REPOSITORY-DESCRIPTION
pela descrição da configuração do repositório externo para este repositório remoto.USERNAME
, opcionalmente, se você estiver usando a autenticação, com seu nome de usuário para autenticar no repositório upstream.SECRET_VERSION
, opcionalmente, se você estiver usando a autenticação, com a versão do secret contendo sua senha do repositório upstream.UPSTREAM
pelo nome predefinido ou pelo URL definido pelo usuário do repositório upstream. Para mais informações sobre upstreams predefinidos disponíveis e upstream definidos pelo usuário compatíveis, consulte Formatos compatíveis.
Por exemplo, o comando a seguir cria um repositório remoto chamado my-repo
na região us-east1
no projeto my-project
do Google Cloud e pode autenticar no repositório upstream usando o nome de usuário my-username
e a versão do 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
Substitua:
REMOTE-REPOSITORY-NAME
pelo nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.PROJECT_ID
pelo ID do projeto. Se essa sinalização for omitida, o projeto atual ou padrão será usado.LOCATION
pelo local regional ou multirregional para o repositório. É possível omitir essa sinalização se você definir um padrão. Para ver uma lista de locais compatíveis, execute o comandogcloud artifacts locations list
.DESCRIPTION
com uma descrição opcional do repositório. Não inclua dados sensíveis, porque as descrições dos repositórios não são criptografadas.REMOTE-REPOSITORY-DESCRIPTION
pela descrição da configuração do repositório externo para este repositório remoto.USERNAME
, opcionalmente, se você estiver usando a autenticação, com seu nome de usuário para autenticar no repositório upstream.SECRET_VERSION
, opcionalmente, se você estiver usando a autenticação, com a versão do secret contendo sua senha do repositório upstream.UPSTREAM
pelo nome predefinido ou pelo URL definido pelo usuário do repositório upstream. Para mais informações sobre upstreams predefinidos disponíveis e upstream definidos pelo usuário compatíveis, consulte Formatos compatíveis.
Por exemplo, o comando a seguir cria um repositório remoto chamado my-repo
na região us-east1
no projeto my-project
do Google Cloud e pode autenticar no repositório upstream usando o nome de usuário my-username
e a versão do 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
Apto (pré-lançamento)
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"
Substitua:
REMOTE_REPOSITORY_NAME
pelo nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.PROJECT_ID
pelo ID do projeto. Se essa sinalização for omitida, o projeto atual ou padrão será usado.LOCATION
pelo local regional ou multirregional para o repositório. É possível omitir essa sinalização se você definir um padrão. Para ver uma lista de locais compatíveis, execute o comandogcloud artifacts locations list
.DESCRIPTION
com uma descrição opcional do repositório. Não inclua dados sensíveis, porque as descrições dos repositórios não são criptografadas.REMOTE_REPOSITORY_DESCRIPTION
com uma descrição opcional para a configuração de repositório externo desse repositório remoto.APT_REPOSITORY_BASE
por um dos nomes da base de repositório compatíveis listados nos upstreams compatíveis do pacote do SO para repositórios remotos do Apt.APT_REPOSITORY_PATH
pelo restante do URL do repositório upstream que você quer armazenar em cache no repositório remoto após a base do repositório.
Por exemplo, o comando a seguir cria um repositório remoto chamado
my-repo
para armazenar em cache o repositório buster do Debian na região us-east1
no
projeto do Google Cloud my-project
. O URL completo do repositório 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"
Yum (prévia)
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"
Substitua:
REMOTE_REPOSITORY_NAME
pelo nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.PROJECT_ID
pelo ID do projeto. Se essa sinalização for omitida, o projeto atual ou padrão será usado.LOCATION
pelo local regional ou multirregional para o repositório. É possível omitir essa sinalização se você definir um padrão. Para ver uma lista de locais compatíveis, execute o comandogcloud artifacts locations list
.DESCRIPTION
com uma descrição opcional do repositório. Não inclua dados sensíveis, porque as descrições dos repositórios não são criptografadas.REMOTE_REPOSITORY_DESCRIPTION
com uma descrição opcional para a configuração de repositório externo desse repositório remoto.YUM_REPOSITORY_BASE
por um dos nomes de base do repositório compatíveis, listados nos upstreams compatíveis do pacote do SO para repositórios remotos do Yum.YUM_REPOSITORY_PATH
pelo restante do URL do repositório upstream que você quer armazenar em cache no repositório remoto após a base do repositório.
Por exemplo, o comando a seguir cria um repositório remoto para pacotes do Yum chamado my-repo
na região us-east1
no projeto my-project
do Google Cloud para o repositório upstream 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"
O Artifact Registry cria o repositório. Execute o seguinte comando para ver uma descrição do repositório:
gcloud artifacts repositories describe REMOTE_REPOSITORY_NAME \
--location=LOCATION
Depois de criar o repositório, faça o seguinte:
- Conceda acesso ao repositório.
- Configure o Docker, gerenciadores de pacotes e outros clientes de terceiros para autenticar os repositórios.
- Configure os repositórios remotos do Artifact Registry para autenticação nas
origens upstream.
- Imagens de contêiner: Configurar a autenticação do repositório remoto no Docker Hub
- Pacotes de idiomas:
- upstreams personalizados definidos pelo usuário: configurar a autenticação para upstreams de repositório remoto;
Criar um repositório remoto usando o Terraform
Use o recurso google_artifact_registry_repository para criar repositórios.
É necessário ter a versão 5.0.0
ou mais recente do terraform-provider-google
.
Se você não está familiarizado com o Terraform para Google Cloud, consulte a página Primeiros passos - Google Cloud no site da HashiCorp.
O exemplo a seguir define o provedor e um repositório remoto com o
nome de recurso do 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"
}
}
}
Por
- PROJECT-ID é o ID do projeto do Google Cloud;
- LOCATION é o local do repositório.
- REPOSITORY_ID é o ID do repositório.
- DESCRIPTION é a descrição opcional do repositório. Não inclua dados sensíveis, porque as descrições do repositório não são criptografadas.
- KEY é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografia. Omita esse argumento para usar a configuração padrão, as chaves de criptografia gerenciadas pelo Google.
- CONFIG_DESCRIPTION é a descrição opcional da origem remota.
Maven
Se uma política de versão não for especificada, o Artifact Registry criará um repositório Maven que armazena as versões de snapshot e de lançamento de pacotes por padrão.
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"
}
}
}
Por
- PROJECT-ID é o ID do projeto do Google Cloud;
- LOCATION é o local do repositório.
- REPOSITORY_ID é o ID do repositório.
- DESCRIPTION é a descrição opcional do repositório. Não inclua dados sensíveis, porque as descrições do repositório não são criptografadas.
- KEY é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografia. Omita esse argumento para usar a configuração padrão, as chaves de criptografia gerenciadas pelo Google.
- CONFIG_DESCRIPTION é a descrição opcional da origem remota.
Para armazenar versões de snapshot e de lançamento em repositórios
diferentes, especifique uma política de versão para o
repositório usando um bloco maven_config
. Esse bloco é compatível com as
configurações a seguir:
version_policy
define a política de versão com um dos seguintes valores:VERSION_POLICY_UNSPECIFIED
: armazenar snapshots e lançar pacotes. Essa é a configuração padrão.- LANÇAMENTO: armazenar apenas pacotes de lançamento.
- SNAPSHOT: armazenar somente pacotes de snapshots.
allow_snapshot_overwrites
configura um repositório com uma política de versãoSNAPSHOT
para aceitar snapshots não exclusivos que substituem as versões atuais no repositório.
O exemplo a seguir define um repositório Maven com uma política de versão de lançamento.
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"
}
}
}
Por
- PROJECT-ID é o ID do projeto do Google Cloud;
- LOCATION é o local do repositório.
- REPOSITORY_ID é o ID do repositório.
- DESCRIPTION é a descrição opcional do repositório. Não inclua dados sensíveis, porque as descrições do repositório não são criptografadas.
- KEY é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografia. Omita esse argumento para usar a configuração padrão, as chaves de criptografia gerenciadas pelo Google.
- CONFIG_DESCRIPTION é a descrição opcional da origem 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"
}
}
}
Por
- PROJECT-ID é o ID do projeto do Google Cloud;
- LOCATION é o local do repositório.
- REPOSITORY_ID é o ID do repositório.
- DESCRIPTION é a descrição opcional do repositório. Não inclua dados sensíveis, porque as descrições do repositório não são criptografadas.
- KEY é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografia. Omita esse argumento para usar a configuração padrão, as chaves de criptografia gerenciadas pelo Google.
- CONFIG_DESCRIPTION é a descrição opcional da origem remota.
Apto (pré-lançamento)
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"
}
}
}
}
Por
- PROJECT-ID é o ID do projeto do Google Cloud;
- LOCATION é o local do repositório.
- REPOSITORY_ID é o ID do repositório.
- DESCRIPTION é a descrição opcional do repositório. Não inclua dados sensíveis, porque as descrições dos repositórios não são criptografadas.
- CONFIG_DESCRIPTION é a descrição opcional da origem remota.
- REPOSITORY_BASE é a base do repositório público predefinida para o Apt.
Os valores possíveis são
DEBIAN
eUBUNTU
. - REPOSITORY_PATH é o repositório específico da base. Por
exemplo
debian/dists/buster
.
Yum (pré-lançamento)
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"
}
}
}
}
Por
- PROJECT-ID é o ID do projeto do Google Cloud;
- LOCATION é o local do repositório.
- REPOSITORY_ID é o ID do repositório.
- DESCRIPTION é a descrição opcional do repositório. Não inclua dados sensíveis, porque as descrições dos repositórios não são criptografadas.
- CONFIG_DESCRIPTION é a descrição opcional da origem remota.
- REPOSITORY_BASE é a base do repositório público predefinida do Yum.
Os valores possíveis são
CENTOS
,CENTOS_DEBUG
,CENTOS_VAULT
,CENTOS_STREAM
,ROCKY
eEPEL
. - REPOSITORY_PATH é o repositório específico da base. Por
exemplo
"centos/8-stream/BaseOS/x86_64/os
.
O Artifact Registry cria o repositório. Execute o seguinte comando para ver uma descrição do repositório:
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
Depois de criar o repositório:
- Conceda acesso ao repositório.
- Configure o Docker, gerenciadores de pacotes e outros clientes de terceiros para autenticar os repositórios.
- Configure os repositórios remotos do Artifact Registry para autenticação nas
origens upstream.
- Imagens de contêiner: Configurar a autenticação do repositório remoto no Docker Hub
- Pacotes de idiomas:
- upstreams personalizados definidos pelo usuário: configurar a autenticação para upstreams de repositório remoto;
Editar descrições do repositório
É possível alterar a descrição do repositório no console do Google Cloud ou na CLI gcloud.
Console
Abra a página Repositórios no console do Google Cloud.
Na lista de repositórios, selecione o repositório e clique em Editar repositório.
Edite a descrição do repositório e clique em Salvar.
gcloud
Para atualizar a descrição do repositório, execute o comando:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT] \
--location=LOCATION \
--description="DESCRIPTION"
Substitua os seguintes valores:
- REPOSITORY é o nome do repositório. Se você tiver configurado um repositório padrão, será possível omitir essa sinalização para usar o padrão.
- PROJECT é o ID do projeto do Google Cloud; Se essa sinalização for omitida, o projeto atual ou padrão será usado.
- LOCATION é um local regional ou multirregional. Use esta sinalização para ver repositórios em um local específico. Se você tiver configurado um local padrão, poderá omitir essa sinalização para usar o padrão.
- DESCRIPTION é uma descrição do repositório.
Acesso a origens upstream em um perímetro de serviço
Os serviços em um perímetro de serviço VPC Service Controls restringem o acesso a recursos fora do perímetro.
É possível permitir ou negar o acesso a origens upstream em um projeto e um local especificados do Google Cloud.
Por padrão, o Artifact Registry negará acesso a origens upstream se você não tiver concedido acesso explicitamente.
Para o Artifact Registry, o papel necessário é Administrador do Artifact Registry
(roles/artifactregistry.admin
).
Conferir configurações para origens upstream
Para visualizar a configuração de uma combinação específica de projeto e local, execute o seguinte comando:
gcloud artifacts vpcsc-config describe \
--project=PROJECT_ID \
--location=LOCATION
Por exemplo, use o seguinte comando para visualizar as configurações de repositórios remotos
em us-east1
no projeto my-project
:
gcloud artifacts vpcsc-config describe \
--project=my-project \
--location=us-east1
Permitir acesso a origens upstream
Para permitir o acesso a origens upstream em um local especificado, execute o comando:
gcloud artifacts vpcsc-config allow \
--project=PROJECT_ID \
--location=LOCATION
Por exemplo, use o seguinte comando para permitir que todos os repositórios remotos em
us-east1
no projeto my-project
acessem as origens upstream fora
do perímetro:
gcloud artifacts vpcsc-config allow \
--project=my-project \
--location=us-east1
Negar acesso a origens upstream
Quando você nega acesso a origens upstream, os artefatos armazenados em cache em repositórios remotos ainda ficam disponíveis.
Para negar acesso a origens upstream em um local especificado, execute o comando:
gcloud artifacts vpcsc-config deny \
--project=PROJECT_ID \
--location=LOCATION
Por exemplo, use o seguinte comando para bloquear o acesso a origens upstream
fora do perímetro para todos os repositórios remotos em us-west1
no
projeto my-project
:
gcloud artifacts vpcsc-config deny \
--project=my-project \
--location=us-west1
A seguir
- Crie um repositório remoto do Docker Hub.
- Saiba mais sobre os repositórios remotos do Artifact Registry.
- Configure a autenticação do repositório remoto no Docker Hub.