Configura políticas de conexión de servicio

En esta página, se describe cómo un administrador de red puede configurar las políticas de conexión de servicio para automatizar la conectividad privada a un servicio administrado.

Antes de comenzar

Roles obligatorios

Para obtener los permisos que necesitas para configurar una red y crear una política de conexión de servicio, pídele a tu administrador que te otorgue el rol de Administrador de red de Compute (roles/compute.networkAdmin) de IAM en tu proyecto.

Para usar las políticas de conexión de servicio con la VPC compartida, las Cuentas de servicio de conectividad de red deben tener roles en los proyectos host y de servicio. Estas cuentas de servicio se configuran automáticamente cuando se crea una política de conexión de servicio, pero los roles se pueden quitar de forma manual. Si ves errores sobre permisos faltantes, es posible que un administrador de cuenta de servicio deba volver a otorgar los roles. Para obtener más información, consulta Configura cuentas de servicio para la VPC compartida.

Crea una política de conexión de servicio

Una política de conexión de servicio te permite autorizar la clase de servicio específica para crear una conexión de Private Service Connect entre redes de VPC de productor y consumidor.

Puedes crear un máximo de una política para cada combinación de clase de servicio, región y red de VPC. Una política determina la automatización de la conectividad del servicio para esa combinación específica. Cuando configuras una política, seleccionas una subred. La subred se usa para asignar direcciones IP a los extremos que se crean a través de la política. Puedes volver a usar la misma subred en varias políticas de conexión si las políticas comparten la misma región.

Por ejemplo, si deseas usar la automatización de conectividad de servicio con dos servicios en tres regiones diferentes, crea seis políticas. Puedes usar un mínimo de tres subredes: una para cada región.

Después de crear una política de conexión de servicio, solo puedes actualizar la subred y el límite de conexiones. Si necesitas actualizar otros campos, borra la política y crea uno nuevo.

Console

  1. En la consola de Google Cloud, ve a la página Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Políticas de conexión.

  3. Haz clic en Crear política de conexión.

  4. Ingresa un Nombre para la política de conexión.

  5. Especifica la clase de servicio.

    • Para los servicios de Google, haz lo siguiente:
      1. En Clase de servicio de origen, selecciona Servicios de Google.
      2. Selecciona la clase de servicio del menú Clase de servicio.
    • Para servicios de terceros, haz lo siguiente:
      1. En Clase de servicio de origen, selecciona Servicios de terceros.
      2. En Clase de servicio, ingresa el nombre de la clase de servicio.
  6. En la sección Alcance de los extremos de destino, selecciona una Red y una Región a las que se aplicará esta política.

  7. En la sección Política, selecciona una o más subredes en el menú Subredes. Las subredes se usan para asignar direcciones IP a los extremos.

  8. Especifica un Límite de conexión para la política (opcional). El límite determina cuántos extremos se pueden crear con esta política de conexión. Si se omite, no hay límite.

  9. Haz clic en Crear política.

gcloud

Usa el comando service-connection-policies create

gcloud network-connectivity service-connection-policies create POLICY_NAME \
    --network=NETWORK \
    --project=PROJECT_ID \
    --region=REGION \
    --service-class=SERVICE_CLASS \
    --subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \
    --psc-connection-limit=LIMIT \
    --description=DESCRIPTION

Reemplaza lo siguiente:

  • POLICY_NAME: el nombre de la política de conexión del servicio.
  • NETWORK: la red a la que se aplicará esta política.
  • PROJECT_ID: el ID del proyecto o el número del proyecto de la red de VPC. En el caso de las redes de VPC compartida, las políticas de conexión de servicio se deben implementar en el proyecto host y no son compatibles con los proyectos de servicio.
  • REGION: la región a la que se aplicará esta política. Debe existir la misma política para cada región en la que desees automatizar la conectividad del servicio.
  • SERVICE_CLASS: el identificador de recursos proporcionado por el productor de la clase de servicio.
  • SUBNETS: una o más subredes de consumidor regulares que se usan para asignar direcciones IP a los extremos de Private Service Connect. Estas direcciones IP se asignan automáticamente y se devuelven al grupo de la subred a medida que se crean y borran las instancias de servicio administrado. Las subredes deben estar en la misma región que la política de conexión de servicio. Puedes volver a usar la misma subred en varias políticas de conexión si las políticas comparten la misma región. Puedes ingresar varias subredes en una lista separada por comas.
  • LIMIT: La cantidad máxima de extremos que se pueden crear con esta política. Si no se especifica, no hay límite.
  • DESCRIPTION: Es una descripción opcional de la política de conexión de servicio.

