S3 预签名 URL - 有没有办法隐藏/更改预签名 url 的原始 S3 url 部分

问题描述 投票:0回答:1

https://yourbucket.s3.eu-west-1.amazonaws.com/yourfile.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=some-aws-credential-to-identify -签名者&X-Amz-Date=生成时间戳&X-Amz-Expires=生成时间戳的有效性&X-Amz-Signature=4709da5a980e6abc4ab7284c1b6aa9e624f388e08f6a7609e28e5041a43e5dad&X-Amz-SignedHeaders=主机

以上是 S3 预签名 url 的示例。是否有办法隐藏预签名 url 的存储桶部分或将其更改为预签名 url 中的域名。

成为 https://custom.domain.com/yourfile.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=some-aws-credential-to-identify-the-signer&X-Amz-Date=生成时间戳&X-Amz-Expires=生成时间戳的有效性&X-Amz-Signature=4709da5a980e6abc4ab7284c1b6aa9e624f388e08f6a7609e28e5041a43e5dad&X-Amz-SignedHeaders=主机

我尝试将预签名网址更改为自定义域,但它不起作用。 我使用S3 GetPreSignedUrlRequest方法通过设置key、bucketname和expires来生成预签名url

我想知道什么

  1. 有没有办法更改预签名的 url 行为以不显示 存储桶名称和区域。?
  2. 允许用户查看是否存在安全风险
    预签名 url 中的存储桶名称和区域?

如有任何建议,我们将不胜感激。谢谢

amazon-s3 amazon-cloudfront pre-signed-url
1个回答
0
投票

更改预签名 URL 行为:

预签名 URL 的结构(包括存储桶名称和区域的存在)是 Amazon S3 生成这些 URL 的固有方式。存储桶名称是路径的一部分,是唯一标识资源所必需的。遗憾的是,您无法更改行为以从预签名 URL 中排除存储桶名称和区域。

建议:

使用虚拟托管式 URL:

如果您使用自定义域,请考虑将 S3 存储桶配置为静态网站并使用虚拟托管样式 URL。这使得 URL 看起来更干净,但请注意,它可能并不适用于所有场景。

总之,在预签名 URL 中公开存储桶名称和区域是一种标准做法,并且通常是安全的。确保适当的访问控制并使预签名 URL 保持短暂状态,以减轻任何潜在风险。如果 URL 的美观至关重要,请考虑使用具有虚拟托管样式 URL 的静态网站配置。

© www.soinside.com 2019 - 2024. All rights reserved.