aws_signing_key

`aws_signing_key` 指令指定用于通过 NGINX 对访问 AWS 服务的请求进行身份验证的 AWS 签名密钥。

语法aws_signing_key string;
默认值none
上下文http, server, location
参数1

说明

aws_signing_key 指令是 NGINX 模块的一部分,该模块便于将请求代理到经过身份验证的 AWS 服务(例如 S3)。该指令接受一个参数,即预先计算的签名密钥。该签名密钥是一个加密过程的输出,该过程用于按 AWS's signature version 4 signing process 指定的方式对请求进行认证。

当在 NGINX 中配置与 AWS 服务的交互时,必须对签名密钥进行安全处理。签名密钥不应与 AWS’s secret access key 混淆;它是为认证而专门生成的,且使用期限有限(通常有效期为一周)。为避免潜在的安全风险,通常建议不要在 NGINX 服务器上存储 AWS secret key。相反,应使用安全的系统按需管理和分发签名密钥。必须正确设置 aws_signing_key 指令以确保请求能够成功认证;否则,发送到 AWS 的请求将无法通过认证。

该指令可用于多种上下文:http, server, and location,从而根据访问 AWS 服务的方式提供灵活的配置。与 aws_access_keyaws_key_scopeaws_endpoint 等其他指令结合使用时,它构成了管理 AWS 服务身份验证的完整配置。注意,由于该模块不会检查签名密钥的存在,跳过此配置可能导致访问错误,尤其是在向 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;
    }
}

确保签名密钥保持安全,尽量不要将其直接硬编码在配置中。

签名密钥需要定期刷新,因为其有效期有限。

签名密钥与访问密钥或区域不匹配可能导致身份验证失败。

← 返回所有指令