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

如何在指定AWS账户通过CloudFormation创建自定义IAM托管策略

解决方案

1. 修复JSON参数类型问题

CloudFormation参数类型里没有Json这一选项,得把PolicyJson参数改成String类型,再用!DecodeJson函数把输入的JSON字符串解析成合法的JSON对象。另外你模板里的!RefPolicyJson是拼写错误,应该写成!Ref PolicyJson。

修改后的完整模板如下:

AWSTemplateFormatVersion: "2010-09-09"
Description: "在指定账户创建自定义IAM托管策略"

Parameters:
  PolicyName:
    Type: String
    Description: 自定义策略的名称
  PolicyDescription:
    Type: String
    Description: 策略描述,创建后无法修改
  PolicyJson:
    Type: String
    Description: 权限策略的JSON格式字符串,请确保语法正确
  AccountID:
    Type: String
    Description: 要创建策略的目标AWS账户ID

Resources:
  ManagedPolicy:
    Type: "AWS::IAM::ManagedPolicy"
    Properties:
      ManagedPolicyName: !Ref PolicyName
      Description: !Ref PolicyDescription
      Path: "/"
      PolicyDocument: !DecodeJson !Ref PolicyJson

Outputs:
  PolicyARN:
    Description: 新创建的托管策略ARN
    Value: !Ref ManagedPolicy

2. 跨账户创建策略的实现方法

单CloudFormation栈无法直接切换到其他账户创建资源,得用CloudFormation StackSets来实现跨账户部署,具体步骤如下:

前置准备:目标账户配置角色

目标账户中必须创建AWSCloudFormationStackSetExecutionRole角色,这个角色需要满足两个条件:

  • 允许主账户的实体扮演它
  • 拥有创建、修改IAM托管策略的权限

角色信任策略示例(替换你的主账户ID为实际ID):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::你的主账户ID:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

角色权限策略示例:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:CreateManagedPolicy",
        "iam:DeleteManagedPolicy",
        "iam:UpdateManagedPolicy"
      ],
      "Resource": "*"
    }
  ]
}

部署步骤

  1. 在主账户的CloudFormation控制台中,创建StackSet,选择上述修改后的模板。
  2. 配置StackSet时,指定目标账户ID(即参数中的AccountID),同时填写策略名称、描述、权限JSON字符串等参数。
  3. 选择部署区域,提交后StackSet会自动在目标账户中扮演指定角色,完成托管策略的创建。

关键注意事项

  • 输入PolicyJson时,直接粘贴格式化后的合法JSON字符串即可,控制台会自动处理格式问题。
  • 部署完成后,可在目标账户的IAM控制台查看新策略,也能通过StackSet的输出获取策略ARN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:55:26