Uso de extremo restringido

En esta página, se proporciona una descripción general de la restricción de política de la organización Restrict Endpoint Usage, que permite a los administradores empresariales controlar qué extremos de la API de Google Cloud se pueden usar dentro de su jerarquía de recursos de Google Cloud .

Los administradores pueden usar esta restricción para definir restricciones jerárquicas en los extremos de API Google Cloud permitidos, como los extremos globales, regionales o de ubicación. Por ejemplo, puedes configurar un proyecto para rechazar solicitudes al extremo bigquery.googleapis.com global, pero permitir solicitudes al extremo LOCATION-bigquery.googleapis.com de ubicación. Al restringir el uso del extremo de API global, las organizaciones pueden cumplir con los requisitos de cumplimiento, ya que se aseguran de que solo se usen los endpoints regionales o de ubicación permitidos.

La restricción Restrict Endpoint Usage se establece con una lista de bloqueo, lo que permite solicitudes a cualquier extremo de API de los servicios admitidos que no se hayan bloqueado de forma explícita.

Esta restricción controla el acceso en el tiempo de ejecución a todos los recursos dentro del alcance. Cuando se actualiza la política de la organización que contiene esta restricción, se aplica de inmediato a todos los recursos dentro del alcance de la política, con coherencia eventual.

Recomendamos que los administradores gestionen con cuidado las actualizaciones de las políticas de la organización que contengan esta restricción. Por ejemplo, deberías considerar establecer la política en el modo de ejecución de prueba para supervisar cómo un cambio en la política afectaría tus flujos de trabajo existentes antes de que se aplique.

Tipos de extremo de API

Un extremo de API (o extremo de servicio) es una URL que especifica la dirección de red de un servicio de la API de Google Cloud , como bigquery.googleapis.com. Los servicios deGoogle Cloud permiten el acceso a los recursos a través de diferentes tipos de extremos de API, incluidos los extremos globales, de ubicación y regionales. La compatibilidad con cada tipo depende del servicio.

Extremos de API globales

Los extremos de la API global no especifican la ubicación en el nombre de host de la URL. Estos extremos con alcance global proporcionan extremos de servicio de alta disponibilidad que finalizan la sesión de TLS lo más cerca posible del cliente, lo que minimiza la latencia cuando se entregan llamadas a la API desde una población de clientes dispersa a través de Internet. Sin embargo, estos extremos no proporcionan aislamiento regional ni cumplimiento de la residencia de datos.

Para las aplicaciones que pueden controlar las dependencias globales y necesitan un rendimiento rápido de la red global de Google, puedes usar extremos globales.

Los extremos globales tienen el siguiente formato:

SERVICE.googleapis.com

Aquí SERVICE es el nombre del servicio de Google Cloud , como storage, compute o bigquery.

Extremos de API de ubicación

Los extremos de la API regionales reemplazarán los extremos de ubicación. Los extremos de ubicación son nombres de host de servicio regionales o multirregionales que puedes usar para acceder a los datos en una ubicación determinada.

Sin embargo, los extremos locales no admiten las siguientes funciones:

  • Conexiones que cumplen con la residencia de datos desde las instalaciones locales a través de Internet
  • Aislamiento del dominio de falla

Los extremos de ubicación especifican la ubicación en el nombre de host de la URL y tienen el siguiente formato:

LOCATION-SERVICE.googleapis.com

  • LOCATION: El nombre de la región de Google Cloud , como us-central1, europe-west1 o us.
  • SERVICE: Es el nombre del servicio de Google Cloud , como storage, compute o bigquery.

Extremos de APIs regionales

Los extremos de API regionales proporcionan acceso a los servicios de Google Cloud a través de un extremo de API que se limita a una sola región de Google Cloud . El tráfico que se envía a un extremo regional se procesa y la conexión TLS finaliza por completo dentro de la región especificada.

En la mayoría de los servicios de Google Cloud , puedes usar extremos regionales para trabajar con recursos regionales dentro de la región especificada. Por lo general, las operaciones en recursos globales, recursos multirregionales y recursos regionales fuera de la región no se admiten desde el extremo regional.

Los extremos de API regionales especifican la ubicación como un subdominio. Los extremos regionales públicos tienen el siguiente formato:

SERVICE.REGION.rep.googleapis.com

  • SERVICE: Es el nombre del servicio de Google Cloud , como storage, compute o bigquery.
  • REGION: Es el nombre de la región Google Cloud , como us-central1 o europe-west1.

Los extremos de la API regional privada tienen el siguiente formato:

SERVICE.REGION.p.rep.googleapis.com

  • SERVICE: Es el nombre del servicio de Google Cloud , como storage, compute o bigquery.
  • REGION: Es el nombre de la región Google Cloud , como us-central1 o europe-west1.
  • .p.: Indica un destino privado previsto para la conectividad de Private Service Connect.

Limitaciones

La restricción Restrict Endpoint Usage controla la capacidad de usar extremos de API específicos para acceder a tus recursos. No se debe confundir con otras restricciones similares, como las siguientes:

Para evitar romper la infraestructura de servicio existente, prueba cualquier política de la organización nueva en proyectos y carpetas que no sean de producción y, luego, aplica la política gradualmente dentro de tu organización.

Esta restricción se aplica a un subconjunto específico de productos y tipos de recursos. Para obtener una lista de los servicios admitidos y detalles sobre el comportamiento de cada servicio, consulta la sección Extremos de API admitidos.

Para conocer los compromisos de almacenamiento de datos, consulta las Google Cloud Condiciones del Servicio y las Condiciones del Servicio Específicas. Las políticas de la organización que contienen la restricción de uso de extremo restringido no son compromisos de residencia de datos.

Establece la política de la organización

Si deseas establecer, cambiar o borrar una política de la organización, debes tener la función de Administrador de políticas de la organización.

Las restricciones de la política de la organización se pueden establecer a nivel de la organización, la carpeta y el proyecto. Cada política se aplica a todos los recursos dentro de su jerarquía de recursos correspondiente, pero se puede anular en niveles inferiores de la jerarquía de recursos.

Para obtener más información sobre la evaluación de políticas, consulta Comprende la evaluación de jerarquías.

La restricción de uso de extremo es un tipo de restricción de lista. Puedes agregar y quitar extremos de las listas de denied_values de la restricción.

Console

  1. Ve a la página Políticas de la organización en la consola de Google Cloud .

    Ir a Políticas de la organización

  2. En el selector de proyectos, selecciona la organización, la carpeta o el proyecto para el que deseas establecer la política de la organización.

  3. En la tabla de políticas de la organización, selecciona Restringir el uso de extremos para abrir su página Detalles de la política.

  4. Haz clic en Administrar política.

  5. En Se aplica a, selecciona Personalizar.

  6. En Aplicación de la política, elige cómo aplicar la herencia a esta política.

    1. Si deseas heredar la política de la organización del recurso superior y combinarla con esta, selecciona Combinar con superior.

    2. Si deseas anular las políticas de una organización existente, selecciona Reemplazar.

  7. Haz clic en Agregar una regla.

  8. En Valores de la política, selecciona Personalizar.

  9. En Tipo de política, selecciona Rechazar para crear una lista de extremos rechazados.

  10. En Valores personalizados, agrega el nombre de host del extremo de API que deseas bloquear a la lista.

    1. Por ejemplo, para bloquear el extremo de API global de BigQuery, ingresa bigquery.googleapis.com.

    2. Para agregar más extremos, haz clic en Agregar valor.

  11. Para aplicar la política, haz clic en Guardar.

gcloud

Las políticas de la organización se pueden configurar con el comando gcloud resource-manager org-policies set-policy. Para aplicar una política de la organización que incluya la restricción Restrict Endpoint Usage, primero crea un archivo YAML con la política que se actualizará:

constraint: constraints/gcp.restrictEndpointUsage
listPolicy:
    deniedValues:
    - storage.googleapis.com
    - content-bigqueryreservation.googleapis.com
    - bigquerystorage.mtls.googleapis.com
    - logging.googleapis.com

Reemplaza los siguientes valores de marcador de posición por los tuyos antes de ejecutar el comando:

  • RESOURCE_TYPE: Es el tipo de recurso, ya sea un proyecto o una carpeta. Por ejemplo: project.
  • RESOURCE_ID: Es el ID del recurso del proyecto o la carpeta. Por ejemplo: 8767234
gcloud resource-manager org-policies set-policy \
--RESOURCE_TYPE='RESOURCE_ID' /tmp/policy.yaml

La respuesta contiene la política de la organización recién establecida:

constraint: constraints/gcp.restrictEndpointUsage
etag: CKCRl6oGEPjG-tMB
listPolicy:
  deniedValues:
  - storage.googleapis.com
  - content-bigqueryreservation.googleapis.com
  - bigquerystorage.mtls.googleapis.com
  - logging.googleapis.com
updateTime: '2023-11-04T04:29:20.444507Z'

Si una solicitud a un extremo de API denegado intenta acceder a un recurso, la solicitud fallará y se devolverá un error que describa el motivo de la falla.

Crea una política de la organización en modo de ejecución de prueba

Una política de la organización en modo de ejecución de prueba es un tipo de política de la organización en la que se registran los incumplimientos de la política en el registro de auditoría, pero no se rechazan las acciones que incumplen la política. Puedes crear una política de la organización en el modo de ejecución de prueba con la restricción Restrict Endpoint Usage para supervisar cómo afectaría a tu organización antes de aplicar la política activa. Para obtener más información, consulta Crea una política de la organización en modo de ejecución de prueba.

Mensaje de error

Si configuras una política de la organización para rechazar un extremo, fallarán las operaciones que usen ese extremo dentro de tu jerarquía de recursos. Se muestra un error que describe el motivo de esta falla. Además, se genera una entrada de registro de auditoría para una mayor supervisión, alertas o depuración.

Ejemplo de mensaje de error

En el siguiente ejemplo, una solicitud de curl que usa el extremo de API storage.googleapis.com falla debido a la aplicación de políticas:

curl -X GET \
-H "Authorization: Bearer OAUTH2_TOKEN" \
-o "SAVE_TO_LOCATION" \
"https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media"

