本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
基础最佳实践
有效控制其他 AWS API 请求的一般最佳做法也适用于预签名请求。本节回顾了两种最相关的做法:最低权限和数据边界。这些做法创造了其他实践所扩展的控制深度。
采用最低权限原则
限制使用预签名请求的第一步是总体上限制对 Amazon S3 的访问。预签名 URL 无法提供对未授予为预签名 URL 生成签名的委托人的资源的访问权限。它也不能以未授予该委托人的方式提供对资源的访问权限。因此,应用最佳实践来授予这些校长最少的特权是一种有效的保护措施。
创建预签名 URL 的过程是一种基于已发布的签名生成标准(签名版本 4)的算法操作。因此,不可能限制预签名 URL 的生成。但是,为了保持相关性,预签名 URL 必须有效并提供对资源的访问权限,因此预签名 URL 的有效性也是一个有效的保护措施。
有关最低权限的更多信息,请参阅 Fr AWS Well-Architected amework 的 “安全” 支柱中的授予最低权限访问权限。
实现数据边界
最低权限的扩展是维护与组织需求一致的数据边界。预签名 URL 与数据边界兼容。 与其他请求一样,预签名 URL 请求的有效性是在请求时评估的。如果网络、资源、角色会话和主体的属性发生变化,则在接收请求时使用接收请求的方法对其进行评估。
例如,假设在亚马逊 Elastic Kubernetes Service(Amazon EKS)容器中运行的服务签署了请求。该请求随后由连接到互联网的用户的个人计算机系统发送。在本例中,aws: SourceIp 条件评估的是来自用户个人系统的请求的可见公有 IP 地址,而不是 Amazon EKS 容器中服务的 IP 地址。
同样,如果委托人或资源的标签在发送请求之前发生了变化,则更新后的值(不是原始值)将通过 aws: PrincipalTag/tag-key 和 aws: ResourceTag/tag-key 条件应用于请求。