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
-
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
- Instala el componente `beta` de Google Cloud CLI:
gcloud components install beta
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á elOPERATION_NAME
.La creación de la instancia puede tardar hasta 60 minutos.
Toma nota del
OPERATION_NAME
, ya que lo necesitarás para comprobar el estado de la operación.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.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.
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á elOPERATION_NAME
.La creación de la instancia puede tardar hasta 60 minutos.
Copia el
OPERATION_NAME
.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.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.
-
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.
Aparecerá una pantalla de OAuth en la que se te preguntará si quieres dar acceso a
sourcemanager.dev
a tu cuenta de Google.Haz clic en el botón Permitir.
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.
- Conceder acceso a la instancia a los usuarios.
- Crea y clona un repositorio.
- Concede acceso al repositorio a los usuarios.
- Controlar el acceso con la gestión de identidades y accesos.
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
API
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.