You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建IAM角色遇MalformedPolicyDocument错误:存在禁止字段Resource

问题原因及解决方法

你犯了一个常见的IAM概念混淆错误:

  • aws iam create-role命令的--assume-role-policy-document参数对应的是IAM角色的信任策略,而非权限策略。
  • 信任策略的作用是定义「哪些实体可以扮演这个角色」,它的语法规则里不允许出现Resource字段,你把用于授权Route53操作的权限策略内容直接填进去了,所以触发了MalformedPolicyDocument错误。

解决步骤

  1. 创建正确的信任策略文件(比如命名为trust-policy.json)
    根据你的使用场景填写内容,比如如果是让EC2实例角色能扮演该角色,内容如下:

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

    如果你是在EKS集群中使用ExternalDNS,需要替换为对应集群的OIDC身份提供者作为Principal。

  2. 使用信任策略创建IAM角色
    执行以下命令:

    aws iam create-role --role-name externaldns --assume-role-policy-document file://trust-policy.json
    
  3. 将Route53权限策略附加到角色上
    用你原来的external_dns.json文件(带Route53权限的策略),执行命令将其作为内联策略附加到角色:

    aws iam put-role-policy --role-name externaldns --policy-name externaldns-route53 --policy-document file://external_dns.json
    

内容的提问来源于stack exchange,提问作者0xsegfault

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 19:31:03