aws_sign
aws_sign 指令在代理到 AWS 服务的请求时启用 AWS Signature Version 4 身份验证。
NGINX module to proxy to authenticated AWS services
·
httpserverlocation
语法aws_sign;
默认值none
上下文http, server, location
参数none
说明
aws_sign 指令用于 NGINX 配置中,使对 AWS 服务的请求自动签名,特别是使用 Signature Version 4 签名流程对 Amazon S3 或其他 AWS 端点进行经过身份验证的代理。该指令不接受任何参数,并与其他指令(如 aws_access_key、aws_key_scope 和 aws_signing_key)结合使用,这些指令提供签名过程所需的凭证和上下文。
当该指令包含在 server 或 location 区块内时,NGINX 会利用配置的 AWS 凭证和签名信息对外发请求进行签名。签名会考虑请求 URI、头部和时间戳等因素,生成 AWS 要求的有效授权头以对请求进行身份验证。使用此指令有助于确保敏感的 AWS 密钥不会被直接暴露,同时仍能通过 NGINX 安全地与 AWS 服务交互。
需要与 aws_sign 指令一起正确配置 aws_access_key、aws_key_scope 和 aws_signing_key,以确保签名过程顺利运行。配置错误可能导致 NGINX 在尝试与 AWS 服务通信时发生身份验证错误。
配置示例
server {
listen 8000;
aws_access_key your_aws_access_key;
aws_key_scope scope_of_generated_signing_key;
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 凭证已正确指定;密钥不匹配可能导致身份验证失败。
⚠
生成的签名密钥有效期有限(一周);请定期刷新它们。
⚠
指令的顺序至关重要;aws_sign 必须在相关上下文(server 或 location)中正确定义才能生效。