Per ulteriori informazioni sulla federazione delle identità per la forza lavoro, consulta Federazione delle identità per la forza lavoro.
Per informazioni sulle limitazioni della 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 Google Cloud cliente, a meno che più aziende con un rapporto contrattuale non debbano utilizzare una singola istanza per la collaborazione.
Se lavori con più aziende e vuoi collaborare con loro sul codice sorgente, ti consigliamo di creare un'istanza separata per ogni azienda.
Prima di iniziare
-
Accedi al tuo Account Google.
Se non ne hai già uno, registrati per creare un nuovo account.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Secure Source Manager API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Secure Source Manager API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Crittografia dei dati
Per impostazione predefinita, Google Cloud automaticamente cripta 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 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
Qui, PROJECT_ID è l'ID progetto del progetto in cui crei l'istanza Secure Source Manager.
Dopo aver creato il service agent Secure Source Manager, devi concedere
il ruolo Secure Source Manager Service Agent
(roles/securesourcemanager.serviceAgent) al principal
service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com
altrimenti la creazione dell'istanza non riuscirà.
Configura la federazione delle identità per la forza lavoro
Prima di creare un'istanza, devi configurare un pool e un provider della federazione delle identità per la forza lavoro.
Crea un pool della federazione delle identità per la forza lavoro.
Configura il provider del pool di identità della forza lavoro con i seguenti mapping degli attributi:
google.subjectgoogle.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, consulta 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 è OPERATION_NAME.
Registra OPERATION_NAME perché 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, consulta 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 esempioprojects/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 OPERATION_NAME perché dovrai 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 di attività
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 di creazione.
- 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
Una volta che 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 di creazione.
Metodo HTTP e URL:
GET https://securesourcemanager.googleapis.com/v1/OPERATION_NAME
Per inviare la richiesta, espandi una di queste opzioni:
Una volta che 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 di controllo dello stato riuscita. Questo URL è necessario per accedere all'istanza tramite la sua interfaccia web.
Accedi all'istanza
Dopo aver creato l'istanza, puoi accedervi tramite la sua interfaccia web utilizzando un browser.
-
Per accedere all'istanza Secure Source Manager tramite la sua interfaccia web, copia il seguente URL nella barra degli indirizzi del browser.
INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.devSostituisci quanto segue:
- INSTANCE_ID con il nome dell'istanza.
- PROJECT_NUMBER con il numero di progetto dell'istanza. Google CloudPer informazioni sull'identificazione dei progetti, consulta Identifica i progetti.
- LOCATION con la regione dell'istanza.
Viene visualizzata una schermata OAuth che richiede il nome del provider.
Inserisci il nome del provider di identità della forza lavoro nel seguente formato:
locations/global/workforcePools/POOL_ID/providers/PROVIDER_IDSostituisci quanto segue:
POOL_IDcon l'ID del pool di identità della forza lavoro.PROVIDER_IDcon l'ID del provider di identità della forza lavoro.
Per ulteriori informazioni sui pool e sui provider della 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 provider.
Accedi utilizzando le credenziali del provider.
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 identità della forza lavoro.
Crea la configurazione di accesso a gcloud CLI
Per autenticarti con le credenziali del pool di identità della forza lavoro all'istanza Secure Source Manager utilizzando i comandi gcloud CLI o Git, devi creare una configurazione di accesso con il pool di identità della forza lavoro.
Per creare una configurazione di accesso al pool di identità della forza lavoro, segui le istruzioni in Ottenere token di breve durata per la federazione delle identità per la forza lavoro per creare un accesso basato su browser con gcloud CLI.
Dopo l'autenticazione, puoi utilizzare i comandi Git per interagire con l'istanza Secure Source Manager. Per iniziare a utilizzare Git, consulta Utilizzare la gestione del codice sorgente Git.
Passaggi successivi
- Concedi agli utenti l'accesso all'istanza.
- Concedi agli utenti l'accesso al repository.
- Controlla l'accesso con IAM.