尝试使用Boto3创建IAM角色时,总是出现MalformedPolicyDocument错误

克里斯托弗·塔德金

我正在使用默认AWS策略AWSLambdaBasicExecutionRole中的json:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Resource": "*"
    }
  ]
}

这是我用来创建角色的代码:

def create_lambda_role():
205     try:
206         iam = boto3.client('iam')
207 
208         lambda_permissions_json = ''
209         with open('lambda/lambda_permissions.json', 'r') as thefile:
210             lambda_permissions_json = thefile.read()
211 
212         iam.create_role(
213             RoleName='lambda_basic_execution',
214             AssumeRolePolicyDocument=str(lambda_permissions_json)
215         )
216     except botocore.exceptions.ClientError as e:
217         print e.response['Error']['Code']
218         return False
219 
220     return True

但是它总是返回MalformattedPolicyDocument错误,我一生都看不到为什么。

装饰

AssumeRolePolicyDocument参数需要一个JSON信任策略,该策略描述谁可以担任此角色。您正在提供一个策略,该策略描述此角色将访问哪些资源。

有关信任策略的更多信息,请参阅此内容,但承担角色策略应类似于以下内容:

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Principal": {"Service": "ec2.amazonaws.com"},
    "Action": "sts:AssumeRole"
  }
}

这可能不是您想要的,但重点是信任策略描述的是允许谁担任此角色的角色,而不是角色有权访问的角色。

然后,您可以创建另一个包含您的资源权限的策略,并将该策略附加到您的新角色。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

创建IAM策略时出现MalformedPolicyDocument错误

boto3:使用instanceprofile / IAM角色创建实例

AWS 无服务器框架:创建 IAM 角色和策略时出现 MalformedPolicyDocument 错误

错误:创建 IAM 角色 s3_access 时出错:MalformedPolicyDocument

尝试使用 Boto3 调用 Lamba 时出现 InvalidSignatureException

如何仅使用Boto3创建AWS IAM角色附加托管策略

使用boto3创建自动缩放组Amazon EC2时出现关键错误

尝试使用boto3从创建时使用的同一脚本上载文件,但出现错误:无此类文件或目录

尝试使用 boto3 将 numpy 数组上传到 s3 时出现 Pyspark 酸洗错误

创建IAM角色时出错:MalformedPolicyDocument:禁止了字段Resource

创建 IAM 角色时出错:MalformedPolicyDocument:已禁止字段资源

通过 boto3 担任 IAM 用户角色时拒绝访问

boto3:使用 IAM 角色的 S3 存储桶放置事件通知失败

安装boto3时出现访问错误

使用boto3创建具有图层的Lambda函数时出现问题

如何使用Boto3启动具有IAM角色的EC2实例?

通过boto3中的IAM角色过滤实例?

使用 Boto3 时出现权限错误,但可通过 aws cli 工作

创建IAM角色时出错。MalformedPolicyDocument:具有禁止字段Resource。地貌

通过Terraform创建策略时出现MalformedPolicyDocument错误

使用boto3创建RDS实例时指定VPC

我可以在.aws / credentials中使用IAM角色替换aws密钥以使用boto3吗?

尝试使用python2.7中的boto3模块从S3存储桶和S3存储桶获取CSV文件时出现无效的时间戳记错误

使用 Boto3 和 Create_Pipeline 时出现 PipelineActivity 的错误必须只有一个成员

使用boto3创建S3生命周期策略时XML格式错误

python boto3错误:无权对资源执行假定的角色

通过boto3更新S3对象元数据时出现签名错误

从boto3调用AWS Glue Pythonshell作业时出现参数错误

使用Boto3以编程方式获取IAM用户的UserID