aws-auth: Module Lua resty pour calculer l'en-tête d'autorisation de signature AWS v4
Installation
Si vous n'avez pas encore configuré l'abonnement au dépôt RPM, inscrivez-vous. Ensuite, vous pouvez procéder avec les étapes suivantes.
CentOS/RHEL 7 ou Amazon Linux 2
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install lua-resty-aws-auth
CentOS/RHEL 8+, Fedora Linux, Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install lua5.1-resty-aws-auth
Pour utiliser cette bibliothèque Lua avec NGINX, assurez-vous que le nginx-module-lua est installé.
Ce document décrit lua-resty-aws-auth v0.12 publié le 13 janvier 2017.
Utilitaires simples lua resty pour générer des en-têtes d'autorisation et de signature amazon v4.
Utilisation
local aws_auth = require "resty.aws-auth"
local config = {
aws_host = "email.us-east-1.amazonaws.com",
aws_key = "AKIDEXAMPLE",
aws_secret = "xxxsecret",
aws_region = "us-east-1",
aws_service = "ses",
content_type = "application/x-www-form-urlencoded",
request_method = "POST",
request_path = "/",
request_body = { hello="world" } -- table de tous les paramètres de la requête
}
local aws = aws_auth:new(config)
-- obtenir l'en-tête d'autorisation généré
-- ex: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/iam/aws4_request,
--- SignedHeaders=content-type;host;x-amz-date, Signature=xxx
local auth = aws:get_authorization_header()
-- obtenir l'en-tête x-amz-date
local amz_date = aws:get_amz_date_header()
Ajoutez les en-têtes Authorization et x-amz-date à ngx.req.headers
aws:set_ngx_auth_headers()
Références
Signing AWS With Signature V4
AWS service namespaces list
AWS region and endpoints
GitHub
Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-aws-auth.