Crie repositórios remotos

Esta página descreve como criar repositórios remotos do Artifact Registry.

Os repositórios remotos armazenam artefactos das seguintes origens a montante:

  • Repositórios padrão do Artifact Registry.
  • Fontes externas, como as seguintes:
    • CentOS
    • Debian
    • Docker Hub
    • GitHub Container Registry (ghcr.io)
    • Maven Central
    • O índice de pacotes Python (PyPI)

Um repositório remoto funciona como um proxy para a origem a montante, para que tenha mais controlo sobre as suas dependências. Quando pede uma versão de um pacote pela primeira vez, o Artifact Registry transfere e armazena em cache o pacote no repositório remoto. Da próxima vez que pedir a mesma versão do pacote, o Artifact Registry disponibiliza a cópia em cache.

Se pedir um artefacto de uma origem a montante que não existe ou que não contém a versão especificada, o pedido falha.

Os outros modos de repositório são:

  • Padrão: o modo de repositório predefinido. Carregar ou publicar artefactos, como pacotes privados, diretamente em repositórios padrão. Embora possa fazer a transferência diretamente de repositórios padrão individuais, o acesso a grupos de repositórios com um repositório virtual simplifica a configuração das ferramentas.
  • Virtual: um repositório que funciona como um único ponto de acesso para vários repositórios a montante, incluindo repositórios remotos e padrão.

Para mais detalhes sobre como funcionam os repositórios remotos, consulte a Vista geral do repositório remoto.

Antes de começar

  1. Ative o Artifact Registry, incluindo a ativação da API Artifact Registry e a instalação da CLI Google Cloud.
  2. Opcional: configure as predefinições para os comandos da CLI gcloud.
  3. Se precisar de chaves de encriptação geridas pelo cliente (CMEK) para encriptar o conteúdo do repositório, crie e ative uma chave no Cloud KMS para o repositório.
  4. Se quiser autenticar-se num repositório a montante, ative a API Secret Manager.

    gcloud services enable secretmanager.googleapis.com \
        --project=PROJECT_ID
    
  5. Se o Artifact Registry estiver num perímetro de serviço do VPC Service Controls, ative a API Access Context Manager, se ainda não estiver ativada.

    gcloud services enable accesscontextmanager.googleapis.com \
        --project=PROJECT_ID
    
  6. Se quiser definir um repositório do Artifact Registry como upstream, e este estiver num projeto diferente do seu repositório remoto, tem de conceder à conta de serviço do projeto do repositório remoto acesso ao projeto do repositório upstream antes de criar o repositório remoto.

    Conceda a função de agente do serviço

    Os repositórios remotos usam o agente de serviço do Artifact Registry para fazer a autenticação nos repositórios upstream do Artifact Registry. Tem de conceder ao agente do serviço de repositório remoto acesso de leitura ao repositório a montante.

    Para conceder ao agente de serviço do repositório remoto a função de agente de serviço do Artifact Registry no repositório a montante, execute o seguinte comando:

    
      gcloud projects add-iam-policy-binding UPSTREAM_REPOSITORY \
          --member serviceAccount:service-REMOTE_PROJECT_NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com \
          --location=REGION \
          --project=UPSTREAM_PROJECT_ID \
          --role roles/artifactregistry.serviceAgent
      

    Substitua o seguinte:

    • UPSTREAM_REPOSITORY é o ID do repositório a montante. Os repositórios upstream do Artifact Registry têm de ser repositórios no modo padrão.
    • REMOTE_PROJECT_NUMBER é o número do projeto do projeto Google Cloud para o seu repositório remoto.
    • REMOTE_PROJECT_ID é o ID do projeto do repositório remoto. Google Cloud
    • REGION é a região na qual quer criar o seu repositório remoto.
    • UPSTREAM_PROJECT_ID é o ID do Google Cloud projeto com o repositório a montante.

Funções necessárias

Para receber as autorizações de que precisa para gerir repositórios, peça ao seu administrador que lhe conceda as seguintes funções de IAM:

  • Crie repositórios remotos e conceda acesso a repositórios individuais: Administrador do Artifact Registry (roles/artifactregistry.admin) no projeto
  • Guarde as credenciais do repositório upstream numa versão secreta: Administrador do Secret Manager (roles/secretmanager.admin) no projeto
  • Conceda acesso a origens a montante 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 onde a política de acesso é aplicada

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Crie um repositório remoto

Quando cria um repositório remoto, tem de configurar as seguintes definições, que não podem ser alteradas após a criação do repositório:

  • Formato do artefacto.
  • O modo do repositório foi definido como remoto.
  • Origem a montante do repositório remoto.
  • Localização do repositório.
  • Encriptação com Google-owned and Google-managed encryption keys ou chaves de encriptação geridas pelo cliente. O Artifact Registry usa o Google-owned and Google-managed encryption keys por predefinição.