Por ejemplo, el siguiente comando crea una política de conexión de servicio para la clase de servicio gcp-database-service que asigna direcciones IP desde la subred managed-services. Se puede crear un máximo de 10 extremos de Private Service Connect con esta política. Los extremos deben crearse en proyectos que se encuentren en la misma organización que la instancia de servicio administrado.

gcloud network-connectivity service-connection-policies create gcp-database-cxn-policy \
    --network=default \
    --project=my-project \
    --region=us-central1 \
    --service-class=gcp-database-service \
    --subnets=managed-service-subnet \
    --psc-connection-limit=10

Terraform

Puedes usar el recurso de Terraform para crear una política de conexión de servicio.

# Create a VPC network
resource "google_compute_network" "default" {
  name                    = "consumer-network"
  auto_create_subnetworks = false
}

# Create a subnetwork
resource "google_compute_subnetwork" "default" {
  name          = "consumer-subnet"
  ip_cidr_range = "10.0.0.0/16"
  region        = "us-central1"
  network       = google_compute_network.default.id
}

# Create a service connection policy
resource "google_network_connectivity_service_connection_policy" "default" {
  name          = "service-connection-policy"
  location      = "us-central1"
  service_class = "gcp-memorystore-redis"
  network       = google_compute_network.default.id
  psc_config {
    subnetworks = [google_compute_subnetwork.default.id]
    limit       = 2
  }
}

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.

API

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID de tu proyecto.
  • REGION: La región de la política de conexión del servicio.
  • POLICY_NAME: el nombre de la política de conexión del servicio.
  • DESCRIPTION: Es una descripción opcional de la política de conexión de servicio.
  • NETWORK: La red de la política de conexión del servicio.
  • LIMIT: La cantidad máxima de extremos que se pueden crear con esta política. Si no se especifica, no hay límite.
  • SUBNET: una o más subredes de consumidor regulares que se usan para asignar direcciones IP a los extremos de Private Service Connect. Estas direcciones IP se asignan automáticamente y se muestran al grupo de la subred a medida que se crean y borran las instancias de servicio administrado. Las subredes deben estar en la misma región que la política de conexión de servicio. Puedes volver a usar la misma subred en varias políticas de conexión si las políticas comparten la misma región. Puedes ingresar varias URLs de subredes en una lista separada por comas.
  • SERVICE_CLASS: el identificador de recursos proporcionado por el productor de la clase de servicio.

Método HTTP y URL:

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies?serviceConnectionPolicyId=POLICY_NAME

Cuerpo JSON de la solicitud:

{
  "description": "DESCRIPTION",
  "network": "projects/PROJECT_ID/global/networks/NETWORK",
  "pscConfig": {
    "limit": "LIMIT",
    "subnetworks": [
      "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
    ]
  },
  "serviceClass": "SERVICE_CLASS"
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/project-id/locations/us-central1/operations/operation-1692118768698-602f91a204523-8c6a2d93-d5c20a6a",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
    "createTime": "2023-08-15T16:59:29.236110917Z",
    "target": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Enumera las políticas de conexión de servicios

Console

  1. En la consola de Google Cloud, ve a la página Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Políticas de conexión.

  3. Se muestran las políticas de conexión.

gcloud

Usa el comando service-connection-policies list.

gcloud network-connectivity service-connection-policies list \
    --region=REGION

Reemplaza REGION por la región en la que deseas enumerar las políticas de conexión de servicio.

API

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID de tu proyecto.
  • REGION: Es la región en la que se enumerarán las políticas de conexión de servicio.

Método HTTP y URL:

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "serviceConnectionPolicies": [
    {
      "name": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-1",
      "createTime": "2023-08-15T15:33:54.712819865Z",
      "updateTime": "2023-08-15T15:33:54.945630882Z",
      "description": "descriptor",
      "network": "projects/project-id/global/networks/network-two",
      "serviceClass": "service-class",
      "infrastructure": "PSC",
      "pscConfig": {
        "subnetworks": [
          "projects/project-id/regions/us-west1/subnetworks/us-west1-subnet"
        ],
        "limit": "12"
      },
      "etag": "zCqDFBG1dS7B4gNdJKPR98YMUXpSrBIz0tZB_hwOIZI"
    },
    {
      "name": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-2",
      "createTime": "2023-08-15T16:59:29.230257109Z",
      "updateTime": "2023-08-15T16:59:29.508994923Z",
      "description": "descriptor",
      "network": "projects/project-id/global/networks/custom-test",
      "serviceClass": "service-class",
      "infrastructure": "PSC",
      "pscConfig": {
        "subnetworks": [
          "projects/project-id/regions/us-central1/subnetworks/subnet-one"
        ],
        "limit": "25"
      },
      "etag": "nB603i61nRGMZpNjWoWMM6wRzsgM8QN9C9v5QFLyOa8"
    }
  ]
}

