如何将 ARN 设置为 s3 策略资源 AWS

时间:2021-03-02 23:32:35

标签: amazon-web-services amazon-s3 amazon-cognito aws-policies

我有一个名为“payroll-manager”的存储桶。我可以使用 Cognito 身份验证的用户放置对象等,我修改了身份池的角色以拥有对 s3 的完全访问权限(我遵循此 example)。到目前为止一切顺利。

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

我打开了 IAM 策略模拟器,我发现我什至无法设置这个简单的策略,因为它总是拒绝我的权限: enter image description here

如果我将资源更改为“*”,它允许我: enter image description here

在这个例子中(我只有 1 个存储桶)。使用带有 * 或 ARN 的资源不应该是一样的吗?

我应该怎么做才能像 AWS 一样定义策略? enter image description here

1 个答案:

答案 0 :(得分:0)

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

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

要通过简单的策略,您所缺少的只是设置对象 arn 以匹配您的存储桶。您将政策限制为工资经理,但您正在使用 *

进行测试

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