AWS格式错误的政策错误

Ale*_*ber 40 amazon-web-services

我试图通过AWS CLI设置AWS组策略,如下所示:

aws iam put-group-policy --group-name my-group --policy-name \
    s3-full-access --policy-document /tmp/policy.json
Run Code Online (Sandbox Code Playgroud)

这是/tmp/policy.json的内容:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "s3:ListAllMyBuckets"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::my-bucket*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我一直收到以下错误:

A client error (MalformedPolicyDocument) occurred when calling the PutGroupPolicy operation: The policy is not in the valid JSON format.
Run Code Online (Sandbox Code Playgroud)

我不知道如何继续,错误太不明确.有人能帮忙吗?

Ale*_*ber 74

解决了这个谜语!

是一个file://在政策文件名前面的前缀:

aws iam put-group-policy --group-name my-group --policy-name s3-full-access --policy-document file:///tmp/policy.json
Run Code Online (Sandbox Code Playgroud)

原始错误消息非常具有误导性,因为如果您提供根本不存在的文件名,则会收到相同的消息.

因此,它不是文件中策略语法,而是CLI根本看不到文件的事实,这会导致错误.

  • 请注意,`file://`的前缀和以`/`开头的绝对路径可能意味着你需要`file:/// mypath/myfile.json`(三个正斜杠而不是两个). (3认同)
  • 天啊.我在我正在关注的教程中看到了该文件,但我把它拿出来因为我认为它是Windows的东西 (2认同)
  • 对于相对路径(当前目录):`file://./config/file.json` (2认同)