使用API​​在AWS Workspaces上创建用户

时间:2019-07-11 18:46:29

标签: amazon-web-services aws-sdk boto3 amazon-workspaces

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

enter image description here

我正在尝试在Python中使用AWS API或boto3进行相同的操作。 boto3中的WorkSpacesDirectoryService中没有一个提供在AWS Simple AD中创建用户的方法。

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

3 个答案:

答案 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"
}

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

答案 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来代理对目录的请求。