我正在尝试使用AWS API Gateway和IAM授权的一个小例子.AWS API Gateway生成以下端点:
https://xyz1234.execute-api.us-east-2.amazonaws.com/Users/users
Run Code Online (Sandbox Code Playgroud)
使用POST操作,没有参数.
最初我关闭了这个POST方法的IAM,我使用Postman验证了结果.然后我创建了一个新的IAM用户并将AmazonAPIGatewayInvokeFullAccess策略附加到用户,从而授予调用任何API的权限.为POST方法启用了IAM.
然后我去了Postman - 并使用AccessKey,Secret Key,AWS Region as us-east-2和Service Name 添加了Authorization,execute-api并尝试执行请求,但我得到InvalidSignatureException错误,403为返回码.
正文包含以下信息:
Signature expired: 20170517T062414Z is now earlier than 20170517T062840Z (20170517T063340Z - 5 min.)"
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
嗨,目前我有一个 angular 应用程序和 java 后端。在我的角度组件 html 中,我有一些图像,例如个人资料照片。提供图像文件的资源由 spring security 保护。所以我的问题是将 json web 令牌附加为图像 url 的一部分是不好的吗?它会导致安全漏洞吗?这是一种不好的做法吗?
以下是我的 angular 代码在 chrome 开发人员工具中的样子。
<div _ngcontent-c5="" class="avatar-circle bg-secondary text-brand-secondary" ng-reflect-klass="avatar-circle" ng-reflect-ng-class="bg-secondary,text-brand-second" style="background-image: url("http://localhost:8080/api/files/4eb81fa8-9c5d-4920-b0f5-c9239fb1cae7?access_token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJnbG9iYWxhZG1pbkBsb2NhbGhvc3QiLCJhdXRoIjoiUk9MRV9HTE9CQUxfQURNSU4iLCJleHAiOjE1NjExOTkwNTh9.UFvdgZNxs_O1uTjtUh64ko3A47R2fxZxYFX0aXv2Jp_TkVrmlBT1mzN40JwclGk3m0sCZONKbnVhgXXKy69DfQ");">
<!--bindings={
"ng-reflect-ng-if": "false"
}-->
</div>
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏。我很想将 access_token 作为 http get 请求标头的一部分传递,但我在任何地方都找不到合适的代码。任何帮助表示赞赏。
如果不需要,签名请求的默认到期值是多少?它是否等于X-Amz-Expires参数的最大可能值,即604800(七天)?
文档(参见上面的链接)X-Amz-Expires仅在查询字符串中传递签名参数的上下文中讨论参数.如果X-Amz-Expires需要参数,是否只需要在查询字符串中传递签名参数(而不是使用Authorization标头传递它们)?
更新:
AWS安全流程简介论文,第17页说
请求必须在请求中的时间戳记的15分钟内到达AWS.否则,AWS拒绝该请求.
现在我们在这里谈什么时间戳?我的猜测是X-Amz-Date.如果我是对的,那么另一个问题就出现了:
X-Amz-Date和X-Amz-Expires参数如何相互关联?对我来说,这听起来像请求到期算法从X-Amz-Date时间戳回落到15分钟,如果X-Amz-Expire不存在的话.我正在阅读亚马逊的身份验证过程,他们使用自定义流程来签署每个请求.
我仍然不明白每个请求的签名是如何停止的,因为每个看到请求并看到签名的人都可以再次发出相同的请求.
如果有人分享一些关于安全性或亚马逊网络服务或一般网络服务的参考书目,我也会感到沮丧.
SSL在这种情况下如何提供帮助?
谢谢!
amazon-s3 ×2
security ×2
amazon-iam ×1
hmac ×1
jwt ×1
postman ×1
web-services ×1
websecurity ×1