为什么此IAM策略存在语法错误



我是AWS的新手/学习者,目前使用LocalStack代替实际的AWS

CCD_ 3是新创建的CCD_ 5存储桶中的对象的有效CCD_。因为bucket是新创建的并且是原始的,除了上传一个文件之外,它中的任何内容都不能从外部访问。我试图通过示例来创建一个策略来了解IAM,该策略允许对S3存储桶的部分进行读取访问。

我根据AWSCLI参考中的此示例创建了以下策略文件:

$ cat ./policy
{
"Version": "2020-04-27",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": [
"arn:aws:s3:::my-bucket/path/to/foo.json"
]
}
]
}

在同一个链接的例子中,我试图用这个命令创建我的策略,但失败了:

$ aws --endpoint-url=http://localhost:4593 iam create-policy --policy-name my-bucket-policy --policy-document file://policy
An error occurred (MalformedPolicyDocument) when calling the CreatePolicy operation: Syntax errors in policy.

为什么这个命令失败了,或者有没有办法得到一条更具描述性的错误消息

(policycwd中的一个文件,我在其中执行awsCLI命令(

根据我的阅读,错误消息意味着格式错误的JSON,但lintershttps://jsonlint.com/指示文本是有效的JSON。此外,源示例的更改是最小的,看起来是合理的:"Version"更改为今天的日期,"Resource"ARN更改为与我相关的日期。

给出的版本不正确。应该是:"2012-10-17">

编辑:原则错误。请参阅评论。基于资源的政策需要原则:

主体(仅在某些情况下是必需的(-如果您创建基于资源的策略,则必须指示您希望允许或拒绝访问的帐户、用户、角色或联合用户。如果要创建IAM权限策略以附加到用户或角色,则不能包含此元素。主体隐含为该用户或角色。

最新更新