Crea un'istanza Secure Source Manager Private Service Connect

Questa pagina descrive come creare un'istanza Private Service Connect.

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

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Secure Source Manager API.

    Enable the API

  4. Install the Google Cloud CLI.

  5. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

  6. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Enable the Secure Source Manager API.

    Enable the API

  9. Install the Google Cloud CLI.

  10. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

  11. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  12. Installa il componente beta Google Cloud CLI:
    gcloud components install beta
  13. 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.

    1. 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 e PROJECT_NUM è il numero del tuo progetto.

    2. Crea un pool di autorità di certificazione (CA) con richieste di certificati basate su CSR consentite.

    3. Crea una CA. Puoi creare una CA principale o subordinata a seconda delle tue esigenze.

      Per saperne di più sulle differenze tra CA radice e CA subordinate, vedi Determinare le impostazioni dell'autorità di certificazione.

    4. 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.

    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:

    • 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.

    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:

    • 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.

    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:

    • 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à.

    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

    1. Per creare endpoint Private Service Connect, segui le istruzioni riportate in Accedere ai servizi pubblicati tramite endpoint.

    2. 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 eseguire gcloud 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.
    3. 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.

      1. Mappa il valore di hostConfig.html, hostConfig.api e hostConfig.gitHttp all'indirizzo IP interno dell'allegato del servizio HTTP.
      2. 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.

    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.

    1. Per scaricare la CA, esegui questo comando:

      gcloud privateca pools get-ca-certs CA_POOL \
          --location LOCATION \
          --output-file=root-cert.pem \
          --project PROJECT
      
    2. 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 privata my-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
      

    Passaggi successivi