Describe una política de conexión de servicio

Console

  1. En la consola de Google Cloud, ve a la página Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Políticas de conexión.

  3. Haz clic en la política de conexión de servicio que deseas ver.

gcloud

Usa el comando service-connection-policies describe.

gcloud network-connectivity service-connection-policies describe POLICY_NAME \
    --region=REGION

Reemplaza lo siguiente:

  • POLICY_NAME: Es el nombre de la política de conexión de servicio que deseas describir.
  • REGION: la región de la política de conexión del servicio que deseas describir.

API

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID de tu proyecto.
  • REGION: La región de la política de conexión del servicio.
  • POLICY_NAME: Es el nombre de la política de conexión de servicio que se describirá.

Método HTTP y URL:

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
  "createTime": "2023-08-15T16:59:29.230257109Z",
  "updateTime": "2023-08-15T16:59:29.508994923Z",
  "description": "description",
  "network": "projects/project-id/global/networks/custom-test",
  "serviceClass": "gcp-memorystore-redis",
  "infrastructure": "PSC",
  "pscConfig": {
    "subnetworks": [
      "projects/project-id/regions/us-central1/subnetworks/subnet-one"
    ],
    "limit": "25"
  },
  "etag": "nB603i61nRGMZpNjWoWMM6wRzsgM8QN9C9v5QFLyOa8"
}

Actualiza una política de conexión de servicio

Puedes actualizar las subredes y el límite de conexiones para una política de conexión de servicio.

Si quitas una subred de la política de conexión de servicio, se aplica lo siguiente:

  • Los extremos existentes de Private Service Connect no se ven afectados.
  • Los extremos nuevos no usan la subred que se quitó.

Si actualizas el límite de conexiones de una política de conexión de servicio, se aplica lo siguiente:

  • Los extremos existentes no se ven afectados.
  • Si el nuevo límite de conexión es inferior a la cantidad existente de extremos asociados con la política, la automatización de la conectividad del servicio bloquea la creación de extremos nuevos que usan esta política.
  • Si el nuevo límite de conexión es mayor que la cantidad existente de extremos asociados con la política, los extremos que antes estaban bloqueados por el límite de conexiones, ahora se puede crear.

Si actualizas una política de conexión de servicio y no especificas un límite de conexiones, la política actualizada no tiene límite de conexión.

Console

  1. En la consola de Google Cloud, ve a la página Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Políticas de conexión.

  3. Haz clic en la política de servicio que deseas editar.

  4. Haz clic en Editar.

  5. Para actualizar las subredes de la política, haz lo siguiente:

    1. Haz clic en Subredes y, luego, selecciona las subredes que quieras asociar con esta política.
    2. Haz clic en Aceptar.
  6. Para actualizar el límite de conexiones de la política, ingresa un nuevo valor en el campo Límite de la conexión.

  7. Haz clic en Actualizar política.

gcloud

Usa el comando service-connection-policies update.

gcloud network-connectivity service-connection-policies update POLICY_NAME \
    --region=REGION
    --project=PROJECT_ID
    --subnets=SUBNETS
    --psc-connection-limit=LIMIT
  • POLICY_NAME: el nombre de la política de conexión del servicio.
  • REGION: Es la región de la política de conexión del servicio. No puedes actualizar la región de una política.
  • PROJECT_ID: El ID del proyecto o el número del proyecto de políticas.
  • SUBNETS: una o más subredes de consumidor regulares que se usan para asignar direcciones IP a los extremos de Private Service Connect. Estas direcciones IP se asignan automáticamente y se devuelven al grupo de la subred a medida que se crean y borran las instancias de servicio administrado. Las subredes deben estar en la misma región que la política de conexión de servicio. Puedes volver a usar la misma subred en varias políticas de conexión si las políticas comparten la misma región. Puedes ingresar varias subredes en una lista separada por comas.
  • LIMIT: La cantidad máxima de extremos que se pueden crear con esta política. Si no se especifica, no hay límite.

API

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID de tu proyecto.
  • REGION: La región de la política de conexión del servicio. No puedes actualizar la región de una política.
  • POLICY_NAME: el nombre de la política de conexión del servicio.
  • LIMIT: La cantidad máxima de extremos que se pueden crear con esta política. Si no se especifica, no hay límite.
  • SUBNET: una o más subredes de consumidor regulares que se usan para asignar direcciones IP a los extremos de Private Service Connect. Estas direcciones IP se asignan automáticamente y se muestran al grupo de la subred a medida que se crean y borran las instancias de servicio administrado. Las subredes deben estar en la misma región que la política de conexión de servicio. Puedes volver a usar la misma subred en varias políticas de conexión si las políticas comparten la misma región. Puedes ingresar varias URLs de subredes en una lista separada por comas.
  • NETWORK: La red de la política de conexión del servicio.