O Artifact Registry aplica restrições de políticas da organização que exigem a CMEK para encriptar recursos ou limitar as chaves do Cloud KMS que podem ser usadas para proteção CMEK.

consola

  1. Abra a página Repositórios na Google Cloud consola.

    Abra a página Repositórios

  2. Clique em Criar repositório.

  3. Especifique o nome do repositório. Para cada localização do repositório num projeto, os nomes dos repositórios têm de ser exclusivos.

  4. Na secção Formato, selecione o formato do repositório.

  5. Na secção Modo de repositório, selecione Remoto.

  6. Na secção Origem do repositório remoto, selecione uma das seguintes formas de introduzir o URL do repositório a montante:

    • Selecione a origem predefinida de upstream apresentada para o seu tipo de formato.
    • Selecione Personalizado para especificar o URL completo de um repositório público ou privado para formatos suportados.
    • Selecione Repositório do Artifact Registry para selecionar um repositório do Artifact Registry padrão.
  7. Se selecionou Personalizado, no campo Repositório personalizado, introduza o URL completo do repositório. Não é possível alterar o URL após a criação do repositório.

    Para ver exemplos de alguns URLs upstream comuns, consulte o artigo Upstreams personalizados.

  8. Se selecionou Repositório do Artifact Registry:

    1. No campo Repositório do Artifact Registry, introduza o nome completo do repositório que quer usar como upstream ou clique em Procurar para ver uma lista de repositórios aos quais tem acesso. Apenas são apresentados os repositórios com o mesmo formato que o seu repositório remoto.
    2. Clique no nome do repositório que quer usar como upstream.
    3. Clique em Selecionar.
  9. Se selecionou uma das origens de dados predefinidas ou introduziu um URL completo através do botão Personalizado, no Modo de autenticação do repositório remoto, escolha uma das seguintes opções:

    • Autenticado: para introduzir o seu nome de utilizador e segredo para autenticação no seu repositório a montante.
    • Não autenticado: para ignorar a autenticação no repositório a montante.
  10. Se selecionou Autenticado, introduza o seguinte:

    • No campo Nome de utilizador, introduza o seu nome de utilizador para o repositório a montante.
    • No campo Secret, introduza a versão do Secret onde guardou a palavra-passe do repositório a montante.

    Pode editar estes valores após criar o repositório. Para mais informações sobre a autenticação em origens remotas de repositórios, consulte o artigo Configure a autenticação em origens remotas de repositórios.

  11. Na secção Tipo de localização, escolha a localização do repositório:

    1. Escolha o tipo de localização: região ou várias regiões. A lista de localizações é alterada para refletir a sua seleção.

    2. Na lista Região ou Várias regiões, selecione uma localização.

    Para obter informações sobre os tipos de localizações e as localizações suportadas, consulte o artigo Localizações de repositórios

  12. Adicione uma descrição para o repositório. As descrições ajudam a identificar a finalidade do repositório e o tipo de artefactos que contém.

    Não inclua dados confidenciais, uma vez que as descrições dos repositórios não são encriptadas.

  13. Se quiser usar etiquetas para organizar os seus repositórios, clique em Adicionar etiqueta e introduza o par de chave-valor para a etiqueta. Pode adicionar, editar ou remover etiquetas depois de criar o repositório.

  14. Na secção Encriptação, escolha o mecanismo de encriptação para o repositório.

    • Google-managed encryption key - Encriptar o conteúdo do repositório com um Google-owned and Google-managed encryption key.
    • Chave gerida pelo cliente: encriptar o conteúdo do repositório com uma chave que controla através do Cloud Key Management Service. Para ver instruções de configuração de chaves, consulte o artigo Configurar CMEK para repositórios.
  15. Se quiser usar políticas de limpeza para eliminar artefactos não usados, na secção Políticas de limpeza:

    1. Selecione Execução de teste para testar a política antes de a aplicar.
    2. Clique em Adicionar política para adicionar uma política de conservação ou eliminação ao seu repositório.
    3. Atribua um nome descritivo à política de limpeza no campo Nome.
    4. Na secção Tipo de política, selecione uma das seguintes opções:

      • Eliminação condicional: elimina artefactos com base nas condições que definir.
      • Manutenção condicional: mantém artefactos com base nas condições que definir.
      • Manter versões mais recentes: mantém um número definido das versões mais recentes por pacote.

      Para mais detalhes sobre as políticas de limpeza, consulte o artigo Configure políticas de limpeza.

  16. Na secção Análise de artefactos, escolha as definições de análise de vulnerabilidades:

    • Ativado: permite a análise neste repositório. A API Container Scanning tem de estar ativada no seu projeto.

      Quando ativa a API Container Scanning, a faturação começa imediatamente. Depois de ativar a API Container Scanning num projeto, a análise de vulnerabilidades é ativada para todos os repositórios novos e existentes. Quando envia uma imagem para o Artifact Registry, esta é analisada automaticamente pela análise de artefactos.

    • Desativada: impede a análise neste repositório. Se a API Container Scanning estiver ativada no seu projeto, a análise continua noutros repositórios. Este repositório vai ser excluído.

      Para mais informações sobre as opções de análise de vulnerabilidades, consulte o artigo Ative e desative a análise automática.

  17. Clique em Criar.

