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
-
Accede a tu cuenta de Google.
Si todavía no tienes una cuenta, regístrate para obtener una nueva.
-
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 theresourcemanager.projects.createpermission. 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.enablepermission. Learn how to grant roles.-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI 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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. 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.enablepermission. Learn how to grant roles.-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
Roles obligatorios
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 Propietario de la instancia de Secure Source Manager (roles/securesourcemanager.instanceOwner) en el Google Cloud proyecto.
Los roles de Secure Source Manager no aparecen en la Google Cloud consola hasta que se otorgan a una 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 automáticamente encripta los datos en reposo con claves de encriptación administradas por Google. Si tienes requisitos regulatorios 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 están encriptados con CMEK.
Si creas 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
En el ejemplo anterior, 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) a la entidad service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.como fallará la creación de la instancia.
Crea una instancia
Para crear una instancia, sigue estos pasos:
gcloud CLI
Ejecuta el siguiente comando para crear una instancia. Es posible que se te solicite que te autentiques en gcloud CLI.
gcloud source-manager instances create INSTANCE_ID \ --region=LOCATION \ --project=PROJECT_ID \ --kms-key=projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEYAquí:
INSTANCE_IDes el ID permanente de la instancia. El ID solo debe usar letras minúsculas, números y guiones, debe comenzar con una letra y no se puede cambiar después de crearlo.LOCATIONes la región en la que deseas crear la instancia. Para obtener información sobre las ubicaciones admitidas, consulta Ubicaciones.PROJECT_IDes el ID del proyecto en el que deseas crear una instancia.-kms-keyes una marca opcional. Inclúyela si deseas usar tu propia clave de encriptación administrada por el cliente (CMEK) para crear la instancia. Las claves CMEK deben estar en la misma ubicación en la que creas la 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_PROJECTpor el proyecto en el que creaste la clave.KEY_LOCATIONpor la ubicación de la clave.KEYRING_NAMEpor el nombre del llavero de claves.KEYpor el nombre de la clave.
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-a9b97a2eEn el ejemplo anterior,
projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2ees elOPERATION_NAME.La creación de la instancia tarda hasta 60 minutos.
Anota el
OPERATION_NAME, ya que deberás usarlo para verificar el estado de la operación.Ejecuta el siguiente comando para verificar el estado de la operación
create:gcloud source-manager operations describe OPERATION_NAME \ --region=LOCATIONReemplaza lo siguiente:
OPERATION_NAMEpor el nombre de la operación de la respuesta del comando create.LOCATIONpor la región en la que deseas crear la instancia. Para obtener información sobre las ubicaciones admitidas, consulta Ubicaciones.
Una vez que 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": "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" } } }En el ejemplo anterior,
test-098765432109.us-central1.sourcemanager.deves la URL HTML de la instancia.Copia la URL HTML del comando de verificación de estado creado correctamente. Necesitarás esta URL para acceder a la instancia a través de su interfaz web.
API
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_IDes el ID permanente de la instancia. El ID solo debe usar letras minúsculas, números y guiones, y debe comenzar con una letra.LOCATIONes la región en la que deseas crear la instancia. Para obtener información sobre las ubicaciones admitidas, consulta Ubicaciones.PROJECT_IDes el ID del proyecto en el que deseas crear una instancia.-des una marca de datos HTTP POST opcional que se puede usar para especificar una clave 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_PROJECTpor el proyecto en el que creaste la clave.KEY_LOCATIONpor la ubicación de la clave.KEYRING_NAMEpor el nombre del llavero de claves.KEYpor el nombre de la clave.
Se inicia una operación de larga duración para crear la instancia. El resultado luce 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 }En el ejemplo anterior,
projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2ees elOPERATION_NAME.La creación de la instancia tarda hasta 60 minutos.
Copia el
OPERATION_NAME.Ejecuta el siguiente comando para verificar el estado de la operación create:
curl \ -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/OPERATION_NAMEEn el ejemplo anterior, OPERATION_NAME es el nombre de la operación de la respuesta de su comando create.
Una vez que 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": "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" } } }En el ejemplo anterior,
test-098765432109.us-central1.sourcemanager.deves la URL HTML de la instancia.Copia la URL HTML del comando de verificación de estado creado correctamente. Necesitarás esta URL para acceder a la instancia a través de su interfaz web.
Terraform
Para crear una instancia de Secure Source Manager con Terraform, usa el
google_secure_source_manager_instance
recurso.
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 de creador de repositorios (roles/securesourcemanager.repoCreator) en el
proyecto de la instancia y el rol de creador de repositorios de instancias
(roles/securesourcemanager.instanceRepositoryCreator) en la instancia de Secure Source Manager.
-
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.devReemplaza 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 te preguntará si deseas otorgar acceso a
sourcemanager.deva 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, y todos los problemas y solicitudes de extracción asociados desde la interfaz web.
¿Qué sigue?
- Otorga a los usuarios acceso a la instancia.
- Crea y clona un repositorio.
- Otorga a los usuarios acceso al repositorio.
- Controla el acceso con IAM.