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

通过CloudFormation将用户访问密钥与秘密密钥存储至Secrets Manager

原模板可用性结论

原模板无法正常实现需求,存在2个核心错误:

  • SecretString字段直接使用${变量名}的写法不符合CloudFormation JSON模板的语法规则,没有使用Fn::Sub内部函数做变量解析,最终存入Secrets Manager的会是未解析的字面量字符串,无法拿到真实的Access Key和Secret Key值
  • 模板描述字段与实际功能完全无关,会误导后续维护人员
修复后可正常运行的模板
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "自动生成指定IAM用户的访问密钥并同步存储至Secrets Manager",
    "Parameters": {
        "secretname": {
            "Type": "String",
            "Description": "存储密钥的Secrets Manager资源名称"
        },
        "myuser": {
            "Type": "String",
            "Description": "已存在的IAM用户名",
            "AllowedPattern": "[a-zA-Z0-9+=,.@_-]+"
        }
    },
    "Resources": {
        "myaccesskey": {
            "Type": "AWS::IAM::AccessKey",
            "Properties": {
                "UserName": {
                    "Ref": "myuser"
                }
            }
        },
        "mysecrets": {
            "Type": "AWS::SecretsManager::Secret",
            "Properties": {
                "Name": {
                    "Ref": "secretname"
                },
                "SecretString": {
                    "Fn::Sub": "{\"Access_Key\":\"${myaccesskey}\",\"Secret_Key\":\"${myaccesskey.SecretAccessKey}\"}"
                }
            }
        }
    },
    "Outputs": {
        "SecretArn": {
            "Description": "存储密钥的Secrets Manager ARN",
            "Value": {
                "Ref": "mysecrets"
            }
        }
    }
}
可优化的生产级配置项
  • 新增KMS密钥参数,支持指定自定义KMS密钥加密Secret,替换默认的AWS托管密钥,满足等保等合规要求
  • 新增Secret标签配置项,支持按团队、业务维度打标签,方便资源计费和权限管控
  • 配置删除策略,给Secret资源添加DeletionPolicy: Retain,避免栈误删时导致密钥丢失无法恢复
  • 新增访问密钥状态控制参数,支持按需将生成的AccessKey设置为禁用状态,无需手动修改模板
  • 若需求允许自动创建IAM用户,可新增AWS::IAM::User资源,无需预先手动创建用户再传入用户名参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:15:07