【问题标题】:Connecting to a web service on EC2 AWS连接到 EC2 AWS 上的 Web 服务
【发布时间】:2014-07-31 02:06:08
【问题描述】:

我们有一个在 AWS 上的 EC2 实例上运行的 Web 服务 API。我们希望从我们管理的外部应用程序连接到它,例如 iphone 应用程序,不同服务器上的其他前端应用程序。我不知道如何验证这些。我是否将 ip 添加到 EC2 安全组或 IAM?然后在发出 JSON 请求时,我需要发送 AWS 访问密钥吗?这些是在标题中发送的吗?所以说一个示例调用是:

API.post("http://awsserver.com/app_api/v1/request", 查询:{ customer_name:“John Doe”,customer_email:“test@test.com”},标题: {"AWS_ACCESS_KEY_ID"=>"exampletoken", "AWS_SECRET_KEY" => "秘密示例"})

我已经尝试过搜索,但令人惊讶的是没有找到很多。任何帮助都会很棒,谢谢。

【问题讨论】:

    标签: ruby-on-rails amazon-web-services amazon-ec2


    【解决方案1】:

    首先,不要在任何 POST 中以纯文本形式发送您的访问密钥和秘密。访问密钥和秘密密钥用于生成唯一令牌,这些令牌会过期以访问您的账户级别的 AWS 资源,而不是您的应用程序 (API)。

    我做了很多假设,但是如果您打算从移动设备访问此 API,则需要在应用程序级别完成身份验证,因为它们的 IP 会发生变化。

    查看 OAuth,设备从您的应用程序中的某些身份验证机制请求访问,这将返回一个令牌,您可以在标头中的后续 POST 请求中发送。

    对于访问您的 API 的服务器,您当然可以将这些 EC2 实例 IP 添加到安全组以打开对您的 API 服务器的访问权限并拒绝所有其他 IP 的访问,但是请记住,如果 EC2 实例没有弹性 IP,则在任何重新启动时它们将具有不同的 IP,需要添加到您的安全组中。

    【讨论】:

      猜你喜欢
      • 2012-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-08
      • 2018-03-25
      • 2016-04-30
      • 1970-01-01
      相关资源
      最近更新 更多