2

创建工作区时,我可以创建一个或多个提供电子邮件和其他信息的用户。

在此处输入图像描述

我正在尝试在 python 中使用 AWS API 或 boto3 来做同样的事情。boto3中的WorkSpacesDirectoryService都没有提供在 AWS Simple AD 中创建用户的方法。

如何以编程方式在 AWS Simple AD 上创建用户?

4

3 回答 3

2

实际上,您似乎可以做到这一点。查看工作文档的 API 文档。它显示“在 Simple AD 或 Microsoft AD 目录中创建用户”。

https://docs.aws.amazon.com/workdocs/latest/APIReference/API_CreateUser.html

POST /api/v1/users HTTP/1.1
Authentication: AuthenticationToken
Content-type: application/json

{
   "EmailAddress": "string",
   "GivenName": "string",
   "OrganizationId": "string",
   "Password": "string",
   "StorageRule": { 
      "StorageAllocatedInBytes": number,
      "StorageType": "string"
   },
   "Surname": "string",
   "TimeZoneId": "string",
   "Username": "string"
}

boto3 文档: https ://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/workdocs.html#WorkDocs.Client.create_user

于 2020-02-17T20:41:54.697 回答
1

简单的答案是您不能“以编程方式”创建用户。您甚至不能在 Simple AD 中只创建一个用户,您只能在创建 Workspace 时创建它。

要创建 AD 用户,您需要启动一个 Windows EC2 实例并将其添加到 AWS Directory 域。然后,在该实例中安装 AD 管理工具并使用它来创建/管理用户。您可以在此处详细了解它, https://docs.aws.amazon.com/directoryservice/latest/admin-guide/simple_ad_how_to.html

您可以在该 EC2 实例中运行 powershell 脚本以实现自动化。甚至可以创建一个 lambda 函数来运行它。

于 2019-07-17T05:58:56.600 回答
0

@JapethMarvel 的答案可能最接近您正在寻找的内容,但它受制于我在评论中记录的各种条件。

值得注意的是,这篇 Amazon 博客文章ldap3演示了一个 Lambda,它使用库直接对目录服务进行 API 调用。我没有深入研究过,但似乎可以通过这种方式管理用户。当然,此解决方案还有其他限制,因为运行此脚本的系统(或 Lambda)必须能够访问目录(不仅仅是 AWS API)。如果该目录是私有的,则需要授予 Lambda 对 VPC 的访问权限(例如,通过附加它)。

这会阻止我们在没有额外复杂层的情况下使用它,例如在自定义 CloudFormation 资源提供程序中。例如,可以让 CF 资源创建一个 VPC 绑定的 lambda 来代理对目录的请求。

于 2020-07-17T04:36:35.740 回答