如何确定哪种政策/角色授予对S3存储桶的访问



我有一个cognito池/联合身份设置,用户通过AWS AMPLLIFY接收临时IAM凭据。这些用户可以从几个S3存储桶中访问GetObject,即使:

  • 这些存储桶已禁用所有公共访问
  • 存储桶策略页面为空白
  • 与Cognito群体相关的IAM角色是这些用户是(与Cognito-Indentity.amazonaws.com的信任关系)的成员没有任何政策,即授予任何S3权限。所附的政策仅适用于Appsync,Cognito和Apigateway

如果我在包含的对象上创建一个新的存储桶和点getObject,则用户将被禁止403,这表明某些特定于存储桶的策略在某处授予访问权限。问题是我们有很多政策和角色,其中许多用于生产,所以我不能简单地进行/关闭测试来缩小范围。

是否有一种方法可以以某种方式追踪哪种策略/角色正在为特定的S3 GetObject请求提供访问权限?

edit 我已经运行了与Cognito组关联的角色的IAM策略模拟器,并为所讨论的对象拒绝了。

我试图正确阻止访问的对象没有为它们设置的权限。水桶有:

  • 阻止新的公共ACL并上传公共对象(推荐):true
  • 删除通过公共ACL授予的公共访问(建议):true
  • 阻止新的公共存储桶政策(推荐):true
  • 如果存储桶有公共政策(推荐),则阻止公共和交叉访问访问:true

UPDATE 我已经将CloudTrail记录添加到了我的存储桶中。尽管我通过控制台从存储桶中进行的任何下载记录了带有EventName ='getObject'的事件,但通过AWS JavaScript SDK记录了s3.getObject下载的任何事件。我该如何将这些事件记录?

使用CloudTrail登录Amazon S3 API调用。

S3操作中的CloudTrail中记录的事件包括有关请求的操作,操作的日期和时间,请求参数和用户身份的信息,例如:

  • ARN:AWS:IAM :: 123456789012:用户/爱丽丝
  • ARN:AWS:STS :: 123456789012:假定的/roletobeassumed/mySessionName

相关内容

  • 没有找到相关文章