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

En este documento, se describe cómo crear una instancia de Secure Source Manager con la federación de identidades de personal para usarla 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 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

  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. Si usas un proveedor de identidad externo (IdP), primero debes acceder a 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.

    Go to project selector

  8. Enable the Secure Source Manager API.

    Enable the API

  9. Install the Google Cloud CLI.

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

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

    gcloud init
  12. Instala el componente beta de Google Cloud CLI:
    gcloud components install beta
  13. 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 se encriptan 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 beta services identity create \
        --service=securesourcemanager.googleapis.com \
        --project=PROJECT_ID
    

    Aquí, PROJECT_ID es el ID del proyecto en el que crearás 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.

    1. Crea un grupo de federación de Workforce Identity.

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

      • google.subject
      • google.email

    Crea una instancia

    Antes de ejecutar el comando, realiza los siguientes reemplazos:

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

    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 una instancia. El resultado es similar al 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:

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

    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.

    Verifica el estado de la operación de creación

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

    • OPERATION_NAME: Es 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:

    Cuando la instancia esté lista, la respuesta será similar a la siguiente:

      "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 HTML de la respuesta de estado de verificación creada correctamente. Necesitarás 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 de tu 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 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.

    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 con el ID de tu grupo de federación de identidades de personal.
      • PROVIDER_ID con 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 pedirá 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. Puedes crear y ver repositorios, y todos los problemas y solicitudes de extracción asociados desde la interfaz web.

      Debes volver a acceder a través de la interfaz web después de que venza la duración de la sesión establecida 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 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, sigue las instrucciones en Usa la administración de código fuente de Git.

    ¿Qué sigue?