O Artifact Registry cria o repositório e adiciona-o à lista de repositórios.

CLI gcloud

Para criar um repositório, execute o comando para o formato de repositório adequado:

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" \
    --disable-vulnerability-scanning \
    --remote-docker-repo=UPSTREAM

Flags opcionais para autenticação no repositório a montante:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Substitua o seguinte:

  • REMOTE-REPOSITORY-NAME com o nome do repositório. Para cada localização do repositório num projeto, os nomes dos repositórios têm de ser exclusivos.
  • PROJECT_ID com o ID do projeto. Se esta flag for omitida, é usado o projeto atual ou predefinido.
  • LOCATION com a localização regional ou multirregional do repositório. Pode omitir esta sinalização se definir uma predefinição. Para ver uma lista de localizações suportadas, execute o comando gcloud artifacts locations list.
  • DESCRIPTION com uma descrição opcional do repositório. Não inclua dados confidenciais, uma vez que as descrições dos repositórios não são encriptadas.
  • REMOTE-REPOSITORY-DESCRIPTION com uma descrição da configuração do repositório externo para este repositório remoto.
  • USERNAME opcionalmente, se estiver a usar a autenticação, com o seu nome de utilizador para autenticar no repositório a montante.
  • SECRET_VERSION opcionalmente, se estiver a usar a autenticação, com a versão secreta que contém a palavra-passe do repositório a montante.
  • UPSTREAM com o nome a montante predefinido, o caminho do repositório do Artifact Registry ou o URL definido pelo utilizador do repositório a montante.

    Para repositórios upstream do Artifact Registry, formate o caminho do repositório de forma semelhante à seguinte: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Para informações sobre as origens de dados predefinidas disponíveis e as origens de dados definidas pelo utilizador suportadas, consulte o artigo Formatos suportados.

  • --disable-vulnerability-scanning: é um sinalizador opcional que configura o seu repositório para desativar a análise de vulnerabilidades automática.

  • --allow-vulnerability-scanning: é um sinalizador opcional que configura o seu repositório para permitir a análise de vulnerabilidades automática. Para mais informações, consulte o artigo Ative ou desative a análise automática.

Por exemplo, o comando seguinte cria um repositório remoto denominado my-repo na região us-east1 no Google Cloud projeto my-project e pode autenticar-se no repositório a montante através do nome de utilizador my-username e da versão secreta 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 o artigo Configure a autenticação de repositórios remotos no 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" \
    --disable-vulnerability-scanning \
    --remote-mvn-repo=UPSTREAM

Flags opcionais para autenticação no repositório a montante:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Substitua o seguinte:

  • REMOTE-REPOSITORY-NAME com o nome do repositório. Para cada localização do repositório num projeto, os nomes dos repositórios têm de ser exclusivos.
  • PROJECT_ID com o ID do projeto. Se esta flag for omitida, é usado o projeto atual ou predefinido.
  • LOCATION com a localização regional ou multirregional do repositório. Pode omitir esta sinalização se definir uma predefinição. Para ver uma lista de localizações suportadas, execute o comando gcloud artifacts locations list.
  • DESCRIPTION com uma descrição opcional do repositório. Não inclua dados confidenciais, uma vez que as descrições dos repositórios não são encriptadas.
  • REMOTE-REPOSITORY-DESCRIPTION com uma descrição da configuração do repositório externo para este repositório remoto.
  • USERNAME opcionalmente, se estiver a usar a autenticação, com o seu nome de utilizador para autenticar no repositório a montante.
  • SECRET_VERSION opcionalmente, se estiver a usar a autenticação, com a versão secreta que contém a palavra-passe do repositório a montante.
  • UPSTREAM com o nome a montante predefinido, o caminho do repositório do Artifact Registry ou o URL definido pelo utilizador do repositório a montante.

    Para repositórios upstream do Artifact Registry, formate o caminho do repositório de forma semelhante à seguinte: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Para informações sobre as origens de dados predefinidas disponíveis e as origens de dados definidas pelo utilizador suportadas, consulte o artigo Formatos suportados.

  • --disable-vulnerability-scanning: é um sinalizador opcional que configura o seu repositório para desativar a análise de vulnerabilidades automática.

  • --allow-vulnerability-scanning: é um sinalizador opcional que configura o seu repositório para permitir a análise de vulnerabilidades automática. Para mais informações, consulte o artigo Ative ou desative a análise automática.

