【问题标题】:AWS malformed policy errorAWS 格式错误的策略错误
【发布时间】:2023-03-19 18:23:02
【问题描述】:

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

aws iam put-group-policy --group-name my-group --policy-name \
    s3-full-access --policy-document /tmp/policy.json

这是/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*"
    }
  ]
}

我不断收到以下错误:

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

我不知道如何继续,错误太不具体了。有谁能帮忙吗?

【问题讨论】:

    标签: amazon-web-services


    【解决方案1】:

    解开这个谜题!

    必须在策略文件名前加上 file:// 前缀:

    aws iam put-group-policy --group-name my-group --policy-name s3-full-access --policy-document file:///tmp/policy.json
    

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

    所以它不是文件中的策略语法,而是CLI根本看不到文件,这会导致错误。

    【讨论】:

    • 请注意,file:// 的前缀和以/ 开头的绝对路径可能意味着您需要file:///mypath/myfile.json(三个正斜杠而不是两个)。
    • 天啊。我在我正在关注的教程中看到了该文件,但我把它拿出来了,因为我认为它是 Windows 的东西
    • 相对路径(当前目录):file://./config/file.json
    • 有点笨,CLI 应该像普通人一样使用-f 选项
    【解决方案2】:

    我在窗口 10 上遇到了同样的问题,这对我有帮助。

    **file** : followed by **two Forward slash** like         :"file://"
    **Path on window 10** : followed by **Backward slash** like 
    :"c:\Users\Anand\Desktop\anand-jan19.json"
    
    C:\Users\Anand>aws iam create-policy --policy-name anand-jan19 --policy-document file://c:\Users\Anand\Desktop\anand-jan19.json
    {
        "Policy": {
            "PolicyName": "anand-jan19",
            "PolicyId": "EQWEQBV33ewrwYCRCS",
            "Arn": "arn:aws:iam::56433378:policy/anand-jan19",
            "Path": "/",
            "DefaultVersionId": "v1",
            "AttachmentCount": 0,
            "PermissionsBoundaryUsageCount": 0,
            "IsAttachable": true,
            "CreateDate": "2019-02-10T04:03:32Z",
            "UpdateDate": "2019-02-10T04:03:32Z"
        }
    }
    

    【讨论】:

      【解决方案3】:

      ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++ PS 命令:示例 1。

      aws iam create-role --role-name vmimport --assume-role-policy-document file:///policy/trust-policy.json

      ****实际路径******:C:\policy\trust-policy.json ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++

      PS 命令:示例 2。

      aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file:///policy/role-policy.json

      ****实际路径******:C:\policy\role-policy.json ++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++

      【讨论】:

      • 你的问题到底是什么?
      猜你喜欢
      • 2020-04-24
      • 2020-10-30
      • 2014-10-16
      • 2020-11-03
      • 2011-03-21
      • 1970-01-01
      • 2020-01-27
      • 2023-01-12
      • 1970-01-01
      相关资源
      最近更新 更多