¿Cómo puedo imponer la versión TLS 1.2 o posterior para mis buckets de Amazon S3?

3 minutos de lectura
0

Mis clientes utilizan versiones anteriores de TLS. Quiero imponer el uso de una versión reciente de TLS cuando accedan al contenido de mis buckets de Amazon Simple Storage Service (Amazon S3).

Solución

Nota: Amazon S3 requiere la versión 1.2 o posterior de TLS y es la versión predeterminada para los puntos de enlace de la API de S3. Para aplicar una versión de protocolo de cifrado superior, como TLS 1.3 o posterior, los ejemplos de este artículo siguen siendo válidos.

Utilice una política basada en recursos que esté asociada a su bucket para imponer el uso de la versión TLS 1.2 o posterior en todas las conexiones a los buckets de S3.

Para asociar una política de bucket que requiera la versión 1.2 o posterior de TLS, siga estos pasos:

  1. Abra la consola de Amazon S3.

  2. Seleccione el bucket en la lista.

  3. Seleccione la pestaña Permisos.

  4. En la política de bucket, seleccione Editar.

  5. Agregue una política para denegar el acceso a los protocolos de cifrado que desee impedir. Por ejemplo, utilice la siguiente política para denegar todas las solicitudes de HTTPS que utilicen versiones de TLS anteriores a la 1.2:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "EnforceTLSv12orHigher",
          "Principal": {
            "AWS": "*"
          },
          "Action": [
            "s3:*"
          ],
          "Effect": "Deny",
          "Resource": [
            "arn:aws:s3:::DOC_EXAMPLE_BUCKET/*",
            "arn:aws:s3:::DOC_EXAMPLE_BUCKET"
          ],
          "Condition": {
            "NumericLessThan": {
              "s3:TlsVersion": 1.2
            }
          }
        }
      ]
    }

    Esta política impone el protocolo HTTPS para aumentar la seguridad de los datos en tránsito.

    Si su carga de trabajo requiere tráfico HTTP a Amazon S3, utilice la siguiente política. Esta política permite el tráfico HTTP y bloquea el tráfico HTTPS de las versiones de TLS anteriores a la 1.2:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "UpdateTLSv12",
          "Effect": "Deny",
          "Principal": {
            "AWS": "*"
          },
          "Action": "s3:*",
          "Resource": "arn:aws:s3:::DOC_EXAMPLE_BUCKET/*",
          "Condition": {
            "Bool": {
              "aws:SecureTransport": "true"
            },
            "NumericLessThan": {
              "s3:TlsVersion": "1.2"
            }
          }
        }
      ]
    }

Revisión de los protocolos de cifrado para S3

Para probar la nueva política, ejecute el siguiente comando curl de ejemplo para realizar solicitudes HTTPS que utilicen un protocolo heredado específico:

curl https://${BUCKET_NAME}.s3.us-east-1.amazonaws.com/image.png -v --tlsv1.0 --tls-max 1.0

Dado que Amazon S3 detecta que la solicitud no utiliza la versión 1.2 o posterior de TLS, el comando curl devuelve Acceso denegado.

Nota: De forma predeterminada, curl envía una solicitud anónima. Si el bucket es privado, se mostrará un error 403 Acceso denegado con cualquier versión de TLS. Cuando realice pruebas con curl, genere una URL prefirmada de Amazon S3 para acceder a los objetos privados.

Se recomienda utilizar AWS CloudTrail Lake para identificar las conexiones TLS anteriores a los puntos de conexión del servicio de AWS. Puede configurar el almacén de datos de eventos de CloudTrail Lake de modo que se capturen eventos de administración o eventos de datos.