Crea un'istanza Secure Source Manager da utilizzare con le identità federate

Scopri come creare un'istanza di Secure Source Manager che utilizza la federazione delle identità per la forza lavoro con un provider di identità (IdP) esterno.

Per ulteriori informazioni sulla federazione delle identità per la forza lavoro, consulta Federazione delle identità per la forza lavoro.

Per informazioni sulle limitazioni alla federazione delle identità per la forza lavoro in Secure Source Manager, consulta Federazione delle identità: prodotti e limitazioni.

Secure Source Manager è un servizio single-tenant. Una singola istanza Secure Source Manager deve includere solo utenti di un unico 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.

    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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  4. Install the Google Cloud CLI.

  5. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a 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.

    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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  9. Install the Google Cloud CLI.

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

  11. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  12. Crittografia dei dati

    Per impostazione predefinita, Google Cloud cripta automaticamente i dati at-rest utilizzando Google-owned and Google-managed encryption keys. Se hai requisiti di conformità o normativi specifici relativi alle chiavi che proteggono i tuoi dati, puoi creare istanze di Secure Source Manager criptate con chiavi di crittografia gestite dal cliente (CMEK).

    Non archiviare dati sensibili negli ID istanza o nelle coppie chiave-valore delle etichette perché non sono criptati con CMEK.

    Se stai creando la tua prima istanza Secure Source Manager nel tuo progetto, devi creare manualmente il service agent Secure Source Manager eseguendo il seguente comando:

    gcloud services identity create \
        --service=securesourcemanager.googleapis.com \
        --project=PROJECT_ID
    

    In questo caso, PROJECT_ID è l'ID progetto del progetto in cui crei l'istanza Secure Source Manager.

    Dopo aver creato il account di servizio per prodotto e per progetto (P4SA), devi concedere il ruolo Agente di servizio Secure Source Manager (roles/securesourcemanager.serviceAgent) al service account principale service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com altrimenti la creazione dell'istanza non andrà a buon fine.

    Configura la federazione delle identità per la forza lavoro

    Prima di creare un'istanza, devi configurare un pool e un provider di federazione delle identità per la forza lavoro.

    1. Crea un pool federazione delle identità per la forza lavoro.

    2. Configura il fornitore del pool di identità per la forza lavoro con le seguenti mappature degli attributi:

      • google.subject
      • google.email

    Crea un'istanza

    gcloud

    Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

    • INSTANCE_ID: il nome dell'istanza che vuoi creare.
    • LOCATION: la regione in cui vuoi creare l'istanza. Per informazioni sulle località supportate, vedi Località.
    • PROJECT_ID: l'ID progetto del progetto in cui vuoi creare un'istanza.

    Esegui questo comando:

    Linux, macOS o Cloud Shell

    gcloud source-manager instances create INSTANCE_ID --region=LOCATION --project=PROJECT_ID --enable-workforce-identity-federation

    Windows (PowerShell)

    gcloud source-manager instances create INSTANCE_ID --region=LOCATION --project=PROJECT_ID --enable-workforce-identity-federation

    Windows (cmd.exe)

    gcloud source-manager instances create INSTANCE_ID --region=LOCATION --project=PROJECT_ID --enable-workforce-identity-federation

    Viene avviata un'operazione di creazione dell'istanza a lunga esecuzione. 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 è il OPERATION_NAME.

    Registra OPERATION_NAME, in quanto dovrai utilizzarlo per controllare lo stato dell'operazione.

    La creazione dell'istanza richiede fino a 60 minuti.

    API

    Prima di eseguire questo comando, sostituisci i seguenti valori:

    • INSTANCE_ID: il nome dell'istanza che vuoi creare.
    • LOCATION: la regione in cui vuoi creare l'istanza. Per informazioni sulle località supportate, vedi Località.
    • PROJECT_ID: l'ID progetto del progetto in cui vuoi creare un'istanza.

    Esegui questo 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 "{workforce_identity_federation_config: {enabled: true}}"
    
    

    Viene avviata un'operazione di creazione dell'istanza a lunga esecuzione. L'output è simile al seguente:

    {
    "name": "OPERATION_NAME",
    "metadata": {
      "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
      "createTime": "2022-11-01T14:31:32.420469714Z",
      "target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID",
      "verb": "create",
      "requestedCancellation": false,
      "apiVersion": "v1"
    },
    "done": false
    }
    

    Questo output di esempio include i seguenti valori:

    • OPERATION_NAME: il nome dell'operazione, ad esempio projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e.
    • PROJECT_ID: il Google Cloud progetto.
    • LOCATION: la regione in cui si trova l'istanza.

    Registra l'OPERATION_NAME perché devi utilizzarlo per controllare lo stato dell'operazione.

    La creazione dell'istanza richiede fino a 60 minuti.

    Terraform

    L'esempio seguente crea un'istanza Secure Source Manager con la federazione delle identità per i lavoratori abilitata:

    resource "google_secure_source_manager_instance" "instance" {
      instance_id = "INSTANCE_ID"
      location    = "LOCATION"
      project     = "PROJECT_ID"
      workforce_identity_federation_config {
        enabled = true
      }
    }
    

    Controlla lo stato dell'operazione

    gcloud

    Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

    • OPERATION_NAME: il nome dell'operazione dalla risposta del comando create.
    • LOCATION: la regione dell'istanza.

    Esegui questo comando:

    Linux, macOS o Cloud Shell

    gcloud source-manager operations describe OPERATION_NAME --region=LOCATION

    Windows (PowerShell)

    gcloud source-manager operations describe OPERATION_NAME --region=LOCATION

    Windows (cmd.exe)

    gcloud source-manager operations describe OPERATION_NAME --region=LOCATION

    Quando l'istanza è pronta, la risposta sarà simile alla seguente:

      "name": "projects/my-project/locations/us-central1/operations/operation-123456789012-5ec69948c0f2b-60dd727f-a9b97a2e",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
        "createTime": "2022-11-01T14:31:32.420469714Z",
        "endTime": "2022-11-01T14:48:34.140378114Z",
        "target": "projects/my-project/locations/us-central1/instances/my-instance",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Instance",
        "name": "projects/my-project/locations/us-central1/instances/my-instance",
        "createTime": "2022-11-01T14:31:32.416413630Z",
        "updateTime": "2022-11-01T14:31:32.416413630Z",
        "labels": {
          "ldap": "user",
          "source": "manual"
        },
        "state": "ACTIVE",
        "hostConfig": {
          "html": "my-instance-098765432109.us-central1.sourcemanager.dev",
          "api": "my-instance-098765432109-api.us-central1.sourcemanager.dev",
          "gitHttp": "my-instance-098765432109-git.us-central1.sourcemanager.dev"
        }
      }
    

    dove my-instance-098765432109.us-central1.sourcemanager.dev è l'URL HTML dell'istanza.

    API

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • OPERATION_NAME: il nome dell'operazione dalla risposta del comando create.

    Metodo HTTP e URL:

    GET https://securesourcemanager.googleapis.com/v1/OPERATION_NAME

    Per inviare la richiesta, espandi una di queste opzioni:

    Quando l'istanza è pronta, la risposta sarà simile alla seguente:

      "name": "projects/my-project/locations/us-central1/operations/operation-123456789012-5ec69948c0f2b-60dd727f-a9b97a2e",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
        "createTime": "2024-10-28T15:37:39.009812863Z",
        "endTime": "2024-10-28T16:10:58.416640259Z",
        "target": "projects/my-project/locations/us-central1/instances/my-instance",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Instance",
        "name": "projects/my-project/locations/us-central1/instances/my-instance",
        "createTime": "2024-10-28T15:37:39.004550840Z",
        "updateTime": "2024-10-28T15:37:39.867857246Z",
        "state": "ACTIVE",
        "hostConfig": {
          "html": "my-instance-326202322590.us-central1.sourcemanager.dev",
          "api": "my-instance-326202322590-api.us-central1.sourcemanager.dev",
          "gitHttp": "my-instance-326202322590-git.us-central1.sourcemanager.dev",
          "gitSsh": "my-instance-326202322590-ssh.us-central1.sourcemanager.dev"
        },
        "workforceIdentityFederationConfig": {
          "enabled": true
        }
      }
    

    dove my-instance-098765432109.us-central1.sourcemanager.dev è l'URL HTML dell'istanza.

    Copia l'URL HTML dalla risposta con lo stato di controllo riuscito. Questo URL è necessario per accedere all'istanza tramite la sua interfaccia web.

    Accedere all'istanza

    Dopo aver creato l'istanza, puoi accedervi tramite la sua interfaccia web utilizzando un browser.

    1. Per accedere all'istanza di Secure Source Manager tramite la sua interfaccia web, copia il seguente URL nella barra degli indirizzi del browser.

      INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

      Sostituisci quanto segue:

      • INSTANCE_ID con il nome dell'istanza.
      • PROJECT_NUMBER con il numero di progetto Google Cloud dell'istanza. Per informazioni sull'identificazione dei progetti, consulta Identificazione dei progetti.
      • LOCATION con la regione dell'istanza.

      Viene visualizzata una schermata OAuth che richiede il nome del provider.

    2. Inserisci il nome del provider di identità della forza lavoro nel seguente formato:

      locations/global/workforcePools/POOL_ID/providers/PROVIDER_ID
      

      Sostituisci quanto segue:

      • POOL_ID con l'ID del tuo pool di federazione delle identità per la forza lavoro.
      • PROVIDER_ID con l'ID del provider di federazione delle identità per la forza lavoro.

      Per ulteriori informazioni sui pool e sui provider di federazione delle identità per la forza lavoro, consulta Gestire i pool e i provider di identità della federazione delle identità per la forza lavoro.

      Ti viene chiesto di accedere utilizzando le credenziali del tuo fornitore.

    3. Accedi utilizzando le credenziali del tuo fornitore.

    4. Si apre l'interfaccia web di Secure Source Manager. Da qui puoi creare e visualizzare repository, problemi e richieste di pull.

      Devi accedere di nuovo tramite l'interfaccia web dopo la scadenza della durata della sessione nel pool di federazione delle identità per la forza lavoro.

    Crea la configurazione di accesso a gcloud CLI

    Per autenticarti con le credenziali del tuo pool di identità della forza lavoro nell'istanza di Secure Source Manager utilizzando i comandi gcloud CLI o Git, devi creare una configurazione di accesso con il tuo pool di identità della forza lavoro.

    Per creare una configurazione di accesso al pool di identità della forza lavoro, segui le istruzioni riportate in Recuperare token di breve durata per la federazione delle identità per la forza lavoro per creare un accesso basato sul browser con gcloud CLI.

    Una volta eseguita l'autenticazione, puoi utilizzare i comandi Git per interagire con l'istanza di Secure Source Manager. Per iniziare a utilizzare Git, consulta Utilizzare la gestione del codice sorgente Git.

    Passaggi successivi