Crea un'istanza Secure Source Manager

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.

Per creare un'istanza con i Controlli di servizio VPC abilitati, consulta Configura Secure Source Manager in un perimetro dei Controlli di servizio VPC.

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 Google Cloud CLI `beta`:
    gcloud components install beta
  13. Ruoli obbligatori

    Per ottenere le autorizzazioni necessarie per creare un'istanza di Secure Source Manager, chiedi all'amministratore di concederti il ruolo IAM Proprietario istanza Secure Source Manager (roles/securesourcemanager.instanceOwner) sul progetto Google Cloud .

    I ruoli di Secure Source Manager non vengono visualizzati nella console Google Cloud finché non sono stati concessi a un'entità. Per concedere un ruolo Secure Source Manager per la prima volta, consulta Concedi e revoca i ruoli IAM.

    Crittografia dei dati

    Per impostazione predefinita, Google Cloud cripta automaticamente i dati at-rest utilizzando chiavi di crittografia gestite da Google. 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 in ID istanza o coppie chiave-valore di etichette perché non sono criptati con CMEK.

    Se stai creando la tua prima istanza di Secure Source Manager nel tuo progetto, devi creare manualmente l'agente di servizio Secure Source Manager eseguendo il seguente comando:

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

    Dove PROJECT_ID è l'ID progetto del progetto in cui creerai 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.

    Crea un'istanza

    Per creare un'istanza:

    Interfaccia a riga di comando gcloud

    1. Esegui questo comando per creare un'istanza. Potrebbe esserti chiesto di autenticarti in gcloud CLI.

      gcloud beta source-manager instances create INSTANCE_ID \
          --region=LOCATION \
          --project=PROJECT_ID \
          --kms-key=projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY
      

      Dove:

      • 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 del progetto in cui vuoi creare un'istanza.
      • -kms-key è un flag facoltativo. Includi se vuoi utilizzare la tua chiave di crittografia gestita dal cliente (CMEK) per creare l'istanza. Le chiavi CMEK devono trovarsi nella stessa località in cui stai creando l'istanza, ma possono trovarsi in un progetto diverso. Ometti questo flag se vuoi utilizzare la crittografia predefinita di Google. Se vuoi criptare i tuoi dati utilizzando CMEK, sostituisci quanto segue:
        • KEY_PROJECT con il progetto in cui hai creato la chiave.
        • KEY_LOCATION con la posizione della chiave.
        • KEYRING_NAME con il nome della tua chiave automatizzata.
        • KEY con il nome della chiave.

      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 si trova OPERATION_NAME.

      La creazione dell'istanza richiede fino a 60 minuti.

    2. Prendi nota di OPERATION_NAME, in quanto dovrai utilizzarlo per controllare lo stato dell'operazione.

    3. Controlla lo stato dell'operazione create eseguendo 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à.

      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/test",
        "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/test",
        "createTime": "2022-11-01T14:31:32.416413630Z",
        "updateTime": "2022-11-01T14:31:32.416413630Z",
        "labels": {
          "ldap": "user",
          "source": "manual"
        },
        "state": "ACTIVE",
        "hostConfig": {
          "html": "test-098765432109.us-central1.sourcemanager.dev",
          "api": "test-098765432109-api.us-central1.sourcemanager.dev",
          "gitHttp": "test-098765432109-git.us-central1.sourcemanager.dev"
        }
      }
      }
      

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

    4. Copia l'URL HTML dal comando di stato del controllo creato correttamente. Ti servirà questo URL per accedere all'istanza tramite la sua interfaccia web.

    API

    1. Esegui questo comando per creare un'istanza. Potrebbe esserti chiesto di autenticarti in gcloud CLI.

      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 '{ "kms_key":"projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY"}'
      
      

      Dove:

      • 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 del progetto in cui vuoi creare un'istanza.
      • -d è un flag di dati HTTP POST facoltativo che può essere utilizzato per specificare una chiave CMEK per criptare l'istanza. Ometti questo flag se vuoi utilizzare la crittografia Google predefinita. Se vuoi criptare i tuoi dati utilizzando CMEK, sostituisci quanto segue:
        • KEY_PROJECT con il progetto in cui hai creato la chiave.
        • KEY_LOCATION con la posizione della chiave.
        • KEYRING_NAME con il nome della tua chiave automatizzata.
        • KEY con il nome della chiave.

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

      {
      "name": "projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
        "createTime": "2022-11-01T14:31:32.420469714Z",
        "target": "projects/my-project/locations/us-central1/instances/test",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
      }
      

      Dove projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e si trova OPERATION_NAME.

      La creazione dell'istanza richiede fino a 60 minuti.

    2. Copia OPERATION_NAME.

    3. Controlla lo stato dell'operazione di creazione eseguendo questo comando:

      curl \
          -X GET \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          https://securesourcemanager.googleapis.com/v1/OPERATION_NAME
      

      dove OPERATION_NAME è il nome dell'operazione dalla risposta al comando di creazione.

      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/test",
        "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/test",
        "createTime": "2022-11-01T14:31:32.416413630Z",
        "updateTime": "2022-11-01T14:31:32.416413630Z",
        "labels": {
          "ldap": "user",
          "source": "manual"
        },
        "state": "ACTIVE",
        "hostConfig": {
          "html": "test-098765432109.us-central1.sourcemanager.dev",
          "api": "test-098765432109-api.us-central1.sourcemanager.dev",
          "gitHttp": "test-098765432109-git.us-central1.sourcemanager.dev"
        }
      }
      }
      

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

    4. Copia l'URL HTML dal comando di stato del controllo creato correttamente. Avrai bisogno di questo URL per accedere all'istanza tramite la sua interfaccia web.

    Accedere a un'istanza

    Una volta creata l'istanza, puoi accedervi tramite la sua interfaccia web utilizzando un browser.

    Per creare repository nell'istanza, devi disporre del ruolo di creatore di repository (roles/securesourcemanager.repoCreator) nel progetto dell'istanza e del ruolo di creatore di repository dell'istanza (roles/securesourcemanager.instanceRepositoryCreator) nell'istanza Secure Source Manager.

    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.

    2. Viene visualizzata una schermata OAuth che ti chiede se vuoi concedere a sourcemanager.dev l'accesso al tuo Account Google.

    3. Fai clic sul pulsante Consenti.

    4. Si apre l'interfaccia web di Secure Source Manager. Puoi creare e visualizzare repository e tutti i problemi e le richieste di pull associati dall'interfaccia web.

    Passaggi successivi