2

我有一个名为“payroll-manager”的存储桶。我可以使用 cognito 身份验证的用户放置对象等,我修改了身份池的角色以完全访问 s3(我遵循了这个示例)。到目前为止,一切都很好。

现在我需要更改我的策略以允许用户仅从他们自己的文件夹中读取、写入等。我在谷歌上搜索了如何做到这一点,并从 AWS 中找到了这个示例。我从我的 cognito 角色中删除了对 s3 策略的完全访问权限,并按照这个示例创建了一个策略,问题是我总是收到一条禁止消息。

我打开了 IAM 策略模拟器,我发现我什至无法设置这个简单的策略,因为它总是拒绝我的权限: 在此处输入图像描述

如果我将资源更改为“*”,它允许我: 在此处输入图像描述

在这个例子中(我只有 1 个桶)。将资源与 * 或 ARN 一起使用不应该相同吗?

我应该怎么做才能定义像 AWS 这样的策略? 在此处输入图像描述

4

1 回答 1

0

TLDR;你正在做的是正确的方法,它可以工作,修复测试对象。

您可能无法模拟 cognito 的策略,因为您需要以某种方式在模拟器中设置 cognito-identity。

要通过简单的策略,您所缺少的就是设置对象 arn 以匹配您的存储桶。您将政策限制为 payroll-manager,但您正在使用 * 进行测试

尝试将对象设置为arn::aws::s3:::payroll-manager/example.txt以检查简单策略是否有效

于 2021-03-03T00:03:33.010 回答