我使用AWS S3存储pdf文件、文档和其他文件,并在EC2上运行我的后端java应用程序和前端react应用程序。
我的要求,
-
EC2后端应用程序应该可以使用API或Java客户端访问用于放置和获取对象的S3存储桶
-
EC2前端应用程序应该能够使用S3 URL访问对象
-
EC2后端应用程序应该能够使用S3 URL访问对象
添加了IAM策略,以获得对S3存储桶的EC2实例访问,并使用API实现put和get。
对于,使用S3 URL访问对象,启用了pUblic访问,但仅限于前端域,因此没有其他人可以直接访问URL,并且只能通过前端访问。
{
"Version": "2012-10-17",
"Id": "http referer policy example",
"Statement": [
{
"Sid": "Allow get requests originating from www.example.com and example.com.",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket-uat/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"http://www.example.com:9000/*",
]
}
}
}
]
}
这正在按预期进行。现在,我只能在前端应用程序中使用S3 URL访问文件,而不能在前端应用软件之外访问。
现在,我需要EC2实例也使用URL访问S3对象。不确定,如何在此策略中添加EC2实例访问权限。我的EC2实例数可以从2更改为5.6,。。。。所以我想让它通用,这样我当前和未来的所有后端EC2实例都可以通过URL访问。