使用预签名 URL - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用预签名 URL

默认情况下,所有对象和存储桶都是私有的。但是,您可以使用预签名 URL 选择性地共享对象,或者允许客户/用户将对象上传到存储桶,而无需 Amazon 安全凭证或权限。

限制预签名 URL 功能

您可以使用预签名 URL 生成可用于访问 S3 存储桶的 URL。创建预签名 URL 时,将其与特定操作相关联。您可以共享 URL,任何有权访问该 URL 的人都可以像原始签名用户一样执行嵌入在 URL 中的操作。URL 在达到其过期时间后会过期且不再起作用。URL 的功能受创建预签名 URL 的用户的权限所限制。

实质上,预签名 URL 是一种持有者令牌,可向拥有这些 URL 的客户授予访问权限。因此,我们建议您适当地保护它们。

如果您想限制使用预签名 URL 和 S3 对特定网络路径的所有访问,则可以编写需要特定网络路径的 Amazon Identity and Access Management (IAM) 策略。可以在进行调用的 IAM 委托人、Amazon S3 存储桶或两者上设置这些策略。对委托人的网络路径限制要求拥有这些凭证的用户从指定的网络发出请求。对存储桶的限制会将该存储桶的访问权限限定为仅供来自指定网络的请求访问。请注意,这些限制也适用于预签名 URL 场景之外。

您使用的 IAM 全局条件取决于终端节点的类型。如果您正在使用 Amazon S3 的公有终端节点,请使用 aws:SourceIp。如果您使用的是 Amazon S3 的 VPC 终端节点,请使用 aws:SourceVpcaws:SourceVpce

以下 IAM 策略语句要求委托人仅从指定的网络范围访问 Amazon。使用这个策略语句,所有访问都需要来自该范围。这包括有人使用 S3 的预签名 URL 的情况。

{ "Sid": "NetworkRestrictionForIAMPrincipal", "Effect": "Deny", "Action": "", "Resource": "", "Condition": { "NotIpAddressIfExists": { "aws:SourceIp": "IP-address" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } }

有关使用预签名 URL 共享或上传对象的更多信息,请参阅以下主题。