Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

945
Vistas
Cómo generar una URL prefirmada de S3 para un dominio personalizado sin exponer el nombre del depósito

Tengo un depósito my-bucket-name y quiero otorgar acceso temporal a algún file.pdf en folder-name . Por defecto, obtengo el siguiente enlace usando boto3:

 https://my-bucket-name.s3.amazonaws.com/folder-name/file.pdf?AWSAccessKeyId=<key>&Signature=<signature>&x-amz-security-token=<toke>&Expires=<time>

Pero también tengo un alias de DNS, my.address.com está asignado a my-bucket-name.s3.amazonaws.com . Por supuesto, si lo estoy usando directamente, obtuve SignatureDoesNotMatch de Amazon. Así que estoy usando el siguiente código para generar un enlace prefirmado:

 from botocore.client import Config kwargs = {} kwargs['endpoint_url'] = f'https://my.address.com' kwargs['config'] = Config(s3={'addressing_style': 'path'}) s3_client = boto3.client('s3', **kwargs) url = s3_client.generate_presigned_url(ClientMethod='get_object', Params={ 'Bucket': 'my-bucket-name', 'Key': 'folder-name/file.pdf' }, ExpiresIn=URL_EXPIRATION_TIME)

Como resultado me devuelve el siguiente enlace:

 https://my.address.com/my-bucket-name/folder-name/file.pdf?AWSAccessKeyId=<key>&Signature=<signature>&x-amz-security-token=<toke>&Expires=<time>

Hay dos problemas con esto:

  • No quiero exponer el nombre de mi depósito, por lo que my-bucket-name/ debe omitirse
  • Este enlace no funciona, me estoy poniendo
 <Code>SignatureDoesNotMatch</Code> <Message> The request signature we calculated does not match the signature you provided. Check your key and signing method. </Message>

Esas son las preguntas:

  1. ¿Es posible lograr un enlace viable sin exponer el nombre del depósito?
  2. Ya he leído algo sobre que los dominios personalizados solo son posibles para acceso HTTP, no HTTPS, ¿es cierto? ¿Qué debo hacer en este caso?
  3. El alias de DNS no lo hice yo, así que no estoy seguro de si funciona o si está configurado correctamente, ¿qué debo verificar/preguntar para verificar que funcionará para s3?

Actualmente estoy un poco perdido en los documentos de Amazon. También soy nuevo en todo esto de AWS.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

No es posible ocultar el nombre del depósito en una URL prefirmada de Amazon S3. Esto se debe a que la solicitud se realiza al depósito. La firma simplemente autoriza la solicitud.

Una forma de hacerlo es usar Amazon CloudFront , con el depósito como origen. Puede asociar un nombre de dominio con la distribución de CloudFront, que no está relacionado con el Origen donde CloudFront obtiene su contenido.

Amazon CloudFront admite URL prefirmadas. Puede dar acceso a CloudFront al depósito S3 a través de una Identidad de acceso de origen (OAI) y luego configurar la distribución para que sea privada. Luego, acceda al contenido a través de URL prefirmadas de CloudFront. Tenga en cuenta que todo el contenido de la distribución sería privado, por lo que necesitaría dos distribuciones de CloudFront (una pública y otra privada) o solo usaría CloudFront para la parte privada (y continuaría usando Direct-to-S3 para la parte pública). ).

Si todo el sitio web es privado, podría usar una cookie con CloudFront en lugar de tener que generar URL prefirmadas para cada URL.

over 4 years ago · Santiago Trujillo Denunciar

0

Hasta donde yo sé, no puede tener una URL prefirmada sin exponer el nombre del depósito. Sí, no puede acceder a un nombre de dominio personalizado asignado a la URL del depósito S3 a través de https. Porque cuando accede a https://example.com y example.com está asignado a my-bucket-name.s3.amazonaws.com , S3 no puede descifrar el tráfico SSL. Consulte esta página de documentos de AWS, sección Limitación.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda