Restringir versiones de TLS

En esta página se describe cómo puede impedir el acceso a los recursos Google Cloud denegando las solicitudes realizadas con Seguridad en la capa de transporte (TLS) 1.0 o 1.1.

Información general

Google Cloud admite varias versiones del protocolo TLS. Para cumplir los requisitos, puede que quieras denegar las solicitudes de handshake de los clientes que usen versiones anteriores de TLS. Para ello, puedes usar la gcp.restrictTLSVersion restricción de política de organización.

La restricción gcp.restrictTLSVersion se puede aplicar a organizaciones, carpetas o proyectos de la jerarquía de recursos. La restricción usa una lista de denegación, que deniega valores explícitos y permite todos los demás. Se producirá un error si intentas usar una lista de permitidos.

Debido al comportamiento de la evaluación de la jerarquía de políticas de organización, la restricción de la versión de TLS se aplica al nodo de recurso especificado y a todos sus elementos secundarios. Por ejemplo, si deniegas la versión 1.0 de TLS en una organización, también se denegará en todas las carpetas y proyectos (elementos secundarios) que dependan de esa organización.

Para anular la restricción de versiones de TLS heredada, actualiza la política de organización en un recurso secundario. Por ejemplo, si la política de tu organización deniega TLS 1.0 a nivel de organización, puedes quitar la restricción de una carpeta secundaria definiendo una política de organización independiente en esa carpeta. Si la carpeta tiene elementos secundarios, la política de la carpeta también se aplicará a cada recurso secundario debido a la herencia de políticas.

Antes de empezar

  • Para definir, cambiar o eliminar una política de organización, primero debes tener asignado el rol de gestión de identidades y accesos (IAM) Administrador de políticas de organización (roles/orgpolicy.policyAdmin).

Restringir una versión de TLS

Para restringir una o varias versiones de TLS, sigue estos pasos:

Consola

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

    Ir a Políticas de organización

  2. Selecciona el selector de proyectos en la parte superior de la página.

  3. En el selector de proyectos, selecciona el recurso para el que quieras definir la política de la organización.

  4. Selecciona la restricción Restringir versión de TLS en la lista de la página Políticas de organización.

  5. Para actualizar la política de la organización de este recurso, haz clic en Editar.

  6. En la página Editar, selecciona Personalizar.

  7. En Implementación de la política, selecciona una opción:

    • Para combinar y evaluar las políticas de tu organización, selecciona Combinar con la principal. Para obtener más información sobre la herencia y la jerarquía de recursos, consulta Información sobre la evaluación jerárquica.

    • Para anular las políticas heredadas de un recurso superior, seleccione Reemplazar.

  8. Haz clic en Añadir regla.

  9. En Valores de la política, el valor predeterminado es Denegar todo. Selecciona Personalizar.

  10. En Policy type (Tipo de política), selecciona Deny (Denegar).

  11. En Valores personalizados, introduce una versión de TLS que quieras denegar. Los siguientes valores son valores personalizados válidos:

    • TLS_VERSION_1 para TLS 1.0
    • TLS_VERSION_1_1 para TLS 1.1

    Si vas a restringir más de una versión de TLS, haz clic en Añadir valor e introduce el valor en el campo adicional.

  12. Para terminar y aplicar la política de la organización, haz clic en Guardar.

gcloud

Usa el comando gcloud org-policies set-policy para definir una política de la organización en el recurso:

gcloud org-policies set-policy POLICY_PATH

POLICY_PATH es la ruta completa al archivo de la política de la organización, que debería tener el siguiente aspecto si se usa el formato YAML:

name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictTLSVersion
spec:
  rules:
  - values:
    deniedValues:
    - TLS_VERSION_1
    - TLS_VERSION_1_1

Sustitúyelo por lo siguiente:

  • RESOURCE_TYPE es organizations, folders o projects.

  • RESOURCE_ID es el ID de tu organización, carpeta, proyecto o número de proyecto, según el tipo de recurso especificado en RESOURCE_TYPE.

Ejecuta el siguiente comando para verificar que se ha aplicado tu política:

gcloud org-policies describe gcp.restrictTLSVersion --RESOURCE_TYPE=RESOURCE_ID --effective

Sustitúyelo por lo siguiente:

  • RESOURCE_TYPE es organization, folder o project.

  • RESOURCE_ID es el ID de tu organización, carpeta, proyecto o número de proyecto, según el tipo de recurso especificado en RESOURCE_TYPE.

Probar la política

La restricción de la política de restricción de versiones de TLS se puede probar en cualquier servicio incluido en el ámbito. El siguiente comando curl de ejemplo valida la restricción de la versión de TLS de un segmento de Cloud Storage.

  curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://storage.googleapis.com/storage/v1/b/GCS_BUCKET_NAME/o" \
  --tlsvTLS_VERSION --tls-max TLS_VERSION --ciphers DEFAULT@SECLEVEL=0

No debe haber ningún espacio entre --tlsv y el valor. Por ejemplo: --tlsv1.1

Sustitúyelo por lo siguiente:

  • GCS_BUCKET_NAME es el nombre de un segmento de Cloud Storage de tu proyecto, como mybucketname.

  • TLS_VERSION es una versión de TLS como 1.0 o 1.1 denegada en la política configurada.

En el siguiente ejemplo de solicitud curl se muestra GCS_BUCKET_NAME definido como mybucketname y TLS_VERSION definido como 1.1:

  curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://storage.googleapis.com/storage/v1/b/mybucketname/o" \
  --tlsv1.1 --tls-max 1.1 --ciphers DEFAULT@SECLEVEL=0

Si la política de organización está configurada para restringir TLS_VERSION_X, se producirá un error en cualquier intento de acceder a recursos con TLS_VERSION_X en el proyecto restringido por la política en este comando de ejemplo. Se devuelve un mensaje de error que describe el motivo de este fallo.

Request is disallowed by organization's constraints/gcp.restrictTLSVersion
constraint for 'projects/PROJECT_NUMBER' to use service
'SERVICE_NAME.googleapis.com' by violated TLS version `TLS_VERSION_X`

Esta salida incluye los siguientes valores:

  • PROJECT_NUMBER: el número de proyecto que aloja el recurso al que se hace referencia en el comando anterior.
  • SERVICE_NAME: el nombre del servicio incluido bloqueado por la política de restricción de TLS.

Servicios admitidos

La restricción de la versión de TLS es compatible con cualquier Google Cloud API de recursos que tenga un encabezado firmado por Google Front End (GFE).

Servicios no admitidos

La restricción de la política de organización de restricción de versiones de TLS no se aplica a los siguientes servicios:

  • Apigee
  • App Engine (*.appspot.com)
  • Funciones de Cloud Run (*.cloudfunctions.net)
  • Cloud Run (*.run.app)
  • Private Service Connect
  • Dominios personalizados

Para restringir las versiones de TLS de estos servicios, usa Cloud Load Balancing junto con políticas de SSL. También puedes usar la constraints/compute.requireSslPolicy restricción predefinida junto con restricciones personalizadas para las políticas de SSL con el fin de aplicar restricciones de versión de TLS y de paquete de cifrado a tus balanceadores de carga.

Siguientes pasos