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

使用AWS CDK创建IAM用户设置临时密码报错,求无需Secrets Manager的方案

报错原因

AWS CDK 中 IAM User 构造函数的password属性仅接受SecretValue类型的参数,直接传入普通字符串会触发类型校验错误。

无需 Secrets Manager 的实现方案

直接使用 CDK 内置的SecretValue.unsafePlainText()方法将明文密码包装为符合要求的SecretValue类型即可,不需要额外部署 Secrets Manager 资源。

  • 注意:该方法会将密码明文写入 CDK 合成后生成的 CloudFormation 模板中,仅适用于测试、非敏感场景,生产环境建议使用加密存储服务存放敏感凭证。
修正后的完整代码
import cdk = require('@aws-cdk/core')
import * as logs from '@aws-cdk/aws-logs';
import s3 = require("@aws-cdk/aws-s3");
import * as cloudtrail from '@aws-cdk/aws-cloudtrail';
import cloudwatch = require('@aws-cdk/aws-cloudwatch');
import * as iam from "@aws-cdk/aws-iam";
import * as lambda from "@aws-cdk/aws-lambda"
import path = require('path');
import events = require("@aws-cdk/aws-events");
import * as targets from "@aws-cdk/aws-events-targets";
import { SecretValue } from '@aws-cdk/core';


export class CloudComplianceUserBaselineStack extends cdk.Stack {
    constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
      super(scope, id, props);
    
      const CisUser = new iam.User(this, 'CisUser',{
          userName: 'CisUser',
          password: SecretValue.unsafePlainText('testPassword12345%$'),
          passwordResetRequired: true,
      })
      const TestUser = new iam.User(this,"TestUser",{})
      const adminGroup = new iam.Group(this, 'AdminGroup',{
        managedPolicies: [
          iam.ManagedPolicy.fromAwsManagedPolicyName("AdministratorAccess")
        ]
      })
      const AuditGroup = new iam.Group(this,'AuditGroup',{
        managedPolicies:[
          iam.ManagedPolicy.fromAwsManagedPolicyName("ReadOnlyAccess")
        ]
      })
      AuditGroup.addUser(CisUser)
      adminGroup.addUser(TestUser)
      
    }
}
额外修正说明

原代码中仅从@aws-cdk/aws-iam导入了User和Group两个类,后续代码使用iam.User、iam.Group会触发未定义错误,因此修正时将导入语句改为导入整个iam命名空间。

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

相关产品推荐
方舟 Agent Plan

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

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