我是亚马逊AWS平台的新手。
我的实现场景是这样的,我需要一个具有公共读取权限的S3桶来存储用户的个人资料图片和网站的其他静态图像,比如徽标和背景。应用程序的用户可以上传配置文件图片。
当我试图访问这个S3桶时,我得到了403个禁止错误。
我已经做了以下工作,通过阅读一些博客,不确定我到底是在哪里出错。
步骤1:为带有公共读取访问权限的US 2(与S3实例相同的区域)创建一个名为"test.domain.com“的区域。
步骤2:创建具有以下配置的策略
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": [
"arn:aws:s3:::*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:ListObject"
],
"Resource": [
"arn:aws:s3:::test.domain.com/*"
]
}步骤3:为Amazon创建一个新角色,并附加上述创建的策略。
步骤4:将新创建的角色附加到EC2实例
步骤5:使用VS2015附带的预定义模板创建MVC应用程序,通过nuget包管理器安装AWSSDK,并编写以下代码以查看一切是否正常。
//getting instanceprofilecredentials
var profile = new InstanceProfileAWSCredentials();
//creating s3 client with credentials and region
var s3= new AmazonS3Client(profile, Amazon.RegionEndpoint.USEast2);
//creating a new request and assigning bucket name
var request = new ListObjectsRequest();
request.BucketName = "test.domain.com";
//sending the request
var response = s3.ListObjects(request);
//counting no of existing objects
int totalObjects=response.S3Objects.Count;
//display as controllers action result
return Content(totalObjects)步骤6:使用web 2015的web部署部署应用程序。
任何帮助都要感谢。谢谢。
发布于 2017-08-29 20:33:22
添加以下策略规则以允许基于角色的访问解决了此问题
{
"Sid": "AllowPassRole",
"Effect": "Allow",
"Action": [
"iam:PassRole",
"iam:ListInstanceProfiles"
],
"Resource": "*"
}https://stackoverflow.com/questions/45907571
复制相似问题