View a markdown version of this page

Claves de política específica de autenticación de Signature Version 4 de Amazon S3 - Amazon Simple Storage Service

Claves de política específica de autenticación de Signature Version 4 de Amazon S3

En la siguiente tabla se muestran las claves de política relacionadas con la autenticación de Signature Version 4 de Amazon S3 que pueden estar en las políticas de Amazon S3. En una política de bucket, puede agregar estas condiciones para imponer un comportamiento específico cuando las solicitudes se autentican mediante Signature Version 4. Para ver ejemplos de políticas, consulte Ejemplos de políticas de bucket con claves de condición relacionadas con Signature Version 4.

Claves aplicables Descripción

s3:signatureversion

Identifica la versión de AWS Signature que desea admitir con las solicitudes autenticadas. Para las solicitudes autenticadas, Amazon S3 admite Signature Version 4 y Signature Version 2. Puede agregar esta condición a la política de bucket para solicitar una versión de firma específica.

Valores válidos:

"AWS" identifica Signature Version 2

"AWS4-HMAC-SHA256" identifica Signature Version 4

s3:authType

Amazon S3 admite varios métodos de autenticación (consulte Autenticación de solicitudes (AWS Signature Version 4)). Si lo desea, puede usar esta clave de condición para restringir las solicitudes entrantes para usar un método de autenticación específico. Por ejemplo, puede permitir solo el encabezado HTTP Authorization que se utilizará en la autenticación de solicitudes.

Valores válidos:

REST-HEADER

REST-QUERY-STRING

POST

s3:signatureAge

El periodo, en milisegundos, que una firma es válida en una solicitud autenticada.

Esta condición es válida para:

  • URL prefirmadas: en las que gana la condición más restrictiva. Para obtener más información, consulte Trabajo con URL prefirmadas.

  • POST prefirmado: cargue archivos directamente a S3 mediante un POST prefirmado. Para obtener más información, consulte Política POST de Amazon S3.

En Signature Version 2, este valor siempre está establecido en 0.

En Signature Version 4, la clave de firma es válida por un plazo máximo de siete días. Por lo tanto, las firmas también son válidas por un plazo máximo de siete días. Puede usar esta condición para limitar aún más la antigüedad de la firma. Para obtener más información, consulte Introducción a la firma de solicitudes.

Ejemplo de valor: : 100

s3:x-amz-content-sha256

Puede utilizar esta clave de condición para no permitir el contenido sin firmar en su bucket.

Cuando se utiliza Signature Version 4, para las solicitudes que utilizan el encabezado Authorization, agregue el encabezado x-amz-content-sha256 en el cálculo de la firma y luego establezca su valor en la carga de hash. Tenga en cuenta que esta clave de condición no admite el encabezado x-amz-content-sha256 como parámetro de cadena de consulta.

Puede usar esta clave de condición en la política de bucket para denegar cualquier carga en la que las cargas útiles no estén firmadas. Por ejemplo, puede denegar las cargas que usen el encabezado Authorization para autenticar las solicitudes, pero no firmar la carga útil. Para obtener más información, consulte Cálculos de firma para el encabezado de Authorization: transferencia de la carga útil en un solo fragmento (AWS Signature Version 4).

Valor válido: UNSIGNED-PAYLOAD

Ejemplos de políticas de bucket con claves de condición relacionadas con Signature Version 4

La política de bucket siguiente deniega cualquier solicitud de URL prefirmada de Amazon S3 en objetos en examplebucket si la firma tiene más de 10 minutos.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Deny a presigned URL request if the signature is more than 10 min old", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::examplebucket3/*", "Condition": { "NumericGreaterThan": { "s3:signatureAge": 600000 } } } ] }

La siguiente política de bucket solo permite las solicitudes que utilizan el encabezado Authorization para solicitar autenticación. Se rechazará cualquier solicitud POST o de URL prefirmada.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Allow only requests that use Authorization header for request authentication. Deny POST or presigned URL requests.", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::examplebucket3/*", "Condition": { "StringNotEquals": { "s3:authType": "REST-HEADER" } } } ] }

La política de bucket siguiente deniega las solicitudes que utilizan URL prefirmadas para la autenticación de solicitudes:

JSON
{ "Version":"2012-10-17", "Statement":[ { "Sid":"DenyUploadsUsingPresignedURL", "Effect":"Deny", "Principal":"*", "Action":"s3:*", "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition":{ "StringEquals":{ "s3:authType":"REST-query-string" } } } ] }

La política de bucket siguiente deniega cualquier carga con cargas útiles sin firmar:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Deny uploads with unsigned payloads that use the Authorization header.", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::examplebucket3/*", "Condition": { "StringEquals": { "s3:x-amz-content-sha256": "UNSIGNED-PAYLOAD" } } } ] }