aws_key_scope
定义用于对 AWS 服务的请求进行身份验证的签名密钥的作用域。
NGINX module to proxy to authenticated AWS services
·
httpserverlocation
语法aws_key_scope scope;
默认值none
上下文http, server, location
参数1
说明
NGINX 的 AWS 身份验证模块中的 aws_key_scope 指令指定为 AWS 服务生成的签名密钥的作用域。此作用域是根据 AWS 的 Signature Version 4 过程正确签署请求所必需的。它通常包含日期、区域和服务,格式为 YYYYMMDD/region/service/aws4_request。使用正确的作用域可确保授权机制能够针对目标 AWS 服务端点验证请求。通过在 http、server 或 location 上下文级别设置此指令,用户可以为应用的不同部分配置不同的作用域,以适应不同的服务端点或区域。
当发出请求时,NGINX 会结合该作用域和生成的签名密钥来创建 S3 可以验证的正确签名请求。键作用域有助于隔离签名密钥,使得管理安全性和访问控制更容易。由于 AWS 签名密钥被视为敏感信息,最佳做法是确保它们得到安全管理并定期刷新,因为它们仅在有限时间内有效,通常为一周。
总之,此指令对于将 NGINX 有效配置为 AWS 服务(尤其是 S3)的代理至关重要,既能确保请求被正确认证,又能防止访问密钥和签名密钥等敏感信息被不必要地暴露。
配置示例
server {
listen 8000;
aws_access_key your_aws_access_key;
aws_key_scope 20150830/us-east-1/service/aws4_request;
aws_signing_key signing_key_generated_using_script;
aws_s3_bucket your_s3_bucket;
location / {
aws_sign;
proxy_pass http://your_s3_bucket.s3.amazonaws.com;
}
}⚠
确保密钥作用域字符串的格式符合 AWS 要求:YYYYMMDD/region/service/aws4_request。
⚠
注意密钥的有效期;签名密钥需要经常刷新。
⚠
避免在公开可访问的配置中暴露您的 AWS 访问密钥和签名密钥。