我的用例是:我们有不同的api,用户点击该api即可获取数据。当前,用户必须发送授权头中的密钥。然后,我们的api验证密钥。现在要求不是发送密钥,而是用户将在标头中发送签名和keyIdentifier。然后,我们的api从KMS获取针对此标识符的密钥,并再次创建签名。如果两者相同,则将继续进行请求,否则将被拒绝。
let opt={
host: "1hf7rp3nqe.execute-api.eu-west-1.amazonaws.com",
method: "GET",
url: `https://a23t56yu.execute-api.eu-west-1.amazonaws.com/dev/devices`,
path: "/test/users",
timestamp: "20120215"
}
let req=aws4.sign(opt, {accessKeyId: "sample", secretAccessKey: '7CDLnmk9'});