在创建工作区时,我可以创建一个或多个提供电子邮件和其他信息的用户。
我正在尝试在Python中使用AWS API或boto3进行相同的操作。 boto3中的WorkSpaces和DirectoryService中没有一个提供在AWS Simple AD中创建用户的方法。
如何以编程方式在AWS Simple AD上创建用户?
答案 0 :(得分:2)
实际上,您似乎可以执行此操作。查看API文档以获取workdocs。它显示为“在简单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"
}
答案 1 :(得分:1)
一个简单的答案是,您不能“以编程方式”创建用户。 您甚至不能在Simple AD中仅创建一个用户,只能在创建工作区时创建它。
要创建AD用户,您将需要启动Windows EC2实例并将其添加到AWS Directory域。然后,在该实例中安装AD管理工具,并使用它来创建/管理用户。您可以在此处详细了解它, https://docs.aws.amazon.com/directoryservice/latest/admin-guide/simple_ad_how_to.html
您可以在该EC2实例中运行Powershell脚本以使其自动化。甚至可以创建一个lambda函数来运行它。
答案 2 :(得分:0)
@JapethMarvel的答案可能与您要寻找的答案最接近,但是它受我在评论中记录的各种条件的约束。
值得注意的是,this Amazon blog post演示了一个Lambda,该Lambda使用ldap3
库直接向目录服务进行API调用。我尚未对其进行深入研究,但似乎可以通过这种方式来管理用户。当然,由于运行此脚本的系统(或Lambda)必须能够访问目录(而不仅仅是AWS API),因此该解决方案还具有其他限制。如果该目录是私有目录,则需要授予Lambda访问VPC的权限(例如,通过附加该访问权限)。
这会阻止我们使用它,例如Custom CloudFormation Resource Provider中,而无需增加其他复杂性。例如,可能可以让CF资源创建一个VPC绑定的lambda来代理对目录的请求。