Crear una instancia de Secure Source Manager

Secure Source Manager es un servicio de un solo inquilino. Una sola instancia de Secure Source Manager solo debe incluir usuarios de un cliente, a menos que varias empresas que tengan una relación contractual necesiten usar una sola instancia para colaborar.Google Cloud

Si trabajas con varias empresas y quieres colaborar con ellas en el código fuente, te recomendamos que crees una instancia independiente para cada empresa.

Para crear una instancia con Controles de Servicio de VPC habilitado, consulta Configurar Secure Source Manager en un perímetro de Controles de Servicio de VPC.

Antes de empezar

  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.

    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 (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. Install the Google Cloud CLI.

  5. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud 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 (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. Install the Google Cloud CLI.

  10. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud 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. Roles obligatorios

    Para obtener los permisos que necesitas para crear una instancia de Secure Source Manager, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Propietario de la instancia de Secure Source Manager (roles/securesourcemanager.instanceOwner) en el proyecto Google Cloud .

    Los roles de Secure Source Manager no aparecen en la consola de Google Cloud hasta que se han concedido a una entidad principal. Para asignar un rol de Gestor de fuentes seguras por primera vez, consulta Asignar y revocar roles de gestión de identidades y accesos.

    Encriptado de datos

    De forma predeterminada, Google Cloud encripta automáticamentelos datos en reposo con claves de cifrado gestionadas por Google. Si tienes requisitos de cumplimiento o normativos específicos relacionados con las claves que protegen tus datos, puedes crear instancias de Secure Source Manager cifradas con claves de cifrado gestionadas por el cliente (CMEK).

    No almacenes datos sensibles en IDs de instancia ni en pares clave-valor de etiquetas, ya que no están cifrados con CMEK.

    Si vas a crear tu primera instancia de Secure Source Manager en tu proyecto, tendrás que 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
    

    Donde 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 asignar el rol Agente de servicio de Secure Source Manager (roles/securesourcemanager.serviceAgent) al principal service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, ya que, de lo contrario, no se podrá crear la instancia.

    Crear una instancia

    Para crear una instancia, sigue estos pasos:

    CLI de gcloud

    1. Ejecuta el siguiente comando para crear una instancia. Es posible que se te pida que te autentiques en 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
      

      Donde:

      • INSTANCE_ID es el nombre de la instancia que quieres crear.
      • LOCATION es la región en la que quieres crear la instancia. Para obtener información sobre las ubicaciones admitidas, consulta Ubicaciones.
      • PROJECT_ID es el ID del proyecto en el que quieres crear una instancia.
      • -kms-key es una marca opcional. Inclúyelo si quiere usar su propia clave de cifrado gestionada por el cliente (CMEK) para crear la instancia. Las claves de CMEK deben estar en la misma ubicación en la que crees la instancia, pero pueden estar en otro proyecto. Omite esta marca si quieres usar el cifrado predeterminado de Google. Si quieres cifrar tus datos con CMEK, sustituye lo siguiente:
        • KEY_PROJECT con el proyecto en el que has creado la clave.
        • KEY_LOCATION con la ubicación de la clave.
        • KEYRING_NAME con el nombre de tu conjunto de claves.
        • KEY con el nombre de tu llave.

      Se inicia una operación de creación de instancias de larga duración. La salida tiene este aspecto:

      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
      

      Dónde projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e está el OPERATION_NAME.

      La creación de la instancia puede tardar hasta 60 minutos.

    2. Toma nota del OPERATION_NAME, ya que lo necesitarás para comprobar el estado de la operación.

    3. Para comprobar el estado de la operación create, ejecuta el siguiente comando:

      gcloud beta source-manager operations describe OPERATION_NAME \
          --region=LOCATION
      

      Haz los cambios siguientes:

      • OPERATION_NAME con el nombre de la operación de la respuesta del comando create.
      • LOCATION con la región en la que quieras crear la instancia. Para obtener información sobre las ubicaciones admitidas, consulta Ubicaciones.

      Cuando la instancia esté lista, la respuesta tendrá un aspecto similar al 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": "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"
        }
      }
      }
      

      Donde test-098765432109.us-central1.sourcemanager.dev es la URL HTML de la instancia.

    4. Copia la URL HTML del comando de comprobación de estado que se ha creado correctamente. Necesitarás esta URL para acceder a la instancia a través de su interfaz web.

    API

    1. Ejecuta el siguiente comando para crear una instancia. Es posible que se te pida que te autentiques en 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"}'
      
      

      Donde:

      • INSTANCE_ID es el nombre de la instancia que quieres crear.
      • LOCATION es la región en la que quieres crear la instancia. Para obtener información sobre las ubicaciones admitidas, consulta Ubicaciones.
      • PROJECT_ID es el ID del proyecto en el que quieres crear una instancia.
      • -d es una marca de datos HTTP POST opcional que se puede usar para especificar una clave CMEK con la que cifrar tu instancia. Omite esta marca si quieres usar el cifrado predeterminado de Google. Si quieres cifrar tus datos con CMEK, sustituye lo siguiente:
        • KEY_PROJECT con el proyecto en el que has creado la clave.
        • KEY_LOCATION con la ubicación de la clave.
        • KEYRING_NAME con el nombre de tu conjunto de claves.
        • KEY con el nombre de tu llave.

      Se inicia una operación de creación de instancias de larga duración. La salida tiene este aspecto:

      {
      "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
      }
      

      Dónde projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e está el OPERATION_NAME.

      La creación de la instancia puede tardar hasta 60 minutos.

    2. Copia el OPERATION_NAME.

    3. Para comprobar el estado de la operación de creación, ejecuta el siguiente comando:

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

      Donde OPERATION_NAME es el nombre de la operación de la respuesta a tu comando de creación.

      Cuando la instancia esté lista, la respuesta tendrá un aspecto similar al 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": "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"
        }
      }
      }
      

      Donde test-098765432109.us-central1.sourcemanager.dev es la URL HTML de la instancia.

    4. Copia la URL HTML del comando de comprobación de estado que se ha creado correctamente. Necesitarás esta URL para acceder a la instancia a través de su interfaz web.

    Acceder a una instancia

    Una vez creada la instancia, puedes acceder a ella a través de su interfaz web con un navegador.

    Para crear repositorios en la instancia, necesitas el rol Creador de repositorios (roles/securesourcemanager.repoCreator) en el proyecto de la instancia y el rol Creador de repositorios de la instancia (roles/securesourcemanager.instanceRepositoryCreator) en la instancia de Secure Source Manager.

    1. Para acceder a la instancia de Secure Source Manager a través de su interfaz web, copie la siguiente URL en la barra de direcciones de su navegador.

      INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

      Haz los cambios siguientes:

      • INSTANCE_ID con el nombre de la instancia.
      • PROJECT_NUMBER con el número de proyecto de la instancia. Google Cloud Para obtener información sobre cómo identificar proyectos, consulta el artículo Identificar proyectos.
      • LOCATION con la región de la instancia.

    2. Aparecerá una pantalla de OAuth en la que se te preguntará si quieres dar acceso a sourcemanager.dev a tu cuenta de Google.

    3. Haz clic en el botón Permitir.

    4. Se abrirá la interfaz web de Secure Source Manager. Puedes crear y ver repositorios, así como todos los problemas y solicitudes de extracción asociados, desde la interfaz web.

    Siguientes pasos