Le istanze di Private Service Connect non espongono endpoint a internet pubblico. Quando crei un'istanza Private Service Connect, vengono creati endpoint per fornire l'accesso SSH (Git) e HTTPS (Git, interfaccia web, API) all'istanza. Agli endpoint devono essere assegnati indirizzi IP sulla tua rete privata. Tutto il traffico da e verso l'istanza Private Service Connect passa attraverso gli endpoint Private Service Connect.
Per ulteriori informazioni sull'utilizzo di Private Service Connect per accedere ai servizi gestiti privatamente dall'interno di una rete VPC, consulta Private Service Connect.
Secure Source Manager è un servizio single-tenant. Una singola istanza di Secure Source Manager deve includere solo utenti di un clienteGoogle Cloud , a meno che più aziende che hanno un rapporto contrattuale non debbano utilizzare una singola istanza per la collaborazione.
Se collabori con più aziende e vuoi collaborare con loro sul codice sorgente, ti consigliamo di creare un'istanza separata per ogni azienda.
Prima di iniziare
-
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.
-
Enable the Secure Source Manager API.
-
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Secure Source Manager API.
-
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init
- Installa il componente
beta
Google Cloud CLI:gcloud components install beta
-
Ruolo Amministratore Gestore contesto accesso (
roles/accesscontextmanager.policyAdmin
) nell'organizzazione -
Ruolo Proprietario istanza (
roles/sercuresourcemanager.instanceOwner
) sull'istanza -
Per creare un'identità di servizio e un pool di autorità di certificazione:
Responsabile operativo servizio CA (
roles/privateca.caManager
) sull'organizzazione Esegui questo comando per creare un'identità di servizio per l'API Secure Source Manager all'interno del tuo progetto:
gcloud beta services identity create \ --service=securesourcemanager.googleapis.com \ --project=PROJECT_ID
Dove
PROJECT_ID
è l'ID progetto.L'output è simile al seguente:
Service identity created: service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.com
dove
service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.com
è l'agente di servizio Secure Source Manager ePROJECT_NUM
è il numero del tuo progetto.Crea un pool di autorità di certificazione (CA) con richieste di certificati basate su CSR consentite.
Crea una CA. Puoi creare una CA principale o subordinata a seconda delle tue esigenze.
- Per creare una CA radice, segui le istruzioni riportate in Creare una CA radice.
- Per creare una CA subordinata da una CA principale in Google Cloud, segui le istruzioni riportate in Crea una CA subordinata.
- Per creare una CA subordinata da una CA esterna, segui le istruzioni riportate in Creare una CA subordinata da una CA esterna.
Per saperne di più sulle differenze tra CA radice e CA subordinate, vedi Determinare le impostazioni dell'autorità di certificazione.
Concedi all'identità di servizio dell'API Secure Source Manager le autorizzazioni per richiedere nuovi certificati nel pool di CA:
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
Sostituisci quanto segue:
CA_POOL_NAME
con il nome che hai assegnato al pool di CA.CA_LOCATION
con la regione o la zona del pool di CA.PROJECT_NUMBER
con il numero di progetto in cui Secure Source Manager è abilitato. Puoi trovare il numero del progetto seguendo le istruzioni riportate in Identificazione dei progetti.CA_PROJECT_ID
con l'ID progetto del progetto in cui hai creato il pool di CA.
INSTANCE_ID
con il nome che vuoi assegnare all'istanza.LOCATION
con la regione in cui vuoi creare l'istanza. Per le località supportate, consulta Località.PROJECT_ID
con il nome del progetto in cui vuoi creare un'istanza.CA_PROJECT
con il nome del progetto del pool di CA, solo se utilizzi il tuo certificato CA.CA_LOCATION
con la regione in cui hai creato il pool di CA, solo se utilizzi il tuo certificato CA.CA_POOL_NAME
con il nome del pool di CA, solo se utilizzi il tuo certificato CA.INSTANCE_ID
con il nome che vuoi assegnare all'istanza.LOCATION
con la regione in cui vuoi creare l'istanza. Per le località supportate, consulta Località.PROJECT_ID
con il nome del progetto in cui vuoi creare un'istanza.CA_PROJECT
con il nome del progetto del pool di CA, solo se utilizzi il tuo certificato CA.CA_LOCATION
con la regione in cui hai creato il pool di CA, solo se utilizzi il tuo certificato CA.CA_POOL_NAME
con il nome del pool di CA, solo se utilizzi il tuo certificato CA.OPERATION_NAME
con il nome dell'operazione dalla risposta del comando create.LOCATION
con la regione in cui vuoi creare l'istanza. Per informazioni sulle località supportate, vedi Località.Per creare endpoint Private Service Connect, segui le istruzioni riportate in Accedere ai servizi pubblicati tramite endpoint.
Per ottenere gli URI degli allegati del servizio HTTP e SSH dell'istanza Secure Source Manager, esegui questo comando:
gcloud beta source-manager instances describe INSTANCE_ID \ --region=LOCATION
Sostituisci quanto segue:
INSTANCE_ID
con il nome dell'istanza. Per elencare le istanze in una determinata regione, puoi eseguiregcloud beta source-manager instances list --region=LOCATION
.LOCATION
con la posizione dell'istanza. Per informazioni sulle località supportate, vedi Località.
L'output è simile al seguente:
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'
Dove:
projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/http-psc
è l'URI del collegamento del servizio HTTP della tua istanza.projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/ssh-psc
è l'URI del collegamento al servizio SSH della tua istanza.
Dopo aver creato gli endpoint Private Service Connect, devi configurare i record DNS privati. Per istruzioni su come configurare i record DNS privati, consulta Configurare manualmente il DNS.
- Mappa il valore di
hostConfig.html
,hostConfig.api
ehostConfig.gitHttp
all'indirizzo IP interno dell'allegato del servizio HTTP. - Mappa il valore di
hostConfig.ssh
all'indirizzo IP interno del collegamento al servizio SSH.
Ad esempio, nell'output dell'esempio precedente, il valore di
hostConfig.html
èmy-project-012345678901.us-central1.p.sourcemanager.dev
.- Mappa il valore di
Per scaricare la CA, esegui questo comando:
gcloud privateca pools get-ca-certs CA_POOL \ --location LOCATION \ --output-file=root-cert.pem \ --project PROJECT
Per eseguire chiamate API alla tua istanza, passa il certificato CA all'API Secure Source Manager del data plane.
Ad esempio, il seguente comando trasmette il certificato CA
root-cert.pem
all'API Secure Source Manager per elencare i repository nell'istanza privatamy-instance
nella localitàus-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
- Connetti Cloud Build a un'istanza Secure Source Manager di Private Service Connect.
- Configura Secure Source Manager in un perimetro dei Controlli di servizio VPC.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare un'istanza Secure Source Manager di Private Service Connect, chiedi all'amministratore di concederti i seguenti ruoli IAM:
Crea un'identità di servizio e un pool di autorità di certificazione
Questa sezione descrive cosa fare se utilizzi il tuo certificato CA. Per
utilizzare un certificato gestito da Google, non devi fare altro che eseguire il gcloud beta source-manager instances create
comando
senza creare un'identità di servizio e un pool di CA.
Se utilizzi il tuo certificato CA anziché un certificato gestito daGoogle, devi specificare un nome del pool di autorità di certificazione (CA) quando crei un'istanza privata di Secure Source Manager. Una richiesta di firma del certificato SSL HTTPS dell'istanza viene inviata al pool di CA.
Crea un'istanza Secure Source Manager Private Service Connect
gcloud
Crea un'istanza Private Service Connect con il seguente 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
Sostituisci quanto segue:
API
Crea un'istanza Private Service Connect con il seguente 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"}}'
Sostituisci quanto segue:
Viene avviata un'operazione di creazione dell'istanza a lunga esecuzione. La creazione dell'istanza richiede fino a 60 minuti. L'output è simile al seguente:
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
Dove
projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e
si trova OPERATION_NAME
.
Prendi nota di OPERATION_NAME
, in quanto dovrai utilizzarlo per controllare
lo stato dell'operazione.
Per controllare lo stato dell'operazione, esegui questo comando:
gcloud beta source-manager operations describe OPERATION_NAME \
--region=LOCATION
Sostituisci quanto segue:
Una volta creata l'istanza, nell'output vengono elencati gli endpoint Private Service Connect httpServiceAttachment
e sshServiceAttachment
, insieme ai nomi host per html
, api
, gitHttp
e gitSsh
.
Accedere all'istanza privata
Per accedere all'istanza Private Service Connect, puoi creare endpoint Private Service Connect in base alle regole di forwarding oppure creare backend Private Service Connect in base ai bilanciatori del carico.
I backend Private Service Connect basati sui bilanciatori del carico sono più flessibili e consentono l'integrazione con altri servizi Google Cloud come Cloud Build, ma sono più complessi e prevedono una fatturazione aggiuntiva.
Gli endpoint Private Service Connect basati su regole di forwarding sono più semplici e meno costosi, ma non puoi connetterti a Cloud Build o ad altri serviziGoogle Cloud .
Per configurare i backend di Private Service Connect in base ai bilanciatori del carico per l'istanza Private Service Connect e connetterla a Cloud Build, consulta Connettere Cloud Build a un'istanza Private Service Connect.
Configura gli endpoint Private Service Connect in base alle regole di forwarding
Utilizzare la CA con l'API Secure Source Manager
Secure Source Manager ha un control plane e un data plane. Gli endpoint del data plane sono ospitati direttamente dall'istanza di Secure Source Manager, quindi devi connetterti al nome host API della tua istanza per accedervi.
Per utilizzare la tua istanza privata di Secure Source Manager, devi utilizzare la CA che hai creato nella sezione Crea un'identità di servizio e un pool di autorità di certificazione.