Aws4 唱歌:任务 1 中提到的 URI 参数是什么:创建规范请求
Aws4 singning: What is URI parameter mention in Task 1: Create a Canonical Request
在 aws 文档中 https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
第 2 步:规范 URI 是 URI 的绝对路径部分的 URI 编码版本,它是 URI 中从 HTTP 主机到查询字符串开头的问号字符(“?”)的所有内容参数(如果有的话)。这是什么意思?
你能用这个示例请求解释一下吗https://customer-service.example.com/dev/customer/?name=alex&country=us
请参考aws4 npm包。
在其文档中,AWS 建议使用 aws-sdk,因为 URL 签名对于非常简单的任务(如获取 s3 对象)来说可能会变得乏味。我们使用 aws4 是因为在我们的代码中导入 aws-sdk 带来了不必要的依赖。
下面是从 aws secretmanager 列出机密的示例。
在下面的示例中,
- AWS 服务由以下服务指示:'secretsmanager'
- 操作由 "X-Amz-Target" 指示:"secretsmanager.ListSecrets"
您可以参考corrospoding aws服务的API根据您的需要修改下面的例子。
请注意以下示例假定 ec2 已分配了正确的角色来执行此请求。这就是为什么您会在下面的示例中看到它使用 sts 的原因。
如果您的情况不同,请检查 documentation 以检查密钥是如何通过 aws4 传递的 api。
var http = require('http'),
https = require('https'),
aws4 = require('aws4')
request(aws4.sign({service: 'sts', path: '/?Action=GetSessionToken&Version=2011-06-15'}))
function request(o) { https.request(o, function(res) { res.pipe(process.stdout) }).end(o.body || '') }
request(aws4.sign({
service: 'secretsmanager',
region: 'us-east-1',
method: 'POST',
path: '/',
headers: {
"Accept-Encoding": "identity",
"X-Amz-Target": "secretsmanager.ListSecrets",
"Content-Type": "application/x-amz-json-1.1"
},
body: '{}'
}))
在 aws 文档中 https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
第 2 步:规范 URI 是 URI 的绝对路径部分的 URI 编码版本,它是 URI 中从 HTTP 主机到查询字符串开头的问号字符(“?”)的所有内容参数(如果有的话)。这是什么意思?
你能用这个示例请求解释一下吗https://customer-service.example.com/dev/customer/?name=alex&country=us
请参考aws4 npm包。
在其文档中,AWS 建议使用 aws-sdk,因为 URL 签名对于非常简单的任务(如获取 s3 对象)来说可能会变得乏味。我们使用 aws4 是因为在我们的代码中导入 aws-sdk 带来了不必要的依赖。
下面是从 aws secretmanager 列出机密的示例。
在下面的示例中,
- AWS 服务由以下服务指示:'secretsmanager'
- 操作由 "X-Amz-Target" 指示:"secretsmanager.ListSecrets"
您可以参考corrospoding aws服务的API根据您的需要修改下面的例子。
请注意以下示例假定 ec2 已分配了正确的角色来执行此请求。这就是为什么您会在下面的示例中看到它使用 sts 的原因。
如果您的情况不同,请检查 documentation 以检查密钥是如何通过 aws4 传递的 api。
var http = require('http'),
https = require('https'),
aws4 = require('aws4')
request(aws4.sign({service: 'sts', path: '/?Action=GetSessionToken&Version=2011-06-15'}))
function request(o) { https.request(o, function(res) { res.pipe(process.stdout) }).end(o.body || '') }
request(aws4.sign({
service: 'secretsmanager',
region: 'us-east-1',
method: 'POST',
path: '/',
headers: {
"Accept-Encoding": "identity",
"X-Amz-Target": "secretsmanager.ListSecrets",
"Content-Type": "application/x-amz-json-1.1"
},
body: '{}'
}))