簡體   English   中英

策略中的 AWS Boto3 語法錯誤

[英]AWS Boto3 Syntax errors in policy

運行 boto3 to create_policy命令時出現格式錯誤的語法錯誤,令人驚訝的是,我在 AWS 控制台中沒有收到錯誤消息。 我嘗試使用 AWS 控制台的“策略編輯器”對此進行調試,然后單擊“驗證”按鈕,它會創建策略無錯誤。 有誰知道我做錯了什么?

iam_client.create_policy(PolicyName='xxxxx-policy',
                                               PolicyDocument=json.dumps(dir_name + 'xxxxx-policy.json'))

此策略包含以下錯誤: botocore.errorfactory.MalformedPolicyDocumentException:調用 CreatePolicy 操作時發生錯誤 (MalformedPolicyDocument):策略中的語法錯誤。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "iam:ListRoles",
                "sts:AssumeRole"
            ],
            "Resource": "*"
        }
    ]
}

json.dumps會將 Python 字典轉換為 JSON 字符串。 輸入不應是文件名。 實際上,您不需要 json package 來執行此操作。

import boto3

with open('xxx-policy.json', 'r') as fp:
    iam_client = boto3.client('iam')
    iam_client.create_policy(
        PolicyName='xxx-policy',
        PolicyDocument=fp.read()
    )

您正在從文件中讀取文檔:

 with open(dir_name + 'xxxxx-policy.json', 'r') as f: 
     policy_document = f.read() 

 iam_client.create_policy(
         PolicyName='xxxxx-policy',
         PolicyDocument=policy_document)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM