Las instancias de Private Service Connect no exponen ningún endpoint a Internet público. Cuando creas una instancia de Private Service Connect, se crean endpoints para proporcionar acceso SSH (Git) y HTTPS (Git, interfaz web y API) a la instancia. A los endpoints se les deben asignar direcciones IP en tu red privada. Todo el tráfico hacia y desde la instancia de Private Service Connect pasa por los endpoints de Private Service Connect.
Para obtener más información sobre cómo usar Private Service Connect para acceder a servicios gestionados de forma privada desde una red de VPC, consulta Private Service Connect.
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.
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
Google Cloud CLI:gcloud components install beta
-
Rol Administrador de contextos de acceso (
roles/accesscontextmanager.policyAdmin
) en la organización -
Rol de propietario de la instancia (
roles/sercuresourcemanager.instanceOwner
) en la instancia -
Para crear una identidad de servicio y un pool de autoridades de certificación, sigue estos pasos:
Gestor operativo del Servicio de Autoridades de Certificación (
roles/privateca.caManager
) en la organización Ejecuta el siguiente comando para crear una identidad de servicio para la API Secure Source Manager en tu proyecto:
gcloud beta services identity create \ --service=securesourcemanager.googleapis.com \ --project=PROJECT_ID
Donde
PROJECT_ID
es el ID de tu proyecto.El resultado debería ser similar al siguiente:
Service identity created: service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.com
Donde
service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.com
es el agente de servicio de Secure Source Manager yPROJECT_NUM
es el número de tu proyecto.Crea un grupo de autoridades de certificación (CA) con solicitudes de certificados basadas en CSR permitidas.
Crea una AC. Puedes crear una AC raíz o una AC subordinada en función de tus necesidades.
- Para crear una AC raíz, sigue las instrucciones que se indican en Crear una AC raíz.
- Para crear una AC subordinada a partir de una AC principal en Google Cloud, sigue las instrucciones de Crear una AC subordinada.
- Para crear una AC subordinada a partir de una AC externa, sigue las instrucciones que se indican en el artículo Crear una AC subordinada a partir de una AC externa.
Para obtener más información sobre las diferencias entre las ACs raíz y las subordinadas, consulta Determinar la configuración de la autoridad de certificación.
Concede permisos a la identidad de servicio de la API Secure Source Manager para solicitar nuevos certificados en el grupo de ACs:
gcloud privateca pools add-iam-policy-binding CA_POOL_NAME \ --location=CA_LOCATION \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com' \ --role='roles/privateca.certificateRequester' \ --project=CA_PROJECT_ID
Haz los cambios siguientes:
CA_POOL_NAME
con el nombre que le has dado a tu grupo de ACs.CA_LOCATION
con la región o la zona de tu grupo de ACs.PROJECT_NUMBER
con el número de proyecto en el que está habilitado Secure Source Manager. Para encontrar el número de proyecto, sigue las instrucciones que se indican en el artículo Identificar proyectos.CA_PROJECT_ID
por el ID del proyecto en el que has creado el grupo de CAs.
INSTANCE_ID
con el nombre que quieras asignar a la instancia.LOCATION
con la región en la que quieras crear la instancia. Para ver las ubicaciones admitidas, consulta Ubicaciones.PROJECT_ID
con el nombre del proyecto en el que quieras crear una instancia.CA_PROJECT
con el nombre del proyecto del grupo de ACs, solo si usas tu propio certificado de AC.CA_LOCATION
con la región en la que has creado el grupo de AC, solo si usas tu propio certificado de AC.CA_POOL_NAME
con el nombre del grupo de AC, solo si usas tu propio certificado de AC.INSTANCE_ID
con el nombre que quieras asignar a la instancia.LOCATION
con la región en la que quieras crear la instancia. Para ver las ubicaciones admitidas, consulta Ubicaciones.PROJECT_ID
con el nombre del proyecto en el que quieras crear una instancia.CA_PROJECT
con el nombre del proyecto del grupo de ACs, solo si usas tu propio certificado de AC.CA_LOCATION
con la región en la que has creado el grupo de AC, solo si usas tu propio certificado de AC.CA_POOL_NAME
con el nombre del grupo de AC, solo si usas tu propio certificado de AC.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.Para crear puntos finales de Private Service Connect, sigue las instrucciones que se indican en el artículo Acceder a servicios publicados a través de endpoints.
Para obtener los URIs de los archivos adjuntos de servicio HTTP y SSH de tu instancia de Secure Source Manager, ejecuta el siguiente comando:
gcloud beta source-manager instances describe INSTANCE_ID \ --region=LOCATION
Haz los cambios siguientes:
INSTANCE_ID
con el nombre de tu instancia. Para ver las instancias de una región determinada, puedes ejecutargcloud beta source-manager instances list --region=LOCATION
.LOCATION
con la ubicación de tu instancia. Para obtener información sobre las ubicaciones admitidas, consulta Ubicaciones.
La salida es similar a la siguiente:
createTime: '2023-09-22T18:21:35.729454612Z' hostConfig: api: my-project-012345678901-api.us-central1.p.sourcemanager.dev gitHttp: my-project-012345678901-git.us-central1.p.sourcemanager.dev gitSsh: my-project-012345678901-ssh.us-central1.p.sourcemanager.dev html: my-project-012345678901.us-central1.p.sourcemanager.dev name: projects/my-project/locations/us-central1/instances/my-instance privateConfig: caPool: projects/my-project/locations/us-central1/caPools/my-ca-pool httpServiceAttachment: projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/http-psc isPrivate: true sshServiceAttachment: projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/ssh-psc state: ACTIVE updateTime: '2023-09-22T18:39:53.390563549Z'
Donde:
projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/http-psc
es el URI del adjunto de servicio HTTP de tu instancia.projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/ssh-psc
es el URI de adjunto de servicio SSH de tu instancia.
Una vez que hayas creado los endpoints de Private Service Connect, debes configurar los registros DNS privados. Para obtener instrucciones sobre cómo configurar registros DNS privados, consulta Configurar DNS manualmente.
- Asigna los valores de
hostConfig.html
,hostConfig.api
yhostConfig.gitHttp
a la dirección IP interna de la vinculación de servicio HTTP. - Asigna el valor de
hostConfig.ssh
a la dirección IP interna de la vinculación de servicio SSH.
Por ejemplo, en el resultado del ejemplo anterior, el valor de
Google CloudhostConfig.html
esmy-project-012345678901.us-central1.p.sourcemanager.dev
.- Asigna los valores de
Para descargar tu CA, ejecuta el siguiente comando:
gcloud privateca pools get-ca-certs CA_POOL \ --location LOCATION \ --output-file=root-cert.pem \ --project PROJECT
Para hacer llamadas a la API de tu instancia, envía el certificado de la CA a la API del plano de datos de Secure Source Manager.
Por ejemplo, el siguiente comando transfiere el certificado de CA
root-cert.pem
a la API Secure Source Manager para mostrar los repositorios de la instancia privadamy-instance
en la ubicaciónus-central1
.curl \ --cacert root-cert.pem \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://my-instance-01234567890-api.us-central1.sourcemanager.dev/v1/projects/01234567890/locations/us-central1/repositories
- Conecta Cloud Build a una instancia de Secure Source Manager de Private Service Connect.
- Configura Secure Source Manager en un perímetro de Controles de Servicio de VPC.
Roles obligatorios
Para obtener los permisos que necesitas para crear una instancia de Private Service Connect Secure Source Manager, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
Crear una identidad de servicio y un grupo de autoridades de certificación
En esta sección se describe qué debes hacer si utilizas tu propio certificado de AC. Para usar un certificado gestionado por Google, no tienes que hacer nada más que ejecutar el gcloud beta source-manager instances create
comando
sin crear una identidad de servicio ni un grupo de ACs.
Si utilizas tu propio certificado de AC en lugar de un certificado gestionado porGoogle, debes especificar el nombre de un grupo de autoridades de certificación (AC) al crear una instancia privada de Secure Source Manager. Se envía una solicitud para firmar el certificado SSL HTTPS de la instancia al grupo de CAs.
Crear una instancia de Secure Source Manager de Private Service Connect
gcloud
Crea una instancia de Private Service Connect con el siguiente comando:
gcloud beta source-manager instances create INSTANCE_ID \
--region=LOCATION \
--project=PROJECT_ID \
--is-private \
--ca-pool=projects/CA_PROJECT/locations/CA_LOCATION/caPools/CA_POOL_NAME
Haz los cambios siguientes:
API
Crea una instancia de Private Service Connect con el siguiente comando:
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 '{"private_config":{"is_private":true,"ca_pool":"projects/CA_PROJECT/locations/CA_LOCATION/caPools/CA_POOL_NAME"}}'
Haz los cambios siguientes:
Se inicia una operación de creación de instancias de larga duración. Se tarda hasta 60 minutos en crear la instancia. El resultado debería ser similar al siguiente:
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
.
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, ejecuta el siguiente comando:
gcloud beta source-manager operations describe OPERATION_NAME \
--region=LOCATION
Haz los cambios siguientes:
Una vez que se haya creado la instancia, los endpoints de Private Service Connect httpServiceAttachment
y sshServiceAttachment
, junto con los nombres de host de html
, api
, gitHttp
y gitSsh
, se mostrarán en el resultado.
Acceder a la instancia privada
Para acceder a tu instancia de Private Service Connect, puedes crear puntos finales de Private Service Connect basados en reglas de reenvío o backends de Private Service Connect basados en balanceadores de carga.
Los backends de Private Service Connect basados en balanceadores de carga son más flexibles y te permiten integrar otros servicios, como Cloud Build, pero son más complejos y tienen facturación adicional. Google Cloud
Los puntos finales de Private Service Connect basados en reglas de reenvío son más sencillos y cuestan menos, pero no puedes conectarte a Cloud Build ni a otros servicios deGoogle Cloud .
Para configurar backends de Private Service Connect basados en balanceadores de carga para tu instancia de Private Service Connect y conectarla a Cloud Build, consulta Conectar Cloud Build a una instancia de Private Service Connect.
Configurar endpoints de Private Service Connect basados en reglas de reenvío
Usar la AC con la API Secure Source Manager
Secure Source Manager tiene un plano de control y un plano de datos. Tu instancia de Gestor de Fuentes Seguras aloja directamente los endpoints del plano de datos, por lo que debes conectarte al nombre de host de la API de tu instancia para acceder a ellos.
Para usar tu instancia privada de Secure Source Manager, debes usar la AC que has creado en la sección Crear una identidad de servicio y un grupo de autoridades de certificación.