Para obtener más información sobre la federación de identidades de personal, consulta este documento.
Para obtener información sobre las limitaciones de la federación de identidades de personal en Secure Source Manager, consulta Federación de identidades: productos y limitaciones.
Secure Source Manager es un servicio de usuario único. Una sola instancia de Secure Source Manager solo debe incluir usuarios de un solo cliente deGoogle Cloud , a menos que varias empresas que tengan una relación contractual necesiten usar una sola instancia para colaborar.
Si trabajas con varias empresas y quieres colaborar con ellas en el código fuente, te recomendamos que crees una instancia separada para cada empresa.
Antes de comenzar
-
Sign in to your Google Account.
If you don't already have one, sign up for a new 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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes Acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes Acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init Configura tu proveedor de grupo de identidades de personal con las siguientes asignaciones de atributos:
google.subjectgoogle.email
- INSTANCE_ID: El nombre de la instancia que deseas crear.
- LOCATION: Es la región en la que deseas crear la instancia. Para obtener información sobre las ubicaciones compatibles, consulta Ubicaciones.
- PROJECT_ID: Es el ID del proyecto en el que deseas crear una instancia.
- INSTANCE_ID: Es el nombre de la instancia que deseas crear.
- LOCATION: Es la región en la que deseas crear la instancia. Para obtener información sobre las ubicaciones compatibles, consulta Ubicaciones.
- PROJECT_ID: Es el ID del proyecto en el que deseas crear una instancia.
OPERATION_NAME: Es el nombre de la operación, por ejemplo,projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e.PROJECT_ID: El Google Cloud proyecto.LOCATION: Es la región en la que se encuentra la instancia.- OPERATION_NAME: Es el nombre de la operación que se muestra en la respuesta del comando de creación.
- LOCATION: Es la región de la instancia.
- OPERATION_NAME: Es el nombre de la operación de la respuesta del comando create.
-
Para acceder a la instancia de Secure Source Manager a través de su interfaz web, copia la siguiente URL en la barra de direcciones de tu navegador.
INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.devReemplaza lo siguiente:
- INSTANCE_ID por el nombre de la instancia.
- PROJECT_NUMBER por el número de proyecto de la instancia Google Cloud. Para obtener información sobre cómo identificar proyectos, consulta Identifica proyectos.
- LOCATION con la región de la instancia.
Aparecerá una pantalla de OAuth en la que se solicitará el nombre de tu proveedor.
Ingresa el nombre de tu proveedor de identidades externas en el siguiente formato:
locations/global/workforcePools/POOL_ID/providers/PROVIDER_IDReemplaza lo siguiente:
POOL_IDcon el ID de tu grupo de federación de identidades de personal.PROVIDER_IDcon el ID de tu proveedor de federación de identidades de personal.
Para obtener más información sobre los grupos y proveedores de la federación de identidades de personal, consulta Cómo administrar los grupos y proveedores de identidades de la federación de identidades de personal.
Se te solicitará que accedas con las credenciales de tu proveedor.
Accede con las credenciales de tu proveedor.
Se abrirá la interfaz web de Secure Source Manager. Desde aquí, puedes crear y ver repositorios, problemas y solicitudes de extracción.
Debes volver a acceder a través de la interfaz web después de que venza la duración de la sesión en tu grupo de federación de identidades de personal.
- Otorga acceso a la instancia a los usuarios.
- Otorga acceso al repositorio a los usuarios.
- Controla el acceso con IAM.
Encriptación de datos
De forma predeterminada, Google Cloud encripta automáticamentelos datos en reposo conGoogle-owned and Google-managed encryption keys. Si tienes requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen los datos, puedes crear instancias de Secure Source Manager encriptadas con claves de encriptación administradas por el cliente (CMEK).
No almacenes datos sensibles en IDs de instancias ni en pares clave-valor de etiquetas, ya que no están encriptados con CMEK.
Si vas a crear tu primera instancia de Secure Source Manager en tu proyecto, debes crear manualmente el agente de servicio de Secure Source Manager ejecutando el siguiente comando:
gcloud services identity create \
--service=securesourcemanager.googleapis.com \
--project=PROJECT_ID
Aquí, PROJECT_ID es el ID del proyecto en el que creas tu instancia de Secure Source Manager.
Después de crear la cuenta de servicio por producto y por proyecto (P4SA), debes otorgar el rol de agente de servicio de Secure Source Manager (roles/securesourcemanager.serviceAgent) al principal service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, o fallará la creación de la instancia.
Configura la federación de identidades de personal
Antes de crear una instancia, debes configurar un grupo y un proveedor de la federación de identidades de personal.
Crea una instancia
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
Ejecuta el siguiente 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
Se inicia una operación de larga duración para crear una instancia. El resultado luce de la siguiente manera:
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
Donde projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e es el OPERATION_NAME.
Registra el OPERATION_NAME, ya que lo necesitarás para verificar el estado de la operación.
La creación de la instancia puede tardar hasta 60 minutos.
API
Antes de ejecutar este comando, reemplaza los siguientes valores:
Ejecuta el comando siguiente:
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}}"
Se inicia una operación de larga duración para crear una instancia. El resultado se ve de la manera siguiente:
{
"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
}
En este ejemplo de salida, se incluyen los siguientes valores:
Registra el OPERATION_NAME, ya que lo necesitarás para verificar el estado de la operación.
La creación de la instancia puede tardar hasta 60 minutos.
Terraform
En el siguiente ejemplo, se crea una instancia de Secure Source Manager con la federación de identidades para la fuerza laboral habilitada:
resource "google_secure_source_manager_instance" "instance" {
instance_id = "INSTANCE_ID"
location = "LOCATION"
project = "PROJECT_ID"
workforce_identity_federation_config {
enabled = true
}
}
Verifica el estado de la operación
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
Ejecuta el siguiente 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
Cuando la instancia esté lista, la respuesta se verá de la siguiente manera:
"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"
}
}
Donde my-instance-098765432109.us-central1.sourcemanager.dev es la URL HTML de la instancia.
API
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
Método HTTP y URL:
GET https://securesourcemanager.googleapis.com/v1/OPERATION_NAME
Para enviar tu solicitud, expande una de estas opciones:
Cuando la instancia esté lista, la respuesta se verá de la siguiente manera:
"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
}
}
Donde my-instance-098765432109.us-central1.sourcemanager.dev es la URL HTML de la instancia.
Copia la URL de HTML de la respuesta de estado de verificación correcta. Necesitas esta URL para acceder a la instancia a través de su interfaz web.
Accede a la instancia
Después de crear la instancia, puedes acceder a ella a través de su interfaz web con un navegador.
Crea tu configuración de acceso a gcloud CLI
Para autenticarte con las credenciales de tu grupo de identidades para trabajadores en tu instancia de Secure Source Manager con comandos de gcloud CLI o comandos de Git, debes crear una configuración de acceso con tu grupo de identidades para trabajadores.
Para crear una configuración de acceso al grupo de identidades de personal, sigue las instrucciones en Obtén tokens de corta duración para la federación de identidades de personal para crear un acceso basado en el navegador con gcloud CLI.
Después de autenticarte, puedes usar comandos de Git para interactuar con tu instancia de Secure Source Manager. Para comenzar a usar Git, consulta Usa la administración de código fuente de Git.