使用IAM角色从Java访问AWS S3

时间:2018-10-16 10:32:08

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

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

就Google而言,我找到了一些选项,可以使用环境或.aws中存储的凭据作为配置文件进行访问。如果我们需要基于ROLE的身份验证,则应将应用程序部署在EC2中。但是我们将服务器托管在本地。 如果您有任何建议,请提供。

2 个答案:

答案 0 :(得分:2)

我不确定我想知道你想做什么,但是为什么不为该角色分配一个专用用户呢?

您可能会发现有用的另一件事是使用临时凭证。通常,亚马逊为此提供两项服务-Cognito和STS(据我了解,Cognito在后台使用STS)。它们具有不同的限制,但总的来说,它们使您可以在有限的时间内接收凭据。这样,您将获得一个访问ID,一个秘密(以及一个会话ID),但是它们将是临时的。

答案 1 :(得分:1)

  

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

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

  

安全团队已经提出了有关将凭据存储在本地的担忧,因为它很容易受到攻击。

很不幸-最后,您需要将凭据存储在某个地方。即使使用Cognito或STS之类的服务,您也需要将服务的凭据存储在某个地方(有效地-对于任何外部或云服务,无论您可以使用哪种云或服务)。

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