允许用户池中的 Cognito 用户访问 S3 存储桶的存储桶策略

roo*_*ous 5 amazon-s3 amazon-web-services amazon-iam amazon-cognito

我正在尝试向我的存储桶添加存储桶策略,因为我的存储桶位于根 aws 账户中,并且我想限制根账户下的其他用户、角色等访问我的存储桶,但我的用户中的特定 Cognito 用户除外水池。

我不想也使用身份池——我只想将 Cognito 用户称为我的存储桶策略中的主体。有没有办法在不使用身份池的情况下做到这一点?我找不到任何执行此操作的示例策略。

kei*_*ani 0

您可以将存储桶策略的原理设置为 Cognito 用户的身份验证角色。就我而言,原则看起来像

"Principal": {
    "AWS": "arn:aws:iam::123456789000:role/NAME_OF_MY-authRole"
},
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过更改资源来进一步控制访问。以下是AWS 文档中的示例。

"arn:aws:s3:::bucket-name/cognito/application-name/${cognito-identity.amazonaws.com:sub}",
                "arn:aws:s3:::bucket-name/cognito/application-name/${cognito-identity.amazonaws.com:sub}/*"
Run Code Online (Sandbox Code Playgroud)