Crea una instancia de Secure Source Manager

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.

Para crear una instancia con los Controles del servicio de VPC habilitados, consulta Configura Secure Source Manager en un perímetro de Controles del servicio de VPC.

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. Roles requeridos

    Para obtener los permisos que necesitas para crear una instancia de Secure Source Manager, pídele a tu administrador que te otorgue el rol de IAM de 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 otorgan a un principal. Para otorgar un rol de Secure Source Manager por primera vez, consulta Otorga y revoca roles de IAM.

    Encriptación de datos

    De forma predeterminada, Google Cloud encripta automáticamente losdatos en reposo con claves de encriptación administradas por Google. 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, deberás 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.

    Crea una instancia

    Para crear una instancia, sigue estos pasos:

    gcloud CLI

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

      Aquí:

      • 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.
      • -kms-key es una marca opcional. Inclúyelo si deseas usar tu propia clave de encriptación administrada por el cliente (CMEK) para crear la instancia. Las claves de CMEK deben estar en la misma ubicación en la que creas tu instancia, pero pueden estar en un proyecto diferente. Omite esta marca si deseas usar la encriptación predeterminada de Google. Si deseas encriptar tus datos con CMEK, reemplaza lo siguiente:
        • KEY_PROJECT por el proyecto en el que creaste la clave.
        • KEY_LOCATION con la ubicación de la llave
        • KEYRING_NAME con el nombre del llavero de claves.
        • KEY por el nombre de la clave.

      Se inicia una operación de larga duración para crear una instancia. El resultado se verá 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.

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

    2. Ten en cuenta el OPERATION_NAME, ya que lo necesitarás para verificar el estado de la operación.

    3. Ejecuta el siguiente comando para verificar el estado de la operación create:

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

      Reemplaza lo siguiente:

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

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

      Aquí, test-098765432109.us-central1.sourcemanager.dev es la URL HTML de la instancia.

    4. Copia la URL de HTML del comando de estado de verificación 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 solicite 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"}'
      
      

      Aquí:

      • 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.
      • -d es una marca de datos POST HTTP opcional que se puede usar para especificar una clave de CMEK para encriptar tu instancia. Omite esta marca si deseas usar la encriptación predeterminada de Google. Si deseas encriptar tus datos con CMEK, reemplaza lo siguiente:
        • KEY_PROJECT por el proyecto en el que creaste la clave.
        • KEY_LOCATION con la ubicación de la llave
        • KEYRING_NAME con el nombre del llavero de claves.
        • KEY por el nombre de la clave.

      Se inicia una operación de larga duración para crear una instancia. El resultado se verá de la siguiente manera:

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

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

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

    2. Copia el OPERATION_NAME.

    3. Para verificar 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
      

      Aquí, OPERATION_NAME es el nombre de la operación que se muestra en la respuesta a tu comando de creación.

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

      Aquí, test-098765432109.us-central1.sourcemanager.dev es la URL HTML de la instancia.

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

    Accede a una instancia

    Después de crear 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, 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.

    2. Aparecerá una pantalla de OAuth en la que se te preguntará si quieres otorgarle 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, y todos los problemas y solicitudes de extracción asociados desde la interfaz web.

    ¿Qué sigue?