Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 使用API在AWS工作区上创建用户_Amazon Web Services_Aws Sdk_Boto3_Amazon Workspaces - Fatal编程技术网

Amazon web services 使用API在AWS工作区上创建用户

Amazon web services 使用API在AWS工作区上创建用户,amazon-web-services,aws-sdk,boto3,amazon-workspaces,Amazon Web Services,Aws Sdk,Boto3,Amazon Workspaces,创建工作区时,我可以创建一个或多个提供电子邮件和其他信息的用户 我正试图在python中使用AWSAPI或boto3实现同样的功能。两者都没有提供在AWS简单广告中创建用户的方法 如何以编程方式在AWS Simple AD上创建用户 简单的答案是,您不能“以编程方式”创建用户。 您甚至不能在简单广告中仅创建一个用户,您只能在创建工作区时创建它 要创建AD用户,您需要启动Windows EC2实例并将其添加到AWS目录域。然后,在该实例中安装广告管理工具,并使用该工具创建/管理用户。你可以在这里

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

我正试图在python中使用AWSAPI或boto3实现同样的功能。两者都没有提供在AWS简单广告中创建用户的方法


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

简单的答案是,您不能“以编程方式”创建用户。 您甚至不能在简单广告中仅创建一个用户,您只能在创建工作区时创建它

要创建AD用户,您需要启动Windows EC2实例并将其添加到AWS目录域。然后,在该实例中安装广告管理工具,并使用该工具创建/管理用户。你可以在这里详细阅读,


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

实际上,看起来您可能能够做到这一点。查看workdocs的API文档。它说“在一个简单的广告或微软广告目录中创建一个用户。”

boto3文件:
来自@JapethMarvel的答案可能是最接近您所寻找的答案,但这取决于我在评论中记录的各种条件

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


这使我们无法在没有额外复杂性的情况下使用它。例如,可以让CF资源创建一个VPC绑定的lambda来代理目录请求。

我怀疑您需要连接到它,就像它是一个普通的Active Directory系统一样,而不是通过AWS API。@JohnRotenstein无法直接访问Active Directory。技术上正确,但根据各种条件:(1)必须在WorkDocs上启用该目录。这可以在注册期间完成,也可以在注册后手动完成。(2) 创建的用户在WorkDoc中是“活跃”的(可能会产生成本),除非您也停用它们。(3) 似乎没有API调用来删除WorkDocs站点/应用程序,因此这是不完全可逆的(例如,使我们创建
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"
}