Por exemplo, o comando seguinte cria um repositório remoto denominado my-repo na região us-east1 no Google Cloud projeto my-project e pode autenticar-se no repositório a montante através do nome de utilizador my-username e da versão secreta 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" \
    --disable-vulnerability-scanning \
    --remote-npm-repo=UPSTREAM

Flags opcionais para autenticação no repositório a montante:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Substitua o seguinte:

  • REMOTE-REPOSITORY-NAME com o nome do repositório. Para cada localização do repositório num projeto, os nomes dos repositórios têm de ser exclusivos.
  • PROJECT_ID com o ID do projeto. Se esta flag for omitida, é usado o projeto atual ou predefinido.
  • LOCATION com a localização regional ou multirregional do repositório. Pode omitir esta sinalização se definir uma predefinição. Para ver uma lista de localizações suportadas, execute o comando gcloud artifacts locations list.
  • DESCRIPTION com uma descrição opcional do repositório. Não inclua dados confidenciais, uma vez que as descrições dos repositórios não são encriptadas.
  • REMOTE-REPOSITORY-DESCRIPTION com uma descrição da configuração do repositório externo para este repositório remoto.
  • USERNAME opcionalmente, se estiver a usar a autenticação, com o seu nome de utilizador para autenticar no repositório a montante.
  • SECRET_VERSION opcionalmente, se estiver a usar a autenticação, com a versão secreta que contém a palavra-passe do repositório a montante.
  • UPSTREAM com o nome a montante predefinido, o caminho do repositório do Artifact Registry ou o URL definido pelo utilizador do repositório a montante.

    Para repositórios upstream do Artifact Registry, formate o caminho do repositório de forma semelhante à seguinte: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Para informações sobre as origens de dados predefinidas disponíveis e as origens de dados definidas pelo utilizador suportadas, consulte o artigo Formatos suportados.

  • --disable-vulnerability-scanning: é um sinalizador opcional que configura o seu repositório para desativar a análise de vulnerabilidades automática.

  • --allow-vulnerability-scanning: é um sinalizador opcional que configura o seu repositório para permitir a análise de vulnerabilidades automática. Para mais informações, consulte o artigo Ative ou desative a análise automática.

Por exemplo, o comando seguinte cria um repositório remoto denominado my-repo na região us-east1 no Google Cloud projeto my-project e pode autenticar-se no repositório a montante através do nome de utilizador my-username e da versão secreta 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" \
    --disable-vulnerability-scanning \
    --remote-python-repo=UPSTREAM

Flags opcionais para autenticação no repositório a montante:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Substitua o seguinte:

  • REMOTE-REPOSITORY-NAME com o nome do repositório. Para cada localização do repositório num projeto, os nomes dos repositórios têm de ser exclusivos.
  • PROJECT_ID com o ID do projeto. Se esta flag for omitida, é usado o projeto atual ou predefinido.
  • LOCATION com a localização regional ou multirregional do repositório. Pode omitir esta sinalização se definir uma predefinição. Para ver uma lista de localizações suportadas, execute o comando gcloud artifacts locations list.
  • DESCRIPTION com uma descrição opcional do repositório. Não inclua dados confidenciais, uma vez que as descrições dos repositórios não são encriptadas.
  • REMOTE-REPOSITORY-DESCRIPTION com uma descrição da configuração do repositório externo para este repositório remoto.
  • USERNAME opcionalmente, se estiver a usar a autenticação, com o seu nome de utilizador para autenticar no repositório a montante.
  • SECRET_VERSION opcionalmente, se estiver a usar a autenticação, com a versão secreta que contém a palavra-passe do repositório a montante.
  • UPSTREAM com o nome a montante predefinido, o caminho do repositório do Artifact Registry ou o URL definido pelo utilizador do repositório a montante.

    Para repositórios upstream do Artifact Registry, formate o caminho do repositório de forma semelhante à seguinte: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Para informações sobre as origens de dados predefinidas disponíveis e as origens de dados definidas pelo utilizador suportadas, consulte o artigo Formatos suportados.

  • --disable-vulnerability-scanning: é um sinalizador opcional que configura o seu repositório para desativar a análise de vulnerabilidades automática.

  • --allow-vulnerability-scanning: é um sinalizador opcional que configura o seu repositório para permitir a análise de vulnerabilidades automática. Para mais informações, consulte o artigo Ative ou desative a análise automática.

