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

同CloudFormation模板内创建存储AMI ImageID的SSM参数时创建失败

问题原因与解决方案

原因1:SSM校验AMI有效性所需权限缺失

你当前的IAM策略仅配置了SSM相关操作权限,当AWS::SSM::Parameter的DataType设置为aws:ec2:image时,AWS会自动校验传入的ImageId是否为当前区域下的有效AMI,这个校验过程需要调用ec2:DescribeImages接口,你的执行角色缺少该权限就会导致稳定化检查失败。

修复方案:

在你的SSMCreation策略的Action列表中添加ec2:DescribeImages权限,修改后策略如下:

- PolicyName: SSMCreation
    PolicyDocument:
      Version: "2012-10-17"
      Statement:
        - Effect: Allow
          Action:
            - ssm:DescribeParameters
            - ssm:AddTagsToResource
            - ssm:GetParameter
            - ssm:GetParameters
            - ssm:GetParametersByPath
            - ssm:GetParameterHistory
            - ssm:PutParameter
            - ssm:LabelParameterVersion
            - ssm:DeleteParameter
            - ssm:DeleteParameters
            - ec2:DescribeImages # 新增该行
          Resource:
            - !Sub "arn:${AWS::Partition}:ssm:${AWS::Region}:${AWS::AccountId}:parameter/*"
            - !Sub "arn:${AWS::Partition}:ec2:${AWS::Region}:${AWS::AccountId}:image/*" # 也可按需缩小资源范围

原因2:同模板生成的AMI未就绪就触发SSM参数创建

CloudFormation中AWS::EC2::Image资源返回ImageId属性时,AMI本身可能还处于pending状态未完全可用,此时传入SSM参数会触发校验失败。

修复方案:

添加DependsOn显式依赖,或使用WaitCondition等待AMI状态变为可用后再创建SSM参数。如果是用自定义资源生成的AMI,确保自定义资源的返回逻辑是等到AMI状态为available之后再返回ImageId。

临时验证方案

如果不需要SSM对AMI ID做自动校验,可以先删除DataType: aws:ec2:image配置,直接存储普通String类型的参数,确认参数能创建成功后再逐步排查校验相关问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:18:02