【问题标题】:REST service signature using AWS使用 AWS 的 REST 服务签名
【发布时间】:2014-12-15 12:22:05
【问题描述】:

我正在考虑将 AWS 用于一个项目,该项目将 IOS 应用程序作为客户端和使用 Java Spring 定制开发的 REST API 的服务器端。我一直在阅读有关使用签名版本(大多数服务的版本 4)对 AWS 服务的所有请求进行签名的必要性,并希望利用该机制来保护我的 REST 服务。有大量文档可用于将 AWS SDK 中的 REST 包装器用于 S3 或 DynamoDB 等服务,但是我无法明确回答如何从在 Elastic Bean stalk 上运行的自定义 REST API 验证签名(例如WAR 部署在实现 Spring REST 的 Tomcat 上)

1) IOS 客户端使用 RestKit 调用 REST 服务(或者我可以在 Amazon SDK for IOS 中使用我可以使用的类)。作为调用的一部分,它指定令牌字符串和 AWS 访问密钥。

2) 服务器端,一个在 Elastic Bean stalk 上运行在 Tomcat 上的 Java 程序,接收 REST 调用并通过首先验证签名来处理它。如果签名对应于重新计算的签名,则允许该请求,否则拒绝它。

谁能指出我在适用于 ObjC 和 Java 的 AWS 开发工具包中可用的内容来执行此 REST 签名验证(同样不使用 S3 等预装服务)的正确方向?

非常感谢。

【问题讨论】:

    标签: java rest amazon-web-services restkit amazon-elastic-beanstalk


    【解决方案1】:

    这是一个很好的问题,也是我们客户非常欢迎的功能请求。截至今天,没有 AWS API 可以为您的自定义 Web 服务验证基于 AWS 访问密钥/秘密密钥的签名。

    但是,AWS 所做的一切都是基于客户的反馈,您的反馈有助于确定我们的开发优先级。我们经常听到这个要求。

    【讨论】:

    • 感谢您的回复,非常感谢。您对以下内容有何看法:我想利用 S3 存储照片并利用 DynamoDB 保存用户配置文件,从而使用 Amazon SDK 方法(通过 Cognito 进行身份验证后)。我可以使用 Amazon SDK 来执行此操作,并且签名的请求将对我的应用程序代码透明。对于自定义 REST 服务调用,在安全性方面,您会推荐什么 OAuth2?大多数 AWS 客户在这方面做了什么?
    • 使用 S3 或 DynamoDB 设计应用程序的最具可扩展性的方式是让客户端使用 JavaScript(用于 Web 应用程序)或 iOS/Android SDK(用于移动应用程序)。这将利用 AWS 后端并卸载您的服务器端基础设施。当需要 API 时,我会将其设为无状态,并且只接受 Cognito 在客户端生成的 AK/SK,以确保您的 API 以您的客户端权限运行。当需要更多权限时,EC2 角色是一个干净的解决方案。
    猜你喜欢
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    • 2021-01-01
    • 2017-09-21
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多