Por exemplo, o comando seguinte cria um repositório remoto denominado my-repo na região us-east1 no Google Cloud projeto my-project e pode autenticar-se no repositório a montante através do nome de utilizador my-username e da versão secreta 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 (pré-visualização)

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 o seguinte:

  • REMOTE_REPOSITORY_NAME com o nome do repositório. Para cada localização do repositório num projeto, os nomes dos repositórios têm de ser exclusivos.
  • PROJECT_ID com o ID do projeto. Se esta flag for omitida, é usado o projeto atual ou predefinido.
  • LOCATION com a localização regional ou multirregional do repositório. Pode omitir esta sinalização se definir uma predefinição. Para ver uma lista de localizações suportadas, execute o comando gcloud artifacts locations list.
  • DESCRIPTION com uma descrição opcional do repositório. Não inclua dados confidenciais, uma vez que as descrições dos repositórios não são encriptadas.
  • REMOTE_REPOSITORY_DESCRIPTION com uma descrição opcional da configuração do repositório externo para este repositório remoto.
  • APT_REPOSITORY_BASE com um dos nomes base do repositório suportados indicados nos upstream suportados do pacote do SO para repositórios remotos do Apt.
  • APT_REPOSITORY_PATH com o resto do URL do repositório a montante que quer colocar em cache no seu repositório remoto após a base do repositório.

Por exemplo, o comando seguinte cria um repositório remoto com o nome my-repo para colocar em cache o repositório Debian buster na região us-east1 no projeto Google Cloud my-project. O URL completo do repositório a montante é 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é-visualização)

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 o seguinte:

  • REMOTE_REPOSITORY_NAME com o nome do repositório. Para cada localização do repositório num projeto, os nomes dos repositórios têm de ser exclusivos.
  • PROJECT_ID com o ID do projeto. Se esta flag for omitida, é usado o projeto atual ou predefinido.
  • LOCATION com a localização regional ou multirregional do repositório. Pode omitir esta sinalização se definir uma predefinição. Para ver uma lista de localizações suportadas, execute o comando gcloud artifacts locations list.
  • DESCRIPTION com uma descrição opcional do repositório. Não inclua dados confidenciais, uma vez que as descrições dos repositórios não são encriptadas.
  • REMOTE_REPOSITORY_DESCRIPTION com uma descrição opcional da configuração do repositório externo para este repositório remoto.
  • YUM_REPOSITORY_BASE com um dos nomes base do repositório suportados indicados nos upstream suportados do pacote do SO para repositórios remotos do Yum.
  • YUM_REPOSITORY_PATH com o resto do URL do repositório a montante que quer colocar em cache no seu repositório remoto após a base do repositório.

Por exemplo, o seguinte comando cria um repositório remoto para pacotes Yum denominado my-repo na região us-east1 no Google Cloud projeto my-project para o repositório a montante 9-stream/BaseOs/x86_64/os. O URL completo do repositório é https://mirror.stream.centos.org/9-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_STREAM \
    --remote-yum-repo-path="9-stream/BaseOs/x86_64/os"

Ir

Os repositórios remotos do Go do Artifact Registry só suportam o upstream público https://proxy.golang.

gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
    --project=PROJECT_ID \
    --repository-format=go \
    --location=LOCATION \
    --description="DESCRIPTION" \
    --mode=remote-repository \
    --remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
    --remote-go-repo=https://proxy.golang.org

Substitua o seguinte:

  • REMOTE-REPOSITORY-NAME é o nome do repositório. Para cada localização do repositório num projeto, os nomes dos repositórios têm de ser exclusivos.
  • PROJECT_ID é o ID do projeto. Se esta flag for omitida, é usado o projeto atual ou predefinido.
  • LOCATION é a localização regional ou multirregional do repositório. Pode omitir esta sinalização se definir uma predefinição. Para ver uma lista de localizações suportadas, execute o comando gcloud artifacts locations list.

  • DESCRIPTION é uma descrição opcional do repositório. Não inclua dados confidenciais, uma vez que as descrições dos repositórios não são encriptadas.

  • REMOTE-REPOSITORY-DESCRIPTION é uma descrição da configuração do repositório externo para este repositório remoto.

Por exemplo, o comando seguinte cria um repositório remoto com o nome my-repo na região us-east1 no projeto Google Cloud my-project.

gcloud artifacts repositories create my-repo \
    --project=my-project \
    --repository-format=go \
    --location=us-east1 \
    --description="Remote Go repository" \
    --mode=remote-repository \
    --remote-repo-config-desc="Go proxy" \
    --remote-go-repo=https://proxy.golang.org

