Uso de URL prefirmadas para S3 en Outposts
Para conceder acceso por tiempo limitado a los objetos que se almacenan localmente en un Outpost sin actualizar su política de bucket, puede usar una URL prefirmada. Con las URL prefirmadas, usted, como propietario del bucket, puede compartir objetos con personas en su nube privada virtual (VPC) o concederles la capacidad de cargar o eliminar objetos.
Cuando crea una URL prefirmada con el SDK de AWS o el AWS Command Line Interface (AWS CLI), asocia la URL a una acción específica. También puede conceder acceso por tiempo limitado a la URL prefirmada eligiendo un tiempo de caducidad personalizado que puede ser de tan solo 1 segundo y de hasta 7 días. Cuando comparte la URL prefirmada, la persona de la VPC puede realizar la acción incrustada en la URL como si fuera el usuario de firma original. La URL caducará y ya no funcionará cuando llegue a su hora de vencimiento.
Limitación de las capacidades de URL prefirmadas
Las capacidades de una URL están limitadas por los permisos del usuario que la creó. En esencia, las URL prefirmadas son tokens al portador que otorgan acceso a quienes las poseen. Por lo tanto, le recomendamos que los proteja adecuadamente.
AWS Signature Version 4 (SigV4)
Para aplicar un comportamiento específico cuando las solicitudes de URL prefirmadas se autentican mediante AWS Signature Version 4 (SigV4), puede usar claves de condición en las políticas de bucket y en las políticas de punto de acceso. Por ejemplo, puede crear una política de bucket que use la condición s3-outposts:signatureAge
para denegar cualquier solicitud de URL prefirmada de Amazon S3 en Outposts en los objetos del bucket example-outpost-bucket
si la firma tiene más de 10 minutos de antigüedad. Para utilizar este ejemplo, reemplace los
con su propia información.user input
placeholders
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Deny a presigned URL request if the signature is more than 10 minutes old", "Effect": "Deny", "Principal": {"AWS":"
444455556666
"}, "Action": "s3-outposts:*", "Resource": "arn:aws:s3-outposts:us-east-1
:111122223333
:outpost/op-01ac5d28a6a232904
/bucket/example-outpost-bucket
/object/*", "Condition": { "NumericGreaterThan": {"s3-outposts:signatureAge": 600000}, "StringEquals": {"s3-outposts:authType": "REST-QUERY-STRING"} } } ] }
Para obtener una lista de claves de condición y políticas de ejemplo adicionales que puede usar para imponer un comportamiento específico cuando las solicitudes de URL prefirmadas se autentican mediante Signature Version 4, consulte Claves de política de autenticación de AWS Signature Version 4 (SigV4).
Restricción de ruta de red
Si desea restringir el uso de direcciones URL prefirmadas y todo el acceso de S3 en Outposts a rutas de red concretas, puede escribir políticas que requieran una ruta de red determinada. Para establecer la restricción en la entidad principal de IAM que realiza la llamada, puede usar políticas de AWS Identity and Access Management (IAM) basadas en identidades (por ejemplo, políticas de usuario, grupo o rol). Para establecer la restricción en el recurso S3 en Outposts, puede usar políticas basadas en recursos (por ejemplo, políticas de bucket y punto de acceso).
Una restricción de ruta de red en la entidad principal de IAM requiere que el usuario de esas credenciales realice solicitudes desde la red especificada. Una restricción en el bucket o en el punto de acceso requiere que todas las solicitudes a ese recurso se originen desde la red especificada. Estas restricciones también se aplican fuera del escenario de URL prefirmada.
La condición global de IAM que utilice depende del tipo de punto de conexión. Si está utilizando el punto de conexión público para S3 en Outposts, utilice aws:SourceIp
. Si utiliza un punto de conexión de VPC en S3 en Outposts, utilice aws:SourceVpc
o aws:SourceVpce
.
La siguiente instrucción de política de IAM requiere que la entidad principal acceda a AWS solo desde el rango de red especificado. Con esta declaración de política, todo acceso debe originarse desde ese rango. Esto incluye el caso de alguien que usa una URL prefirmada para S3 en Outposts. Para utilizar este ejemplo, reemplace los
con su propia información.user input
placeholders
{ "Sid": "NetworkRestrictionForIAMPrincipal", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddressIfExists": {"aws:SourceIp": "
IP-address-range
"}, "BoolIfExists": {"aws:ViaAWSService": "false"} } }
Para ver una política de bucket de ejemplo que usa la clave de condición global aws:SourceIP
de AWS para restringir el acceso a un bucket de S3 en Outposts a un rango de red específico, consulte Configuración de IAM con S3 en Outposts.
Quién puede crear una URL prefirmada
Cualquiera que tenga credenciales de seguridad válidas puede crear una URL prefirmada. Sin embargo, para que un usuario de la VPC pueda acceder a un objeto correctamente, la URL prefirmada debe haber sido creada por alguien que tenga permiso para realizar la operación en la que se basa la URL prefirmada.
Puede usar estas credenciales para crear una URL prefirmada:
-
Perfil de instancia de IAM: válido hasta 6 horas.
-
AWS Security Token Service: válido hasta 36 horas cuando se firma con las credenciales permanentes, como, por ejemplo, las credenciales del usuario raíz de la Cuenta de AWS o un usuario de IAM.
-
Usuario de IAM: válido hasta 7 días cuando se utiliza AWS Signature Version 4.
Para crear una URL prefirmada que es válida hasta 7 días, primero delegue las credenciales de usuario de IAM (la clave de acceso y la clave secreta) al SDK que está utilizando. A continuación, genere una URL prefirmada mediante AWS Signature Version 4.
nota
-
Si creó una URL prefirmada con un token temporal, la URL caducará cuando caduque el token, incluso si creó la URL con un tiempo de vencimiento posterior.
-
Dado que las URL prefirmadas otorgan acceso a los buckets de S3 en Outposts a quien tenga la URL, recomendamos que los proteja adecuadamente. Para obtener más información sobre la protección de las URL prefirmadas, consulte Limitación de las capacidades de URL prefirmadas.
¿Cuándo comprueba S3 en Outposts la fecha y hora de vencimiento de una URL prefirmada?
S3 en Outposts comprueba la fecha y hora de vencimiento de una URL firmada al realizarse la solicitud HTTP. Por ejemplo, si un cliente comienza a descargar un archivo grande inmediatamente antes de la fecha de vencimiento, la descarga continúa incluso si se sobrepasa la hora de vencimiento durante la descarga. Sin embargo, si la conexión se interrumpe y el cliente intenta reiniciar la descarga después de la hora de vencimiento, la descarga produce un error.
Para obtener más información sobre el uso de una URL prefirmada con objeto de compartir o cargar objetos, consulte los siguientes temas.