创建工作区时,我可以创建一个或多个提供电子邮件和其他信息的用户。
我正在尝试在 python 中使用 AWS API 或 boto3 来做同样的事情。boto3中的WorkSpaces和DirectoryService都没有提供在 AWS Simple AD 中创建用户的方法。
如何以编程方式在 AWS Simple AD 上创建用户?
创建工作区时,我可以创建一个或多个提供电子邮件和其他信息的用户。
我正在尝试在 python 中使用 AWS API 或 boto3 来做同样的事情。boto3中的WorkSpaces和DirectoryService都没有提供在 AWS Simple AD 中创建用户的方法。
如何以编程方式在 AWS Simple AD 上创建用户?
实际上,您似乎可以做到这一点。查看工作文档的 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"
}
简单的答案是您不能“以编程方式”创建用户。您甚至不能在 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 函数来运行它。
@JapethMarvel 的答案可能最接近您正在寻找的内容,但它受制于我在评论中记录的各种条件。
值得注意的是,这篇 Amazon 博客文章ldap3
演示了一个 Lambda,它使用库直接对目录服务进行 API 调用。我没有深入研究过,但似乎可以通过这种方式管理用户。当然,此解决方案还有其他限制,因为运行此脚本的系统(或 Lambda)必须能够访问目录(不仅仅是 AWS API)。如果该目录是私有的,则需要授予 Lambda 对 VPC 的访问权限(例如,通过附加它)。
这会阻止我们在没有额外复杂层的情况下使用它,例如在自定义 CloudFormation 资源提供程序中。例如,可以让 CF 资源创建一个 VPC 绑定的 lambda 来代理对目录的请求。