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

如何通过CLI或CloudFormation为AWS WorkSpaces在Simple AD中创建目录用户

程序化创建Simple AD用户并同步部署WorkSpace的方案

背景与问题

在AWS WorkSpaces搭配Simple AD的场景中,控制台可通过UI一键完成创建Simple AD目录用户+关联部署WorkSpace的操作,但官方公开的CLI和CloudFormation文档里找不到直接对应的一站式接口——虽然控制台调用了createDirectoryUser这个内部API,但它并未暴露在WorkSpaces的CLI命令集中。

官方支持的实现方式(拆分两步)

最稳妥的方式是拆分操作,调用官方公开的API完成:

1. 先创建Simple AD用户

使用AWS Directory Service的CLI命令创建AD用户,这是官方完全支持的操作:

aws ds create-user \
  --directory-id "d-1234567890" \
  --user-name "jdoe" \
  --password "P@ssw0rd123!" \
  --given-name "John" \
  --surname "Doe"

需确保执行命令的IAM实体拥有ds:CreateUser权限,且密码符合Simple AD的密码策略。

2. 再创建关联的WorkSpace

通过WorkSpaces CLI或CloudFormation创建WorkSpace,指定刚创建的用户名:

CLI示例

aws workspaces create-workspaces \
  --workspaces DirectoryId=d-1234567890,UserName=jdoe,BundleId=wsb-12345678,UserVolumeEncryptionEnabled=true,RootVolumeEncryptionEnabled=true

CloudFormation模板片段

Resources:
  ADUser:
    Type: Custom::DirectoryServiceUser
    Properties:
      ServiceToken: !Ref LambdaFunctionArn
      DirectoryId: !Ref SimpleADID
      UserName: "jdoe"
      Password: "P@ssw0rd123!"
      GivenName: "John"
      Surname: "Doe"

  UserWorkSpace:
    Type: AWS::WorkSpaces::Workspace
    DependsOn: ADUser
    Properties:
      DirectoryId: !Ref SimpleADID
      UserName: "jdoe"
      BundleId: !Ref WorkSpaceBundleID
      UserVolumeEncryptionEnabled: true
      RootVolumeEncryptionEnabled: true

注:CloudFormation本身不支持直接创建Simple AD用户,需通过**自定义资源(Custom Resource)**调用Lambda函数执行ds:CreateUser操作,再通过DependsOn确保用户创建完成后再部署WorkSpace。

非官方的一站式方式(谨慎使用)

控制台使用的createDirectoryUser属于WorkSpaces的私有内部API,未在官方SDK/CLI中公开。如果一定要模拟控制台的一站式流程,可以:

  1. 捕获控制台的请求签名和参数格式
  2. 使用AWS SDK的签名机制构造请求,直接调用对应的API端点
    但这种方式无官方支持,API可能随时变更,不建议在生产环境使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 11:07:24