目标:我尝试使用AWS在我的Web应用程序上实现两个不同的角色,使用IAM角色访问不同的网页(通过S3存储桶)

时间:2017-12-12 12:01:58

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

简介:我是AWS的新手,因此非常感谢任何帮助

目标:我正在尝试使用AWS在我的Web应用程序上实现两个不同的角色,方法是使用IAM角色访问不同的网页(通过S3存储桶)

我做了什么:

1 - 我已经构建了一个托管在AWS Elastic Beanstalk上的前端应用程序

2 - 应用程序使用AWS Cognito进行身份验证。

3 - 我已将AWS Cognito与AWS Cognito联合身份相集成,以便为每个用户创建身份。

4 - 我在AWS Cognito中创建了一个名为admin的组

5 - 我已向管理员组分配了一个新的管理员IAM角色

6 - 我为角色访问AWS S3添加了内联策略。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1513036814609",
            "Action": "s3:*",
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::opaladminpage"
        }
    ]
}

7 - 我创建了一个S3bucket

8 - 我上传了1页静态网站

9 - 我已将这些S3政策添加到我的存储桶

{
  "Id": "Policy1513079053770",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1513079052595",
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::opaladminpage",
      "Principal": {
        "AWS": [
          "arn:aws:iam::381145069197:role/SASPortalAdministrator"
        ]
      }
    }
  ]
}

10 - 我在我的前端应用程序中添加了一个url链接到我的1页静态网站 错误信息: 当我点击我的应用程序中的链接时,我收到此错误消息?

403 Forbidden
•   Code: AccessDenied
•   Message: Access Denied
•   RequestId: 434343543535GFGFGFGF
•   HostId:citytytTTYTYTUTUT

1 个答案:

答案 0 :(得分:0)

"Resource": [ 
  "arn:aws:s3:::mybucket",  
  "arn:aws:s3:::mybucket/*" 
]

第一个资源适用于存储桶上的操作,第二个资源适用于存储桶中对象的操作。

此外,不要将s3:*作为您的操作,因为这包括删除对象甚至存储桶本身等所有内容。您需要确定必要的实际权限。