Las instancias de Private Service Connect no exponen ningún extremo a la Internet pública. Cuando creas una instancia de Private Service Connect, se crean extremos para proporcionar acceso SSH (Git) y HTTPS (Git, interfaz web, API) a la instancia. A los extremos 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 extremos de Private Service Connect.
Para obtener más información sobre el uso de Private Service Connect para acceder a servicios administrados de forma privada desde una red de VPC, consulta Private Service Connect.
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.
Antes de comenzar
-
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.
-
Enable the Secure Source Manager API.
-
Install the Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a 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.
-
Enable the Secure Source Manager API.
-
Install the Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI 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
-
Rol de administrador de Access Context Manager (
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 grupo de autoridades certificadoras:
Administrador de operaciones del servicio de AC (
roles/privateca.caManager
) en la organización Ejecuta el siguiente comando para crear una identidad de servicio para la API de Secure Source Manager en tu proyecto:
gcloud beta services identity create \ --service=securesourcemanager.googleapis.com \ --project=PROJECT_ID
En el comando anterior,
PROJECT_ID
es el ID del proyecto.El resultado es similar a este:
Service identity created: service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.com
En el ejemplo anterior,
service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.com
es el agente de servicio de Secure Source Manager yPROJECT_NUM
es tu número de proyecto.Crea un grupo de autoridades certificadoras (AC) con solicitudes de certificados basadas en CSR permitidas.
Crea una CA. Puedes crear una AC raíz o subordinada según tus necesidades.
- Para crear una CA raíz, sigue las instrucciones en Crea una CA raíz.
- Para crear una CA subordinada a partir de una CA principal en Google Cloud, sigue las instrucciones en Crea una CA subordinada.
- Para crear una CA subordinada a partir de una CA externa, sigue las instrucciones en Crea una CA subordinada a partir de una CA externa.
Para obtener más información sobre las diferencias entre las AC raíz y las subordinadas, consulta Cómo determinar la configuración de la autoridad de certificación.
Otorga permisos a la identidad del servicio de la API de Secure Source Manager para solicitar certificados nuevos en el grupo de AC:
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
Reemplaza lo siguiente:
CA_POOL_NAME
por el nombre que le asignaste a tu grupo de CA.CA_LOCATION
por la región o zona de tu grupo de CA.PROJECT_NUMBER
por el número del proyecto en el que está habilitado Secure Source Manager. Para encontrar el número de proyecto, sigue las instrucciones que se indican en Identifica proyectos.CA_PROJECT_ID
por el ID del proyecto en el que creaste el grupo de CA.
INSTANCE_ID
por el nombre que deseas darle a la instanciaLOCATION
por la región en la que deseas crear la instancia. Para conocer las ubicaciones compatibles, consulta Ubicaciones.PROJECT_ID
por el nombre del proyecto en el que deseas crear una instancia.CA_PROJECT
con el nombre del proyecto del grupo de CA, solo si usas tu propio certificado de CACA_LOCATION
con la región en la que creaste el grupo de CA, solo si usas tu propio certificado de CACA_POOL_NAME
con el nombre del grupo de CA, solo si usas tu propio certificado de CAINSTANCE_ID
por el nombre que deseas darle a la instanciaLOCATION
por la región en la que deseas crear la instancia. Para conocer las ubicaciones compatibles, consulta Ubicaciones.PROJECT_ID
por el nombre del proyecto en el que deseas crear una instancia.CA_PROJECT
con el nombre del proyecto del grupo de CA, solo si usas tu propio certificado de CACA_LOCATION
con la región en la que creaste el grupo de CA, solo si usas tu propio certificado de CACA_POOL_NAME
con el nombre del grupo de CA, solo si usas tu propio certificado de CAOPERATION_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.Para crear extremos de Private Service Connect, sigue las instrucciones que se indican en Accede a los servicios publicados a través de extremos.
Para obtener los URI de las vinculaciones 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
Reemplaza lo siguiente:
INSTANCE_ID
por el nombre de tu instancia Para enumerar las instancias en una región determinada, puedes ejecutargcloud beta source-manager instances list --region=LOCATION
.LOCATION
por la ubicación de tu instancia. Para obtener información sobre las ubicaciones compatibles, consulta Ubicaciones.
El resultado se ve de la manera 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'
Aquí:
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 del adjunto de servicio SSH de tu instancia.
Después de crear los extremos de Private Service Connect, debes configurar registros DNS privados. Para obtener instrucciones sobre cómo configurar registros DNS privados, consulta Configura DNS de forma manual.
- Asigna el valor de
hostConfig.html
,hostConfig.api
yhostConfig.gitHttp
a la dirección IP interna de la vinculación del servicio HTTP. - Asigna el valor de
hostConfig.ssh
a la dirección IP interna de la vinculación del servicio SSH.
Por ejemplo, en el resultado del ejemplo anterior, el valor de
hostConfig.html
esmy-project-012345678901.us-central1.p.sourcemanager.dev
.- Asigna el valor 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 realizar llamadas a la API de tu instancia, pasa el certificado de CA a la API de Secure Source Manager del plano de datos.
Por ejemplo, el siguiente comando pasa el certificado de CA
root-cert.pem
a la API de Secure Source Manager para enumerar los repositorios en 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 del servicio de VPC.
Roles requeridos
Para obtener los permisos que necesitas para crear una instancia de Secure Source Manager de Private Service Connect, pídele a tu administrador que te otorgue los siguientes roles de IAM:
Crea una identidad de servicio y un grupo de autoridades certificadoras
En esta sección, se describe qué hacer si usas tu propio certificado de CA. Para usar un certificado administrado por Google, no necesitas hacer nada más que ejecutar el comando gcloud beta source-manager instances create
sin crear una identidad de servicio ni un grupo de CA.
Si usas tu propio certificado de CA, en lugar de usar un certificado administrado porGoogle, debes especificar un nombre de grupo de autoridades certificadoras (CA) cuando crees una instancia privada de Secure Source Manager. Se envía una solicitud para firmar el certificado SSL HTTPS de la instancia al grupo de CA.
Crea una instancia privada de Secure Source Manager con 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
Reemplaza lo siguiente:
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"}}'
Reemplaza lo siguiente:
Se inicia una operación de larga duración para crear una instancia. La creación de la instancia tarda hasta 60 minutos. El resultado es similar a este:
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
.
Ten en cuenta el OPERATION_NAME
, ya que lo necesitarás para verificar el estado de la operación.
Para verificar el estado de la operación, ejecuta el siguiente comando:
gcloud beta source-manager operations describe OPERATION_NAME \
--region=LOCATION
Reemplaza lo siguiente:
Una vez que se crea la instancia, los extremos de Private Service Connect httpServiceAttachment
y sshServiceAttachment
, junto con los nombres de host para html
, api
, gitHttp
y gitSsh
, se enumeran en el resultado.
Accede a la instancia privada
Para acceder a tu instancia de Private Service Connect, puedes crear extremos de Private Service Connect basados en reglas de reenvío o backends de Private Service Connect basados en balanceadores de cargas.
Los backends de Private Service Connect basados en balanceadores de cargas son más flexibles y te permiten realizar integraciones con otros servicios de Google Cloud como Cloud Build, pero son más complejos y tienen facturación adicional.
Los extremos de Private Service Connect basados en reglas de reenvío son más simples 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 cargas para tu instancia de Private Service Connect y conectarla a Cloud Build, consulta Conecta Cloud Build a una instancia de Private Service Connect.
Configura extremos de Private Service Connect basados en reglas de reenvío
Usa la CA con la API de Secure Source Manager
Secure Source Manager tiene un plano de control y un plano de datos. Tu instancia de Secure Source Manager aloja directamente los extremos 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 CA que creaste en la sección Crea un grupo de identidades de servicio y autoridades certificadoras.