AWS Cloudfront 签名的 url问题:我想知道使用公开可见的密钥与他们的 IP 地址来逐个用户控制 Cloudfront 内容访问的利弊。我将公钥定义为任意访问令牌(例如,我分配给每个用户的公钥或 ID )作为查询参数(下图中的第 3 部分,取自文档。用户 IP 地址可以很容易地在服务器端获得(使用 PHP 使用 $_SERVER['REMOTE_ADDR'])并且是在“ Policy=
”中编码的值,即图片中的第 4 部分。
由于人们越来越多地拥有许多计算机并属于许多网络,因此基于 IP 地址的访问似乎不是一种最佳方法,这意味着每个用户都需要拥有多个策略,而我必须跟踪这些策略中的每一个。
另一方面,public key
如果字符串更难知道,基于查询字符串的访问可能会被简单的剪切和粘贴或暴力破解。
AWS 推荐基于 IP 的方法并且不推荐公钥方法肯定是有原因的,但是如果不是出于某种访问令牌的目的,我无法理解查询参数的意义。想法?
新手的背景: Cloudfront 签名的 url 允许限制对服务器(在文档中称为“源服务器”)上的内容的访问,例如您的 S3 存储桶。这些签名的 url 可以自定义(称为“自定义策略”,Policy="eyANC.."
上面 url 的一部分)以包含用户 IP 地址,这样如果您不使用该 IP 地址,您将无法访问内容。