O Artifact Registry cria o seu repositório. Execute o seguinte comando para ver uma descrição do repositório:

gcloud artifacts repositories describe REMOTE_REPOSITORY_NAME \
    --location=LOCATION

Terraform

Use o recurso google_artifact_registry_repository para criar repositórios. É necessária a versão terraform-provider-google 5.0.0 ou mais recente.

Se for a primeira vez que usa o Terraform para o Google Cloud, consulte a página Introdução - Google Cloud no Website da HashiCorp.

O exemplo seguinte define o fornecedor e um repositório remoto com o nome do 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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Onde

  • PROJECT-IDé o Google Cloud ID do projeto.
  • LOCATION é a localização do repositório.
  • REPOSITORY_ID é o ID do repositório.
  • DESCRIPTIONé a descrição opcional do repositório. Não inclua dados confidenciais, uma vez que as descrições dos repositórios não são encriptadas.
  • KEYé o nome da chave do Cloud Key Management Service, se estiver a usar chaves de encriptação geridas pelo cliente (CMEK) para encriptação. Omita este argumento para usar a predefinição, as chaves de encriptação geridas pela Google.
  • CONFIG_DESCRIPTIONé a descrição opcional da origem remota.
  • O DRY_RUN_STATUS determina se as políticas de limpeza eliminam artefactos ou apenas registam os artefactos que seriam eliminados se definissem políticas de limpeza no repositório. Omita se não quiser adicionar políticas de limpeza ao repositório. * true: define as políticas para serem executadas no modo de execução de ensaio. Não são eliminados artefactos no modo de teste. * false: aplica as políticas de limpeza. Os artefactos são eliminados ou mantidos consoante as políticas. Para mais informações sobre as políticas de limpeza, consulte o artigo Configure políticas de limpeza.
    • POLICY_NAME é o nome da política de limpeza.
    • TAG_STATE é o estado da etiqueta ao qual aplicar a política. Os valores são tagged, untagged e any. any aplica-se a artefactos etiquetados e não etiquetados. Se um repositório tiver etiquetas imutáveis ativadas, não é possível eliminar os artefactos etiquetados.
    • TAG_PREFIX e TAG_PREFIX_N são prefixos de etiquetas aos quais a política se aplica.
    • PKG_PREFIX e PKG_PREFIX_N são prefixos de pacotes para aplicar a política.
    • TIME_SINCE_UPLOAD é o tempo desde que uma versão do artefacto foi carregada para o repositório, especificado como uma duração. Pode especificar durações de segundos, minutos, horas ou dias anexando s, m, h ou d, respetivamente.
    • KEEP_COUNT é o número de versões por pacote de um artefacto a manter no seu repositório.

Maven

Se não especificar uma política de versão, o Artifact Registry cria um repositório Maven que armazena versões de lançamento e instantâneos de pacotes por predefiniçã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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Onde

  • PROJECT-IDé o Google Cloud ID do projeto.
  • LOCATION é a localização do repositório.
  • REPOSITORY_ID é o ID do repositório.
  • DESCRIPTIONé a descrição opcional do repositório. Não inclua dados confidenciais, uma vez que as descrições dos repositórios não são encriptadas.
  • KEYé o nome da chave do Cloud Key Management Service, se estiver a usar chaves de encriptação geridas pelo cliente (CMEK) para encriptação. Omita este argumento para usar a predefinição, as chaves de encriptação geridas pela Google.
  • CONFIG_DESCRIPTIONé a descrição opcional da origem remota.
  • O DRY_RUN_STATUS determina se as políticas de limpeza eliminam artefactos ou apenas registam os artefactos que seriam eliminados se definissem políticas de limpeza no repositório. Omita se não quiser adicionar políticas de limpeza ao repositório. * true: define as políticas para serem executadas no modo de execução de ensaio. Não são eliminados artefactos no modo de teste. * false: aplica as políticas de limpeza. Os artefactos são eliminados ou mantidos consoante as políticas. Para mais informações sobre as políticas de limpeza, consulte o artigo Configure políticas de limpeza.
    • POLICY_NAME é o nome da política de limpeza.
    • TAG_STATE é o estado da etiqueta ao qual aplicar a política. Os valores são tagged, untagged e any. any aplica-se a artefactos etiquetados e não etiquetados. Se um repositório tiver etiquetas imutáveis ativadas, não é possível eliminar os artefactos etiquetados.
    • TAG_PREFIX e TAG_PREFIX_N são prefixos de etiquetas aos quais a política se aplica.
    • PKG_PREFIX e PKG_PREFIX_N são prefixos de pacotes para aplicar a política.
    • TIME_SINCE_UPLOAD é o tempo desde que uma versão do artefacto foi carregada para o repositório, especificado como uma duração. Pode especificar durações de segundos, minutos, horas ou dias anexando s, m, h ou d, respetivamente.
    • KEEP_COUNT é o número de versões por pacote de um artefacto a manter no seu repositório.