Access to projects/foo-123 through endpoint storage.googleapis.com was denied by
the constraints/gcp.restrictEndpointUsage organization policy constraint. To
access this resource, please use an allowed endpoint.

Ejemplo de entrada de registro de auditoría

En la siguiente entrada de registro de auditoría de ejemplo, se muestra cuándo se deniega el acceso a un recurso:

{
  logName: "projects/my-projectid/logs/cloudaudit.googleapis.com%2Fpolicy"
  protoPayload: {
    @type: "type.googleapis.com/google.cloud.audit.AuditLog"
    status: {
      code: 7
      message: "Access to projects/my-projectid through endpoint bigquery.googleapis.com was denied by the constraints/gcp.restrictEndpointUsage organization policy constraint. To access this resource, please use an allowed endpoint."
    }
    serviceName: "bigquery.googleapis.com"
    methodName: "google.cloud.bigquery.v2.TableDataService.InsertAll"
    resourceName: "projects/my-projectid"
    authenticationInfo: {
      principalEmail: "user_or_service_account@example.com"
    }
  }
  requestMetadata: {
    callerIp: "123.123.123.123"
  }
  policyViolationInfo: {
    orgPolicyViolationInfo: {
      violationInfo: [
        {
          constraint: "constraints/gcp.restrictEndpointUsage"
          checkedValue: "bigquery.googleapis.com"
          constraintViolationInfo: {
            @type: "type.googleapis.com/google.cloud.audit.RestrictEndpointUsageViolationInfo"
            tlsTerminationRegionCode: "US"
          }
          errorMessage: "Restrict endpoint usage Org Policy is violated"
          policyType: LIST_CONSTRAINT
        }
      ]
    }
  }
  resource: {
    type: "audited_resource"
    labels: {
      project_id: "224034263908"
      method: "google.cloud.bigquery.v2.TableDataService.InsertAll"
      service: "bigquery.googleapis.com"
    }
  }
  severity: "ERROR"
  timestamp: "2024-12-05T01:15:30.332519510Z"
  receiveTimestamp: "2024-08-15T17:55:01.159788588Z"
  insertId: "42"
}

Endpoints de API compatibles

La restricción Restrict Endpoint Usage admite extremos de API para los productos que se indican en la siguiente tabla.

Para cada producto, la tabla proporciona el extremo de API global principal. Sin embargo, cada producto también puede admitir una variante de SERVICE_NAME.mtls.googleapis.com o una variante de content-SERVICE_NAME.googleapis.com de su extremo de API global, como pubsub.mtls.googleapis.com o content-pubsub.googleapis.com. Para restringir todas las variantes del extremo de API global de un producto, puedes usar un grupo de valores. Además, la restricción de uso de extremos admite los extremos de API regionales y de ubicación para estos productos. Consulta la documentación de la API del producto para determinar la lista completa de extremos globales, regionales y de ubicación disponibles.

Producto extremos de API Notas
API Gateway Extremos de API globales:
  • apigateway.googleapis.com

Ninguno
Claves de API Extremos de API globales:
  • apikeys.googleapis.com

Ninguno
Aprobación de acceso Extremos de API globales:
  • accessapproval.googleapis.com

Ninguno
Access Context Manager Extremos de API globales:
  • accesscontextmanager.googleapis.com

Ninguno
Centro de APIs de Apigee Extremos de API globales:
  • apihub.googleapis.com

Ninguno
API de administración de APIs de Apigee Extremos de API globales:
  • apim.googleapis.com

Ninguno
API de Apigee Connect Extremos de API globales:
  • apigeeconnect.googleapis.com

Ninguno
API del portal de Apigee Extremos de API globales:
  • apigeeportal.googleapis.com

Ninguno
API de Apigee Registry Extremos de API globales:
  • apigeeregistry.googleapis.com

Ninguno
Apigee Extremos de API globales:
  • apigee.googleapis.com

Ninguno
API de App Config Manager Extremos de API globales:
  • appconfigmanager.googleapis.com

Ninguno
Application Design Center Extremos de API globales:
  • designcenter.googleapis.com

Ninguno
Application Integration Extremos de API globales:
  • integrations.googleapis.com

Ninguno
Artifact Analysis Extremos de API globales:
  • containeranalysis.googleapis.com
  • ondemandscanning.googleapis.com

Ninguno
Artifact Registry Extremos de API globales:
  • artifactregistry.googleapis.com

Ninguno
Assured Open Source Software Extremos de API globales:
  • assuredoss.googleapis.com

Ninguno
Assured Workloads Extremos de API globales:
  • assuredworkloads.googleapis.com

Ninguno
Gestor de auditorías Extremos de API globales:
  • auditmanager.googleapis.com

Ninguno
API de Authorization Toolkit Extremos de API globales:
  • authztoolkit.googleapis.com

Ninguno
Servicio Backup and DR Extremos de API globales:
  • backupdr.googleapis.com

Ninguno
Copia de seguridad para GKE Extremos de API globales:
  • gkebackup.googleapis.com

Ninguno
Lote Extremos de API globales:
  • batch.googleapis.com