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 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, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
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, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
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 de
propietario de la instancia de Secure Source Manager (roles/securesourcemanager.instanceOwner) en el proyecto de Google Cloud .
Los roles de Secure Source Manager no aparecen en la consola de Google Cloud hasta que se hayan otorgado 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 encripta los datos en reposo automáticamente 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 los IDs de instancia ni en los pares clave-valor de las etiquetas, ya que no se encriptan con CMEK.
Si creas 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
Donde PROJECT_ID es el ID del proyecto en el que
crearás tu instancia de Secure Source Manager.
Después de crear el agente de servicio de Secure Source Manager, debes otorgar
el rol de agente de servicio de Secure Source Manager
(roles/securesourcemanager.serviceAgent) a la principal
service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com
o la creación de la instancia fallará.
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 autenticarte 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 debe usar solo 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 compatibles, consulta Ubicaciones.PROJECT_IDes el ID del proyecto en el que deseas crear una instancia.-kms-keyes una marca opcional. Incluye 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 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_NAMEcon el nombre del llavero de claves.KEYpor el nombre de la clave.
Se inicia una operación de creación de instancias de larga duración. El resultado se ve 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-a9b97a2eDonde
projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2ees elOPERATION_NAME.La creación de la instancia tarda hasta 60 minutos.
Toma nota del
OPERATION_NAME, ya que lo necesitarás para verificar el estado de la operación.Para verificar el estado de la operación
create, ejecuta el siguiente comando: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 compatibles, 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" } } }Donde
test-098765432109.us-central1.sourcemanager.deves la URL HTML de la instancia.Copia la URL HTML del comando de verificación de estado que se creó 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 autenticarte 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 debe usar solo 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 compatibles, 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 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_PROJECTpor el proyecto en el que creaste la clave.KEY_LOCATIONpor la ubicación de la clave.KEYRING_NAMEcon el nombre del llavero de claves.KEYpor el nombre de la clave.
Se inicia una operación de creación de instancias de larga duración. El resultado se ve 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-a9b97a2ees elOPERATION_NAME.La creación de la instancia tarda hasta 60 minutos.
Copia el
OPERATION_NAME.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_NAMEEn el ejemplo anterior, OPERATION_NAME es el nombre de la operación de la respuesta a tu comando de creación.
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" } } }Donde
test-098765432109.us-central1.sourcemanager.deves la URL HTML de la instancia.Copia la URL HTML del comando de verificación de estado que se creó 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 recurso
google_secure_source_manager_instance.
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 Google Cloud de la instancia. Para obtener información sobre cómo identificar proyectos, consulta Identifica proyectos.
- LOCATION por la región de la instancia.
Aparecerá una pantalla de OAuth en la que se te preguntará si quieres otorgar a
sourcemanager.devacceso 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 las solicitudes de extracción asociados, desde la interfaz web.
¿Qué sigue?
- Otorga acceso a la instancia a los usuarios.
- Crea y clona un repositorio.
- Otorga acceso al repositorio a los usuarios.
- Controla el acceso con IAM.