Para armazenar versões de instantâneos e lançamentos em repositórios diferentes, especifique uma política de versões para o repositório através de um bloco maven_config. Este bloco suporta as seguintes definições:

  • version_policy define a política de versões com um dos seguintes valores:
    • VERSION_POLICY_UNSPECIFIED: armazene o instantâneo e publique pacotes. Esta é a predefinição.
    • RELEASE: apenas pacotes de lançamento na loja.
    • SNAPSHOT: armazena apenas pacotes de capturas instantâneas.
  • allow_snapshot_overwrites configura um repositório com uma política de versões SNAPSHOT para aceitar instantâneos não únicos que substituam as versões existentes no repositório.

O exemplo seguinte 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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Onde

  • PROJECT-IDé o Google Cloud ID do projeto.
  • LOCATION é a localização do repositório.
  • REPOSITORY_ID é o ID do repositório.
  • DESCRIPTIONé a descrição opcional do repositório. Não inclua dados confidenciais, uma vez que as descrições dos repositórios não são encriptadas.
  • KEYé o nome da chave do Cloud Key Management Service, se estiver a usar chaves de encriptação geridas pelo cliente (CMEK) para encriptação. Omita este argumento para usar a predefinição, as chaves de encriptação geridas pela Google.
  • CONFIG_DESCRIPTIONé a descrição opcional da origem remota.
  • O DRY_RUN_STATUS determina se as políticas de limpeza eliminam artefactos ou apenas registam os artefactos que seriam eliminados se definissem políticas de limpeza no repositório. Omita se não quiser adicionar políticas de limpeza ao repositório. * true: define as políticas para serem executadas no modo de execução de ensaio. Não são eliminados artefactos no modo de teste. * false: aplica as políticas de limpeza. Os artefactos são eliminados ou mantidos consoante as políticas. Para mais informações sobre as políticas de limpeza, consulte o artigo Configure políticas de limpeza.
    • POLICY_NAME é o nome da política de limpeza.
    • TAG_STATE é o estado da etiqueta ao qual aplicar a política. Os valores são tagged, untagged e any. any aplica-se a artefactos etiquetados e não etiquetados. Se um repositório tiver etiquetas imutáveis ativadas, não é possível eliminar os artefactos etiquetados.
    • TAG_PREFIX e TAG_PREFIX_N são prefixos de etiquetas aos quais a política se aplica.
    • PKG_PREFIX e PKG_PREFIX_N são prefixos de pacotes para aplicar a política.
    • TIME_SINCE_UPLOAD é o tempo desde que uma versão do artefacto foi carregada para o repositório, especificado como uma duração. Pode especificar durações de segundos, minutos, horas ou dias anexando s, m, h ou d, respetivamente.
    • KEEP_COUNT é o número de versões por pacote de um artefacto a manter no seu repositório.

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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Onde

  • PROJECT-IDé o Google Cloud ID do projeto.
  • LOCATION é a localização do repositório.
  • REPOSITORY_ID é o ID do repositório.
  • DESCRIPTIONé a descrição opcional do repositório. Não inclua dados confidenciais, uma vez que as descrições dos repositórios não são encriptadas.
  • KEYé o nome da chave do Cloud Key Management Service, se estiver a usar chaves de encriptação geridas pelo cliente (CMEK) para encriptação. Omita este argumento para usar a predefinição, as chaves de encriptação geridas pela Google.
  • CONFIG_DESCRIPTIONé a descrição opcional da origem remota.
  • O DRY_RUN_STATUS determina se as políticas de limpeza eliminam artefactos ou apenas registam os artefactos que seriam eliminados se definissem políticas de limpeza no repositório. Omita se não quiser adicionar políticas de limpeza ao repositório. * true: define as políticas para serem executadas no modo de execução de ensaio. Não são eliminados artefactos no modo de teste. * false: aplica as políticas de limpeza. Os artefactos são eliminados ou mantidos consoante as políticas. Para mais informações sobre as políticas de limpeza, consulte o artigo Configure políticas de limpeza.
    • POLICY_NAME é o nome da política de limpeza.
    • TAG_STATE é o estado da etiqueta ao qual aplicar a política. Os valores são tagged, untagged e any. any aplica-se a artefactos etiquetados e não etiquetados. Se um repositório tiver etiquetas imutáveis ativadas, não é possível eliminar os artefactos etiquetados.
    • TAG_PREFIX e TAG_PREFIX_N são prefixos de etiquetas aos quais a política se aplica.
    • PKG_PREFIX e PKG_PREFIX_N são prefixos de pacotes para aplicar a política.
    • TIME_SINCE_UPLOAD é o tempo desde que uma versão do artefacto foi carregada para o repositório, especificado como uma duração. Pode especificar durações de segundos, minutos, horas ou dias anexando s, m, h ou d, respetivamente.
    • KEEP_COUNT é o número de versões por pacote de um artefacto a manter no seu repositório.

