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. Accedi al tuo Account Google.

    Se non ne hai già uno, registrati per creare un nuovo 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. Installa 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. Installa 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

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 beta 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 la forza lavoro 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 tuo 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à per la 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à per la 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