问题描述
我有一个名为“payroll-manager”的存储桶。我可以使用 Cognito 身份验证的用户放置对象等,我修改了身份池的角色以拥有对 s3 的完全访问权限(我遵循此 example)。到目前为止一切顺利。
现在我需要更改我的策略以允许用户只从他们自己的文件夹中读取、写入等。我用谷歌搜索如何做到这一点,我从 AWS 找到了这个 example。我从我的 cognito 角色中删除了对 s3 策略的完全访问权限,并按照此示例创建了一个策略,问题是我总是收到禁止消息。
我打开了 IAM 策略模拟器,我发现我什至无法设置这个简单的策略,因为它总是拒绝我的权限:
在这个例子中(我只有 1 个存储桶)。使用带有 * 或 ARN 的资源不应该是一样的吗?
解决方法
TLDR;你正在做的是正确的方法,它可以工作,修复测试对象。
您可能无法模拟 cognito 的策略,因为您需要以某种方式在模拟器中设置 cognito-identity。
要通过简单的策略,您所缺少的只是设置对象 arn 以匹配您的存储桶。您将政策限制为工资经理,但您正在使用 *
进行测试尝试将对象设置为 arn::aws::s3:::payroll-manager/example.txt
以检查简单策略是否有效