Apt (pré-visualização)

  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"
      }
    }
  }
}

Onde

  • PROJECT-ID é o Google Cloud ID do projeto.
  • LOCATION é a localização do repositório.
  • REPOSITORY_ID é o ID do repositório.
  • DESCRIPTION é a descrição opcional do repositório. Não inclua dados confidenciais, uma vez que as descrições dos repositórios não são encriptadas.
  • CONFIG_DESCRIPTION é a descrição opcional da origem remota.
  • REPOSITORY_BASE é a base do repositório público predefinido para o Apt. Os valores possíveis são DEBIAN e UBUNTU.
  • REPOSITORY_PATH é o repositório específico da base. Por exemplo debian/dists/buster.

Yum (pré-visualização)

  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"
      }
    }
  }
}

Onde

  • PROJECT-ID é o Google Cloud ID do projeto.
  • LOCATION é a localização do repositório.
  • REPOSITORY_ID é o ID do repositório.
  • DESCRIPTION é a descrição opcional do repositório. Não inclua dados confidenciais, uma vez que as descrições dos repositórios não são encriptadas.
  • CONFIG_DESCRIPTION é a descrição opcional da origem remota.
  • REPOSITORY_BASE é a base do repositório público predefinido para o Yum. Os valores possíveis são CENTOS, CENTOS_DEBUG, CENTOS_VAULT, CENTOS_STREAM, ROCKY e EPEL.
  • REPOSITORY_PATH é o repositório específico da base. Por exemplo "centos/8-stream/BaseOS/x86_64/os.

O Artifact Registry cria o seu 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:

Edite as descrições dos repositórios

Pode alterar a descrição do repositório a partir da Google Cloud consola ou da CLI gcloud.

Consola

  1. Abra a página Repositórios na Google Cloud consola.

    Abra a página Repositórios

  2. Na lista de repositórios, selecione o repositório e clique em Editar repositório.

  3. Edite a descrição do repositório e, de seguida, clique em Guardar.

gcloud

Para atualizar a descrição do repositório, execute o comando:

gcloud artifacts repositories update REPOSITORY \
    --project=PROJECT \
    --location=LOCATION \
    --description="DESCRIPTION"

Substitua o seguinte:

  • REPOSITORY: o nome do repositório. Se configurou um repositório predefinido, pode omitir esta flag para usar a predefinição.
  • PROJECT: o Google Cloud ID do projeto. Se esta flag for omitida, é usado o projeto atual ou predefinido.
  • LOCATION é a localização regional ou multirregional do repositório. Use esta flag para ver repositórios numa localização específica. Se tiver configurado uma localização predefinida, pode omitir esta flag para usar a predefinição.
  • DESCRIPTION: uma descrição do repositório.

Acesso a origens a montante num perímetro de serviço

Os serviços num perímetro de serviço dos VPC Service Controls têm acesso restrito a recursos fora do perímetro.

Pode permitir ou recusar o acesso a origens a montante numGoogle Cloud projeto e localização especificados.

Por predefinição, o Artifact Registry nega o acesso a origens upstream se não tiver concedido acesso explicitamente.

Para o Artifact Registry, a função necessária é a de administrador do Artifact Registry (roles/artifactregistry.admin).

Veja as definições das origens a montante

Para ver a configuração de uma combinação específica de projeto e localização, execute o seguinte comando:

gcloud artifacts vpcsc-config describe \
    --project=PROJECT_ID \
    --location=LOCATION

Por exemplo, use o seguinte comando para ver as definições dos repositórios remotos em us-east1 no projeto my-project:

gcloud artifacts vpcsc-config describe \
    --project=my-project \
    --location=us-east1

Permita o acesso a fontes a montante

Para permitir o acesso a origens a montante numa localização especificada, 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 acedam às respetivas origens a montante fora do perímetro:

gcloud artifacts vpcsc-config allow \
    --project=my-project \
    --location=us-east1

Negue o acesso a fontes a montante

Quando nega o acesso a origens a montante, os artefactos em cache existentes nos repositórios remotos continuam disponíveis.

Para negar o acesso a origens a montante numa localização especificada, 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 a montante 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

O que se segue?