Terraform配置S3桶策略报MalformedPolicy: Invalid principal错误怎么办
Terraform配置S3桶IAM策略报Invalid principal错误的原因
Terraform的plan阶段仅校验本地配置的语法和结构合法性,不会对接AWS校验Principal对应资源的真实有效性,因此会出现plan正常但apply报错的情况,该报错的常见原因如下:
- ARN占位符未替换:检查你配置的Principal ARN中,
<account1-id>这类占位符是否已经替换为对应AWS账号真实的12位数字ID,未替换的占位符会被AWS识别为无效ARN。 - IAM角色信息错误:逐个核对4个角色ARN的准确性,包括账号ID是否正确、角色名拼写是否和对应账号IAM控制台的配置完全一致;如果角色配置了自定义路径前缀(比如
/prod/),ARN中需要补充完整路径,示例:arn:aws:iam::123456789012:role/prod/my_log_role,漏写路径也会导致ARN无效。 - IAM最终一致性延迟:如果上述角色是刚刚创建完成的,IAM资源的创建存在最多1分钟的全球同步延迟,AWS侧还未识别到新角色的存在,此时提交策略就会报错,等待30~60秒后重新执行
terraform apply即可。
你当前的Principal语法是完全合法的,AWS支持Principal.AWS字段传入ARN数组为多个角色授权,语法层面没有问题。
内容的提问来源于stack exchange,提问作者Dimi
相关产品推荐
相关产品推荐