Método HTTP y URL:

PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME

Cuerpo JSON de la solicitud:

{
  "pscConfig": {
    "limit": "LIMIT",
    "subnetworks": [
      "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
    ]
  },
  "network": "projects/PROJECT_ID/global/networks/NETWORK"
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/project-id/locations/us-central1/operations/operation-1692118768698-602f91a204523-8c6a2d93-d5c20a6a",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
    "createTime": "2023-08-15T16:59:29.236110917Z",
    "target": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Borra una política de conexión de servicio

Puedes borrar una política de conexión de servicio si terminaste de usar el servicio o quieres dejar de automatizar la conectividad. La eliminación de la política está bloqueada si las conexiones activas de Private Service Connect están asociadas con la política. Antes de borrar una política de conexión de servicio, borra todas las conexiones activas retirando todas las instancias de servicio asociadas.

Console

  1. En la consola de Google Cloud, ve a la página Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Políticas de conexión.

  3. Selecciona las políticas de conexión de servicio que deseas borrar y, luego, haz clic en Borrar.

gcloud

Usa el comando service-connection-policies delete

gcloud network-connectivity service-connection-policies delete POLICY_NAME \
    --region=REGION

Reemplaza lo siguiente:

  • POLICY_NAME: el nombre de la política de conexión del servicio que deseas borrar.
  • REGION: la región de la política de conexión del servicio que deseas borrar.

API

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID de tu proyecto.
  • REGION: La región de la política de conexión del servicio.
  • POLICY_NAME: el nombre de la política de conexión de servicio que se borrará.

Método HTTP y URL:

DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/project-id/locations/us-central1/operations/operation-1692128792549-602fb6f98194a-e0275435-36edc095",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
    "createTime": "2023-08-15T19:46:32.605032867Z",
    "target": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Configura cuentas de servicio para la VPC compartida

Las cuentas de servicio se configuran de forma automática cuando usas políticas de conexión de servicio con VPC compartida, pero los roles se pueden quitar de forma manual. Si ves errores sobre permisos faltantes, intenta otorgar los roles de nuevo.

Para otorgar los roles necesarios, un Administrador de cuenta de servicio puede hacer lo siguiente.

Otorga roles a la cuenta de servicio en el proyecto de servicio

gcloud

  1. Otorga el Rol de agente de servicio de conectividad de red (roles/networkconnectivity.serviceAgent) a la Cuenta de servicio de conectividad de red del servicio del proyecto. Otorga el rol en el proyecto.

    gcloud projects add-iam-policy-binding SERVICE_PROJECT_NUMBER \
        --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \
        --role=roles/networkconnectivity.serviceAgent
    

    Reemplaza SERVICE_PROJECT_NUMBER por el número del proyecto de servicio.

  2. Otorga el Rol Usuario de la red de Compute (roles/compute.networkUser) a la Cuenta de servicio de conectividad de red del proyecto de servicio. Realiza una de las siguientes acciones.

    • Otorga el rol en el proyecto host.

      gcloud projects add-iam-policy-binding HOST_PROJECT_NUMBER \
          --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \
          --role=roles/compute.networkUser
      

      Reemplaza HOST_PROJECT_NUMBER por el número del proyecto host.

    • Otorga el rol en cada una de las subredes del proyecto host que se asociada con la política de conexión de servicio. Usa el siguiente comando para cada subred.

      gcloud compute networks subnets add-iam-policy-binding SUBNET \
          --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \
          --role=roles/compute.networkUser \
          --region=REGION \
          --project=HOST_PROJECT_NUMBER
      

      Reemplaza lo siguiente:

      • SUBNET: es el nombre de la subred asociada a tu política de conexión de servicio.
      • REGION: la región de la subred.

Otorga el rol a la cuenta de servicio en el proyecto host

gcloud

  1. Otorga el Rol de agente de servicio de conectividad de red (roles/networkconnectivity.serviceAgent) a la cuenta de servicio de conectividad de red del proyecto host. Otorga el rol en el proyecto host.

    gcloud projects add-iam-policy-binding HOST_PROJECT_NUMBER \
        --member=serviceAccount:service-HOST_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \
        --role=roles/networkconnectivity.serviceAgent
    

    Reemplaza HOST_PROJECT_NUMBER por el número del proyecto host.

¿Qué sigue?