As instâncias do Private Service Connect não expõem pontos finais à Internet pública. Quando cria uma instância do Private Service Connect, são criados pontos finais para fornecer acesso SSH (Git) e HTTPS (Git, interface Web, API) à instância. Os pontos finais têm de ter endereços IP atribuídos na sua rede privada. Todo o tráfego de e para a instância do Private Service Connect passa pelos pontos finais do Private Service Connect.
Para mais informações sobre a utilização do Private Service Connect para aceder a serviços geridos de forma privada a partir de uma rede VPC, consulte o artigo Private Service Connect.
O Secure Source Manager é um serviço de inquilino único. Uma única instância do Secure Source Manager só deve incluir utilizadores de um único cliente, a menos que várias empresas com uma relação contratual precisem de usar uma única instância para colaboração.Google Cloud
Se estiver a trabalhar com várias empresas e quiser colaborar com elas no código fonte, recomendamos que crie uma instância separada para cada empresa.
Antes de começar
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Enable the Secure Source Manager API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Enable the Secure Source Manager API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
- Instale o componente da
beta
CLI do Google Cloud:gcloud components install beta
-
Função de administrador do Gestor de acesso sensível ao contexto (
roles/accesscontextmanager.policyAdmin
) na organização -
Função de proprietário da instância (
roles/sercuresourcemanager.instanceOwner
) na instância -
Para criar uma identidade de serviço e um conjunto de autoridades de certificação:
Gestor de operações do serviço de AC (
roles/privateca.caManager
) na organização Execute o seguinte comando para criar uma identidade de serviço para a API Secure Source Manager no seu projeto:
gcloud beta services identity create \ --service=securesourcemanager.googleapis.com \ --project=PROJECT_ID
Onde
PROJECT_ID
é o ID do seu projeto.O resultado é semelhante ao seguinte:
Service identity created: service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.com
Em que
service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.com
é o agente de serviço do Secure Source Manager ePROJECT_NUM
é o número do seu projeto.Crie um grupo de autoridades de certificação (AC) com pedidos de certificados baseados em CSR permitidos.
Crie uma CA. Pode criar uma AC raiz ou subordinada consoante as suas necessidades.
- Para criar uma AC raiz, siga as instruções em Crie uma AC raiz.
- Para criar uma CA subordinada a partir de uma CA principal no Google Cloud, siga as instruções em Crie uma CA subordinada
- Para criar uma AC subordinada a partir de uma AC externa, siga as instruções no artigo Crie uma AC subordinada a partir de uma AC externa.
Para mais informações sobre as diferenças entre ACs raiz e subordinadas, consulte o artigo Determine as definições da autoridade de certificação.
Conceda as autorizações de identidade do serviço da API Secure Source Manager para pedir novos certificados no conjunto de AC:
gcloud privateca pools add-iam-policy-binding CA_POOL_NAME \ --location=CA_LOCATION \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com' \ --role='roles/privateca.certificateRequester' \ --project=CA_PROJECT_ID
Substitua o seguinte:
CA_POOL_NAME
com o nome que atribuiu ao conjunto de CAs.CA_LOCATION
com a região ou a zona do seu conjunto de ACs.PROJECT_NUMBER
com o número do projeto onde o Secure Source Manager está ativado. Pode localizar o número do projeto seguindo as instruções em Identificar projetos.CA_PROJECT_ID
com o ID do projeto do projeto no qual criou o conjunto de ACs.
INSTANCE_ID
com o nome que quer dar à instância.LOCATION
com a região onde quer criar a instância. Para ver as localizações suportadas, consulte a secção Localizações.PROJECT_ID
com o nome do projeto no qual quer criar uma instância.CA_PROJECT
com o nome do projeto do conjunto de ACs, apenas se estiver a usar o seu próprio certificado da AC.CA_LOCATION
com a região onde criou o conjunto de ACs, apenas se estiver a usar o seu próprio certificado de AC.CA_POOL_NAME
com o nome do conjunto de ACs, apenas se estiver a usar o seu próprio certificado da AC.INSTANCE_ID
com o nome que quer dar à instância.LOCATION
com a região onde quer criar a instância. Para ver as localizações suportadas, consulte a secção Localizações.PROJECT_ID
com o nome do projeto no qual quer criar uma instância.CA_PROJECT
com o nome do projeto do conjunto de ACs, apenas se estiver a usar o seu próprio certificado da AC.CA_LOCATION
com a região onde criou o conjunto de ACs, apenas se estiver a usar o seu próprio certificado de AC.CA_POOL_NAME
com o nome do conjunto de ACs, apenas se estiver a usar o seu próprio certificado da AC.OPERATION_NAME
com o nome da operação da resposta do comando create.LOCATION
com a região onde quer criar a instância. Para ver informações sobre as localizações suportadas, consulte a secção Localizações.Para criar pontos finais do Private Service Connect, siga as instruções em Aceda a serviços publicados através de pontos finais.
Para obter os URIs dos anexos de serviço HTTP e SSH da instância do Secure Source Manager, execute o seguinte comando:
gcloud beta source-manager instances describe INSTANCE_ID \ --region=LOCATION
Substitua o seguinte:
INSTANCE_ID
com o nome da sua instância. Para listar as instâncias numa determinada região, pode executar o comandogcloud beta source-manager instances list --region=LOCATION
.LOCATION
com a localização da sua instância. Para ver informações sobre as localizações suportadas, consulte o artigo Localizações.
O resultado é semelhante ao seguinte:
createTime: '2023-09-22T18:21:35.729454612Z' hostConfig: api: my-project-012345678901-api.us-central1.p.sourcemanager.dev gitHttp: my-project-012345678901-git.us-central1.p.sourcemanager.dev gitSsh: my-project-012345678901-ssh.us-central1.p.sourcemanager.dev html: my-project-012345678901.us-central1.p.sourcemanager.dev name: projects/my-project/locations/us-central1/instances/my-instance privateConfig: caPool: projects/my-project/locations/us-central1/caPools/my-ca-pool httpServiceAttachment: projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/http-psc isPrivate: true sshServiceAttachment: projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/ssh-psc state: ACTIVE updateTime: '2023-09-22T18:39:53.390563549Z'
Onde:
projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/http-psc
é o URI do anexo do serviço HTTP da sua instância.projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/ssh-psc
é o URI do anexo do serviço SSH da sua instância.
Depois de criar os pontos finais do Private Service Connect, tem de configurar registos de DNS privados. Para obter instruções sobre como configurar registos DNS privados, consulte o artigo Configure o DNS manualmente.
- Mapeie o valor de
hostConfig.html
,hostConfig.api
ehostConfig.gitHttp
para o endereço IP interno do anexo do serviço HTTP. - Mapeie o valor de
hostConfig.ssh
para o endereço IP interno da associação de serviço SSH.
Por exemplo, na saída do exemplo anterior, o valor de
Google CloudhostConfig.html
émy-project-012345678901.us-central1.p.sourcemanager.dev
.- Mapeie o valor de
Para transferir a AC, execute o seguinte comando:
gcloud privateca pools get-ca-certs CA_POOL \ --location LOCATION \ --output-file=root-cert.pem \ --project PROJECT
Para fazer chamadas de API para a sua instância, transmita o certificado da AC para a API Secure Source Manager do plano de dados.
Por exemplo, o comando seguinte transmite o certificado da AC
root-cert.pem
à API Secure Source Manager para listar os repositórios na instância privadamy-instance
na localizaçãous-central1
.curl \ --cacert root-cert.pem \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://my-instance-01234567890-api.us-central1.sourcemanager.dev/v1/projects/01234567890/locations/us-central1/repositories
- Associe o Cloud Build a uma instância do Secure Source Manager do Private Service Connect.
- Configure o Secure Source Manager num perímetro do VPC Service Controls.
Funções necessárias
Para receber as autorizações de que precisa para criar uma instância do Secure Source Manager do Private Service Connect, peça ao seu administrador que lhe conceda as seguintes funções do IAM:
Crie uma identidade de serviço e um pool de autoridades de certificação
Esta secção descreve o que fazer se estiver a usar o seu próprio certificado de AC. Para usar um certificado gerido pela Google, não tem de fazer nada além de executar o comando gcloud beta source-manager instances create
sem criar uma identidade de serviço nem um conjunto de ACs. Google
Se estiver a usar o seu próprio certificado de CA, em vez de usar um certificado gerido pela Google, tem de especificar um nome do conjunto da autoridade de certificação (CA) quando criar uma instância privada do Secure Source Manager.GoogleÉ enviado um pedido para assinar o certificado SSL HTTPS da instância para o conjunto de ACs.
Crie uma instância do Secure Source Manager do Private Service Connect
gcloud
Crie uma instância do Private Service Connect com o seguinte comando:
gcloud beta source-manager instances create INSTANCE_ID \
--region=LOCATION \
--project=PROJECT_ID \
--is-private \
--ca-pool=projects/CA_PROJECT/locations/CA_LOCATION/caPools/CA_POOL_NAME
Substitua o seguinte:
API
Crie uma instância do Private Service Connect com o seguinte comando:
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?instance_id=INSTANCE_ID \
-H "Content-Type: application/json" \
-d '{"private_config":{"is_private":true,"ca_pool":"projects/CA_PROJECT/locations/CA_LOCATION/caPools/CA_POOL_NAME"}}'
Substitua o seguinte:
É iniciada uma operação de criação de instância de longa duração. A criação da instância demora até 60 minutos. O resultado é semelhante ao seguinte:
Create request issued for [my-instance].
done: false
metadata:
'@type': type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata
apiVersion: v1
createTime: '2023-02-27T20:57:52.315609549Z'
requestedCancellation: false
target: projects/my-project/locations/us-central1/instances/my-instance
verb: create
name: projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e
Onde
projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e
está o OPERATION_NAME
.
Tome nota do OPERATION_NAME
, uma vez que tem de o usar para verificar o estado da operação.
Para verificar o estado da operação, execute o seguinte comando:
gcloud beta source-manager operations describe OPERATION_NAME \
--region=LOCATION
Substitua o seguinte:
Assim que a instância for criada, os pontos finais do Private Service Connect httpServiceAttachment
e sshServiceAttachment
, juntamente com os nomes de anfitrião para html
, api
, gitHttp
e gitSsh
, são apresentados no resultado.
Aceda à instância privada
Para aceder à sua instância do Private Service Connect, pode criar pontos finais do Private Service Connect com base em regras de encaminhamento ou criar back-ends do Private Service Connect com base em balanceadores de carga.
Os back-ends do Private Service Connect baseados em balanceadores de carga são mais flexíveis e permitem a integração com outros serviços, como o Cloud Build, mas são mais complexos e têm faturação adicional. Google Cloud
Os pontos finais do Private Service Connect baseados em regras de encaminhamento são mais simples e custam menos, mas não pode estabelecer ligação ao Cloud Build nem a outros Google Cloud serviços.
Para configurar back-ends do Private Service Connect com base em balanceadores de carga para a sua instância do Private Service Connect e associá-la ao Cloud Build, consulte o artigo Associe o Cloud Build a uma instância do Private Service Connect.
Configure pontos finais do Private Service Connect com base em regras de encaminhamento
Use a CA com a API Secure Source Manager
O Secure Source Manager tem um plano de controlo e um plano de dados. Os pontos finais do plano de dados são alojados diretamente pela sua instância do Secure Source Manager, pelo que tem de estabelecer ligação ao nome de anfitrião da API da sua instância para aceder aos mesmos.
Para usar a sua instância privada do Secure Source Manager, tem de usar a CA que criou na secção Crie uma identidade de serviço e um conjunto de autoridades de certificação.