Crea una instancia de Secure Source Manager para usar con identidades federadas

Obtén información para crear una instancia de Secure Source Manager que use la federación de identidades de personal con un proveedor de identidad (IdP) externo.

Para obtener más información sobre la federación de identidades de personal, consulta federación de identidades de personal.

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 Google Cloud cliente, a menos que varias empresas que tengan una relación contractual necesiten usar una sola instancia para la colaboración.

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

  1. Accede a tu cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  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. Instala Google Cloud CLI.

  5. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  6. Para inicializar gcloud CLI, ejecuta el siguiente 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. Instala Google Cloud CLI.

  10. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  11. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init

Encriptación de datos

De forma predeterminada, Google Cloud automáticamente encripta los datos en reposo con Google-owned and Google-managed encryption keys. Si tienes requisitos regulatorios o de cumplimiento específicos relacionados con las claves que protegen los datos, puedes crear instancias de Secure Source Manager que estén 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 creas 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 beta 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 federación de identidades de personal.

  1. Crea un grupo de federación de identidades de personal.

  2. Configura tu proveedor de grupos de identidades de personal con las siguientes asignaciones de atributos:

    • google.subject
    • google.email

Crea una instancia

gcloud

Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

  • INSTANCE_ID: el nombre de la instancia que deseas crear.
  • LOCATION: la región en la que deseas crear la instancia. Para obtener información sobre las ubicaciones compatibles, consulta Ubicaciones.
  • PROJECT_ID: el ID del proyecto en el que deseas crear una instancia.

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 la 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

En el que projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e es el OPERATION_NAME.

Registra el OPERATION_NAME, ya que deberás usarlo para verificar el estado de la operación.

La creación de la instancia tarda hasta 60 minutos.

API

Antes de ejecutar este comando, reemplaza los siguientes valores:

  • INSTANCE_ID: el nombre de la instancia que deseas crear.
  • LOCATION: la región en la que deseas crear la instancia. Para obtener información sobre las ubicaciones compatibles, consulta Ubicaciones.
  • PROJECT_ID: el ID del proyecto en el que deseas crear una instancia.

Ejecuta el siguiente 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}}"

Se inicia una operación de larga duración para crear la 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
}

Este resultado de ejemplo incluye los siguientes valores:

  • OPERATION_NAME: 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: la región en la que se encuentra la instancia.

Registra el OPERATION_NAME, ya que deberás usarlo para verificar el estado de la operación.

La creación de la instancia tarda hasta 60 minutos.

Terraform

En el siguiente ejemplo, se crea una instancia de Secure Source Manager con la federación de identidades de personal 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:

  • OPERATION_NAME: el nombre de la operación de la respuesta del comando create.
  • LOCATION: la región de la instancia.

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

Una vez que 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"
    }
  }

En el que 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:

  • OPERATION_NAME: el nombre de la operación de la respuesta del comando create.

Método HTTP y URL:

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

Para enviar tu solicitud, expande una de estas opciones:

Una vez que 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
    }
  }

En el que my-instance-098765432109.us-central1.sourcemanager.dev es la URL HTML de la instancia.

Copia la URL 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.

  1. 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 del navegador.

    INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

    Reemplaza lo siguiente:

    • INSTANCE_ID por el nombre de la instancia.
    • PROJECT_NUMBER por el número de proyecto de la instancia. Google CloudPara obtener información sobre la identificación de proyectos, consulta Identifica proyectos.
    • LOCATION por la región de la instancia.

    Aparecerá una pantalla de OAuth en la que se solicitará el nombre del proveedor.

  2. Ingresa el nombre de tu proveedor de identidades de personal en el siguiente formato:

    locations/global/workforcePools/POOL_ID/providers/PROVIDER_ID
    

    Reemplaza lo siguiente:

    • POOL_ID por el ID de tu grupo de federación de identidades de personal.
    • PROVIDER_ID por el ID de tu proveedor de federación de identidades de personal.

    Para obtener más información sobre los grupos y proveedores de federación de identidades de personal, consulta Administra 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.

  3. Accede con las credenciales de tu proveedor.

  4. 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.

Crea tu configuración de acceso a gcloud CLI

Para autenticarte con las credenciales de tu grupo de identidades de personal 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 de personal.

Para crear una configuración de acceso al grupo de identidades de personal, sigue las instrucciones que se indican 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.

¿Qué sigue?