Generación de URL preasignada para agente de objetos S3

Por defecto, todos los objetos S3 son privados y sólo el propietario del objeto tiene permiso para acceder a ellos. Sin embargo, el propietario del objeto puede compartirlo con otros creando una URL preasignada. Una URL preasignada utiliza credenciales de seguridad para conceder permisos limitados en el tiempo para descargar objetos. La URL puede introducirse en un navegador o ser utilizada por un programa para descargar el objeto. Las credenciales que utiliza el preasignado URL son las del usuario S3 que generó el URL.

Puede utilizar URL preasignadas para conceder acceso limitado en el tiempo a objetos en S3 sin actualizar su política de bucket.

Al crear una URL preasignada, debe proporcionar sus credenciales de seguridad y, a continuación, especificar lo siguiente:
  1. Grupo S3
  2. Una clave de objeto: para descargar este objeto estará en su bucket S3
  3. Un método HTTP : GET para descargar objetos
  4. Un intervalo de tiempo de expiración: es opcional y por defecto es de 3600 segundos
Nota: El agente de objetos no admite URL prefijadas para la carga de objetos.

Ejemplos

Cuando el agente objeto se configura utilizando un certificado autofirmado, consulte los siguientes ejemplos:
Nota: Cuando el agente objeto está configurado con un certificado firmado por CA, no es necesario utilizar la opción ' --no-verify-ssl.
  • Para listar objetos del bucket ' testbucket ':
    aws s3 --no-verify-ssl --endpoint-url=<host_URL>:9000 ls s3://testbucket
    Salida:
    2024-08-29 21:13:08 99 file1
    2024-08-29 21:13:55 99 file2
    2024-08-29 21:14:07 99 file3
  • Para generar la URL prefijada del objeto file1 :
    aws s3 --no-verify-ssl --endpoint-url=<host_URL>:9000 presign s3://testbucket/file1
    Salida:
    <host_URL>:9000/testbucket/file1?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=XXXXus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240830T103740Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5a2a69a49aa23e93ed15f40157083fa2ee3ad086083176257e2eb578789cb396
  • Para descargar los datos del objeto file1 utilizando la URL prefijada:
    curl -k "<host_URL>:9000/testbucket/file1?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=7A3TSE2BZY8TQPBY3ALO%2F20240830%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240830T103740Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5a2a69a49aa23e93ed15f40157083fa2ee3ad086083176257e2eb578789cb396" -o fileOutput
    Salida:
     % Total % Received % Xferd Average Speed Time Time Time Current
     Dload Upload Total Spent Left Speed
    100 249 100 249 0 0 2263 0 --:--:-- --:--:-- --:--:-- 2263
  • Para verificar el contenido de los datos del objeto ' file1 ':
    cat fileOutput
    Salida:
    Hello World
  • Para crear una URL preasignada con una duración personalizada que enlace a un objeto en un bucket S3 :
    • El siguiente comando presign genera una URL preasignada para el bucket testbucket y la clave file1 que es válida durante cinco horas:
      aws s3 --no-verify-ssl --endpoint-url=<host_URL>:9000 presign s3://testbucket/file1 --expires-in 18000
      Salida:
      <host_URL>:9000/testbucket/file1?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=XXXX%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241130T161600Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=c547e60936e0e3d459b79ac6e58f2e0264d40e06c94adfd9afe81671adca5be4

Para obtener más información sobre Amazon S3 y URL con firma previa, consulta «Descargas con URL con firma previa» y «Compartir objetos con URL con firma previa ».