Cyb*_*kie 11 api amazon-s3 amazon-web-services
我正在尝试在Amazon S3控制台中创建新的存储桶策略并获取错误
策略中的主体无效 - "AWS":"my_username"
我正在使用的用户名是我的默认存储桶被授予者.
我的政策
{
"Id": "Policy14343243265",
"Statement": [
{
"Sid": "SSdgfgf432432432435",
"Action": [
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:GetObject",
"s3:GetObjectVersion",
"s3:GetObjectVersionAcl",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectVersionAcl"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::my_bucket/*",
"Principal": {
"AWS": [
"my_username"
]
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我会收到错误.我究竟做错了什么?
wil*_*ynn 16
如错误消息所示,您的主体不正确.检查有关如何修复它的指定Principals的S3文档.如示例策略中所示,它需要类似于arn:aws:iam::111122223333:root.
更好的解决方案:
您可以定义“这些是可以触摸这个的人”,而不是说“这个桶可以被这个用户触摸”。
现在听起来很傻,但请等到您再添加 42 个存储桶和 60 个用户。拥有一个管理所有资源访问的中心位置将节省一天的时间。
我在 S3 存储桶策略生成器中也遇到了同样的错误。结果表明,现有策略之一的主体已被删除。问题不在于添加的策略。
在这种情况下,要发现错误的策略,您可以查找在 ARN 中没有账户或角色的委托人。
所以,而不是看起来像这样:
"Principal": {
"AWS": "arn:aws:iam::123456789101:role/MyCoolRole"
}
Run Code Online (Sandbox Code Playgroud)
它看起来像这样:
"Principal": {
"AWS": "ABCDEFGHIJKLMNOP"
}
Run Code Online (Sandbox Code Playgroud)
因此,它不是正确的 ARN,而是像ABCDEFGHIJKLMNOP这样的字母数字键。在这种情况下,您需要确定错误主体存在的原因,并且最有可能对其进行修改或删除。希望这会对某人有所帮助,因为很难找到我,而且我没有找到任何文件来表明这一点。
| 归档时间: |
|
| 查看次数: |
28650 次 |
| 最近记录: |