根据我对如何设置对amazon s3存储桶的安全访问的评论,我们首先生成一个IAM用户,然后绑定一个允许s3访问该用户的安全策略。之后,我们可以为存储桶生成API密钥,可以验证存储桶访问请求。这是我在这一点上的理解,如果我错过了什么,请纠正我。
我认为API密钥应该只是服务器端(Secret Access Key
)。换句话说,将这些直接放在webapp中并不安全吗?因此,我们首先必须将数据发送到我们的服务器,然后在那里我们可以使用API密钥将其发送到存储桶?
有没有办法直接从网络应用程序访问亚马逊s3存储桶?
根据与@CaesarKabalan的讨论,这听起来像是允许这样做的方法:
1)创建可以创建可通过Amazon Cognito进行身份验证的身份的IAM用户 - 让我们调用从此步骤Cognito凭据分配的凭据。
2)用户使用Google
登录webapp3)webapp向webapp的服务器发出请求(可能是lambda函数)以使用Amazon Cognito注册用户
4)webapp现在直接从Amazon Cognito获取用户的凭据,并使用这些凭据将数据发送到s3存储桶。
我认为这就是我们在概念上的位置。现在是时候测试了!
答案 0 :(得分:2)
根据您的问题,我不确定您的应用程序的哪些部分在AWS或您的安全策略中,但您基本上有三个选项:
很高兴回答任何问题或澄清。