Restringe versiones de TLS

En esta página, se describe cómo puedes evitar el acceso a los recursos de Google Cloud negando las solicitudes realizadas con la seguridad de la capa de transporte (TLS) 1.0 o 1.1.

Descripción general

Google Cloud admite varios protocolos TLS versiones. Para satisfacen los requisitos de cumplimiento, puedes rechazar las solicitudes de protocolo de enlace que usan versiones anteriores de TLS. Para ello, puedes usar la restricción de la política de la organización gcp.restrictTLSVersion.

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

Debido al comportamiento de evaluación de la jerarquía de políticas de la organización, la restricción de versiones de TLS se aplica al nodo del recurso especificado y a todos sus hijos. Por ejemplo, si rechazas la versión 1.0 de TLS para una organización, también se rechaza para todas las carpetas y proyectos (secundarios) que desciendan de ese para que se adapten a las necesidades de tu organización.

Para anular la restricción de versión de TLS heredada, actualiza el política de la organización en un recurso secundario. Por ejemplo, si tu organización deniega TLS 1.0 a nivel de la organización, puedes quitar la para una carpeta secundaria estableciendo una política de la 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 comenzar

  • Para configurar, cambiar o borrar una política de la organización, primero debes obtener el Administrador de políticas de la organización (roles/orgpolicy.policyAdmin) rol de Identity and Access Management (IAM).

Cómo restringir una versión de TLS

Para restringir una o más versiones de TLS, completa los siguientes pasos:

Console

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

    Ir a Políticas de la 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 deseas configurar la política de la organización.

  4. Selecciona la restricción Restrict TLS Version de la lista que se encuentra Página de Políticas de la organización

  5. Si deseas actualizar las políticas de la organización para este recurso, haz clic en Editar.

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

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

    • Para combinar y evaluar las políticas de la organización, selecciona Combinar con superior. Para obtener más información sobre la herencia jerarquía de recursos, consulta Comprende la evaluación de jerarquías.

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

  8. Haz clic en Agregar regla.

  9. En Valores de la política, el valor predeterminado es Rechazar todo. En su lugar, selecciona Personalizado.

  10. En Tipo de política, selecciona Rechazar.

  11. En Valores personalizados, ingresa una versión de TLS para 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 restringes más de una versión de TLS, haz clic en Agregar valor y, luego, ingresa el valor en el campo adicional.

  12. Para finalizar y aplicar la política de la organización, haz clic en Guardar (Save).

gcloud

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

gcloud org-policies set-policy POLICY_PATH

POLICY_PATH es la ruta de acceso completa al archivo de políticas de la organización. que debería verse de la siguiente manera si usas el formato YAML:

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

Reemplaza por lo siguiente:

  • RESOURCE_TYPE es organizations, folders o projects.

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

Ejecuta el siguiente comando para verificar que se haya aplicado la política:

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

Reemplázalo por lo siguiente:

  • RESOURCE_TYPE es organization, folder o project.

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

Prueba la política

La restricción de versión de TLS puede probarse servicio dentro del alcance. El siguiente comando curl de ejemplo valida la restricción de versión de TLS para un bucket 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 hay espacio entre --tlsv y el valor. Por ejemplo: --tlsv1.1.

Reemplaza por lo siguiente:

  • GCS_BUCKET_NAME es un nombre de bucket de Cloud Storage. en tu proyecto, como mybucketname.

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

En el siguiente ejemplo de solicitud curl, se muestra el conjunto de GCS_BUCKET_NAME en mybucketname y TLS_VERSION establecido en 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 la organización está configurada para restringir TLS_VERSION_X, fallará cualquier intento de acceder a recursos con TLS_VERSION_X en el proyecto restringido por políticas en este comando de ejemplo. Se mostrará un mensaje de error que describe el motivo de esta falla.

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`

En esta salida, se incluyen los siguientes valores:

  • PROJECT_NUMBER: Es el número de proyecto que aloja la al que se menciona en el comando anterior.
  • SERVICE_NAME: Es el nombre del servicio dentro del alcance. que bloquea la política de restricción de TLS.

Servicios compatibles

Todas las APIs de recursos de Google Cloud admiten la restricción de versiones de TLS que tengan un encabezado firmado por Google Front End (GFE)

Servicios no admitidos

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

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

Si quieres restringir las versiones de TLS para estos servicios, usa Cloud Load Balancing junto con las políticas de SSL. También puedes usa el parámetro constraints/compute.requireSslPolicy predefinido restricción junto con restricciones personalizadas para que las políticas de SSL aplicar restricciones de versiones de TLS y conjunto de algoritmos de cifrado a tus balanceadores de cargas.

¿Qué sigue?