Os repositórios de conectores atuam como proxies para fontes upstream e ajudam a garantir que todas as solicitações sejam processadas pela fonte upstream. Ao contrário dos repositórios remotos, os repositórios de conectores não armazenam artefatos em cache. Como resultado, os repositórios de conectores são úteis se você precisar de capacidade de auditoria completa de fontes upstream ou se precisar obedecer a políticas de terceiros que impeçam o armazenamento em cache de artefatos.
Esta página descreve como criar repositórios de conectores do Artifact Registry.
Formatos de conector compatíveis
O Artifact Registry oferece suporte apenas a repositórios de conectores no formato Docker.
Antes de começar
- Ative a API Artifact Registry, e instale a 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, então crie e ative uma chave no Cloud KMS para o repositório.
Ativar a API Secret Manager.
gcloud services enable secretmanager.googleapis.com \ --project=PROJECT_IDSe 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 conseguir as permissões necessárias para gerenciar repositórios, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Criar repositórios de conectores e conceder acesso a repositórios individuais:
administrador do Artifact Registry (
roles/artifactregistry.admin) no projeto -
Salvar as credenciais do repositório upstream em uma versão secreta:
administrador do Secret Manager (
roles/secretmanager.admin) no projeto -
Conceder acesso a fontes upstream fora de um perímetro de serviço do VPC Service Controls:
editor do Access Context Manager (
roles/accesscontextmanager.policyEditor) na organização do recurso em que a política de acesso é aplicada
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Criar um repositório de conectores
Ao criar um repositório de conectores, é necessário configurar as seguintes configurações, que não podem ser alteradas após a criação do repositório:
- O formato do artefato, que só pode ser Docker.
- O modo do repositório definido como conector.
- A fonte upstream do repositório do conector.
- Local do repositório .
- Criptografia com Google Cloud-powered encryption keys ou chaves de criptografia gerenciadas pelo cliente. O Artifact Registry usa Google Cloud-powered encryption keys por padrão.
O Artifact Registry aplica restrições de política da organização que exigem CMEK para criptografar recursos ou limitar quais chaves do Cloud KMS podem ser usadas para proteção CMEK.
Console
Abra a página Repositórios no Cloud de Confiance console.
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 Docker.
Na seção Modo do repositório, selecione Conector.
Na seção Origem do repositório do conector, selecione uma das seguintes opções:
- Docker Hub: o conector usa o Docker Hub (
https://docker.io) como o repositório upstream. - Personalizado: o conector usa um URL upstream do Docker diferente para o repositório upstream.
- Docker Hub: o conector usa o Docker Hub (
Se você selecionar Personalizado, no campo Repositório personalizado, insira o URL completo do repositório. Não é possível mudar o URL após a criação do repositório.
Para exemplos de alguns URLs upstream comuns, consulte Upstreams personalizados.
Na seção Modo de autenticação do repositório do conector, insira o seguinte:
- Um nome de usuário para o repositório upstream.
- Um secret para armazenar suas credenciais no Secret Manager.
É possível editar esses valores após a criação do repositório.
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 informações sobre tipos de local 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, já que as descrições do repositório não são criptografadas.
Se quiser usar rótulos para organizar os repositórios, clique em Adicionar rótulo e insira o par de chave-valor para o rótulo. É possível adicionar, editar ou remover rótulos depois de criar o repositório.
Na seção Criptografia, escolha o mecanismo de criptografia do repositório.
- Google Cloud-powered encryption key: criptografe o conteúdo do repositório com um Google Cloud-powered encryption key.
- 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.
Na seção Análise de artefatos, escolha as configurações de verificação de vulnerabilidades:
Ativado : permite a verificação nesse repositório. A API Container Scanning precisa estar ativada no seu projeto.
Ao ativar a API Container Scanning, o faturamento começa imediatamente. Depois de ativar a API Container Scanning em um projeto, a verificação de vulnerabilidades é ativada para todos os repositórios novos e atuais. Quando você envia uma imagem para o Artifact Registry, ela é verificada automaticamente pelo Artifact Analysis.
Desativado : impede a verificação nesse repositório. Se a API Container Scanning estiver ativada no seu projeto, a verificação continuará em outros repositórios. Esse repositório será excluído.
Para mais informações sobre as opções de verificação de vulnerabilidades, consulte Ativar e desativar a verificação automática.
Clique em Criar.
O Artifact Registry cria o repositório e o adiciona à lista de repositórios.
CLI gcloud
Para criar um repositório de conectores, execute o comando para criar um repositório de conectores do Docker ou um repositório de conectores personalizado.
gcloud artifacts repositories create CONNECTOR-REPOSITORY-NAME \
--project=PROJECT_ID \
--location=LOCATION \
--description="DESCRIPTION" \
--repository-format=docker \
--mode=connector-repository \
--remote-docker-repo="UPSTREAM-NAME" \
--remote-username="USERNAME" \
--remote-password-secret-version="PASSWORD" \
A flag --mode=connector-repository é necessária para definir o repositório como um repositório de conectores. O --repository-format precisa ser docker.
Substitua:
CONNECTOR-REPOSITORY-NAME: o nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.PROJECT_ID: o ID do projeto. Se essa flag for omitida, o projeto atual ou padrão será usado.LOCATION: o local regional ou multirregional do repositório. É possível omitir essa flag se você definir um padrão. Para ver uma lista de locais compatíveis, execute o comandogcloud artifacts locations list.DESCRIPTION: opcional. Uma descrição do repositório do conector. Não inclua dados sensíveis, já que as descrições do repositório não são criptografadas.UPSTREAM-NAME: o nome upstream predefinido ou o URL definido pelo usuário do repositório upstream.USERNAME: opcional. Seu nome de usuário para autenticação no repositório upstream.PASSWORD: opcional. A versão secreta que contém a senha do repositório upstream.
Por exemplo, o comando a seguir cria um repositório de conectores chamado
my-connector-repo, que conecta um repositório Jfrog upstream a
o Cloud de Confiance projeto my-project. O URL completo do repositório upstream é https://my-account.jfrog.io/scoped-repo.
gcloud artifacts repositories create my-connector-repo \
--project=my-project \
--location=us-east1 \
--repository-format=docker \
--mode=connector-repository \
--remote-docker-repo=https://my-account.jfrog.io/scoped-repo \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1
Para mais informações sobre como autenticar em repositórios upstream, consulte Autenticar repositórios de conectores em fontes upstream.
Terraform
Use o recurso google_artifact_registry_repository
para criar repositórios.
terraform-provider-google a versão
5.0.0 ou mais recente é necessária.
Se você ainda não usou o Terraform para Cloud de Confiance by S3NS, consulte a Introdução - Cloud de Confiance by S3NS página no site do HashiCorp.
O exemplo a seguir define o provedor e um repositório de conectores com o
Terra nome do recurso my-repo.
```hcl
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "NAME" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "docker"
mode = "REMOTE_REPOSITORY"
# Setting mode="REMOTE_REPOSITORY" and no_cache() together configures the repository as a connector-type repository.
remote_repository_config {
description = "CONFIG_DESCRIPTION"
docker_repository {
public_repository = "DOCKER_HUB"
}
no_cache {}
}
}
```
Replace the following:
* `PROJECT-ID`: the Cloud de Confiance project ID.
* `NAME`: the name of your repository.
* `LOCATION`: the repository location.
* `REPOSITORY_ID`: the repository ID.
* `DESCRIPTION`: optional. A description for the repository.
Do not include sensitive data. Repository descriptions are
not encrypted.
* `KEY`: the name of the Cloud Key Management Service key, if you are using
[customer-managed encryption keys][cmek] (CMEK) for encryption. Omit
this argument to use the default setting, Google-managed encryption
keys.
* `CONFIG_DESCRIPTION`: optional. A description of the remote
source.
Depois de criar o repositório, faça o seguinte:
- Conceda acesso ao repositório.
- Configure o Docker, os gerenciadores de pacotes e outros clientes de terceiros para autenticar em repositórios.
- Configure os repositórios de conectores do Artifact Registry para autenticar nas fontes upstream.
Editar descrições de repositórios
É possível mudar a descrição do repositório no Cloud de Confiance console ou na CLI gcloud.
Console
Abra a página Repositórios no Cloud de Confiance console.
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:
REPOSITORY: o nome do repositório. Se você tiver configurado um repositório padrão, poderá omitir essa flag para usar o padrão.PROJECT: o Cloud de Confiance by S3NS ID do projeto. Se essa flag for omitida, o projeto atual ou padrão será usado.-
LOCATIONé o local regional do repositório. Use esta flag para ver repositórios em um local específico. Se você tiver configurado um local padrão, poderá omitir essa flag para usar o padrão. DESCRIPTION: uma descrição para o repositório.
Acesso a fontes upstream em um perímetro de serviço
Os serviços em um perímetro de serviço do VPC Service Controls têm acesso restrito a recursos fora do perímetro.
É possível permitir ou negar acesso a fontes upstream em um projeto e local especificados Cloud de Confiance .
Por padrão, o Artifact Registry nega acesso a fontes upstream se você não tiver concedido acesso explicitamente.
Para o Artifact Registry, o papel necessário é o administrador do Artifact Registry (roles/artifactregistry.admin).
Ver configurações de fontes upstream
Para conferir 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 comando a seguir para conferir as configurações dos repositórios de conectores em us-east1 no projeto my-project:
gcloud artifacts vpcsc-config describe \
--project=my-project \
--location=us-east1
Permitir acesso a fontes upstream
Para permitir o acesso a fontes upstream em um local especificado, execute o comando:
gcloud artifacts vpcsc-config allow \
--project=PROJECT_ID \
--location=LOCATION
Por exemplo, use o comando a seguir para permitir que todos os repositórios de conectores em us-east1 no projeto my-project acessem as fontes upstream fora do perímetro:
gcloud artifacts vpcsc-config allow \
--project=my-project \
--location=us-east1
Negar acesso a fontes upstream
Para negar acesso a fontes upstream em um local especificado, execute o comando:
gcloud artifacts vpcsc-config deny \
--project=PROJECT_ID \
--location=LOCATION
Por exemplo, use o comando a seguir para bloquear o acesso a fontes upstream fora do perímetro para todos os repositórios de conectores em us-west1 no projeto my-project:
gcloud artifacts vpcsc-config deny \
--project=my-project \
--location=us-west1
A seguir
- Saiba mais sobre os repositórios de conectores do Artifact Registry .
- Autenticar repositórios de conectores em fontes upstream.