【问题标题】:access AWS S3 from java using IAM Role使用 IAM 角色从 java 访问 AWS S3
【发布时间】:2018-10-16 21:55:48
【问题描述】:

我们将应用程序托管在本地而不是 EC2 上。是否可以使用 IAM 角色而不是来自 java 的配置文件或凭证来访问 AWS S3? 安全团队对在本地存储凭据表示担忧,因为它很容易受到攻击。

据我用谷歌搜索,我找到了使用存储在 Environment 或 .aws 中的凭据作为配置文件进行访问的选项。如果我们需要基于角色的身份验证,那么应用程序应该部署在 EC2 中。但是我们将服务器托管在本地。 如果您有任何建议,请提供。

【问题讨论】:

    标签: java amazon-web-services amazon-s3


    【解决方案1】:

    我不确定我是否了解您想要做什么,但为什么不为该角色分配一个专门的用户?

    您可能会觉得有用的另一件事是使用临时凭据。一般来说,亚马逊为此提供两种服务——Cognito 和 STS(据我了解,Cognito 在幕后使用 STS)。它们有不同的限制,但一般来说,它们允许您在有限的时间内接收凭据。这样,您将获得一个访问 ID、一个秘密(以及一个会话 ID),但它们将是临时的。

    【讨论】:

      【解决方案2】:

      我们将应用程序托管在本地而不是 EC2 上。是否可以使用 IAM 角色而不是来自 java 的配置文件或凭证来访问 AWS S3?

      服务角色绑定到 AWS 服务,因此——长话短说——对于您的本地服务器,您需要使用 AWS API 密钥。

      安全团队对在本地存储凭据表示担忧,因为它很容易受到攻击。

      不幸的是 - 最后,您需要将凭据存储在某处。即使使用 Cognito 或 STS 等服务,您也需要将服务的凭据存储在某处(有效地 - 用于任何外部或云服务,无论您使用何种云或服务)。

      恕我直言,您能做的最好的事情就是使用专用的 AWS 凭证(API 密钥),只有真正需要的权限。

      【讨论】:

        猜你喜欢
        • 2019-06-10
        • 2017-05-27
        • 2019-07-08
        • 2016-07-10
        • 2022-06-30
        • 2016-04-07
        • 2019-10-26
        • 1970-01-01
        • 2018-05-04
        相关资源
        最近更新 更多