Создайте пользователя в AWS Workspaces с API

При создании рабочей области я могу создать одного или нескольких пользователей, предоставляющих электронную почту и другую информацию.

введите здесь описание изображения

Я пытаюсь сделать то же самое, используя AWS API или boto3 в python. Ни один из WorkSpaces и DirectoryService в boto3 позволяет создать пользователя в AWS. Простой AD.

Как программно создать пользователя в AWS Simple AD?


person SMUsamaShah    schedule 11.07.2019    source источник
comment
Я подозреваю, что вам нужно подключиться к нему, как если бы это была обычная система Active Directory, а не через API AWS.   -  person John Rotenstein    schedule 12.07.2019
comment
@JohnRotenstein Прямой доступ к Active Directory недоступен.   -  person SMUsamaShah    schedule 12.07.2019


Ответы (3)


На самом деле, похоже, у вас получится это сделать. Ознакомьтесь с документацией по 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 doc: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/workdocs.html#WorkDocs.Client.create_user

person JapethMarvel    schedule 17.02.2020
comment
Технически правильно, но при соблюдении ряда условий: (1) Каталог должен быть включен в WorkDocs. Это можно сделать во время регистрации или впоследствии вручную. (2) Созданные пользователи активны в WorkDocs (предположительно, несут расходы), если вы также их не деактивируете. (3) Похоже, что не существует вызова API для удаления сайта / приложения WorkDocs, поэтому это не является полностью обратимым (например, усложняет наши усилия по созданию настраиваемый ресурс CloudFormation - person claytond; 17.07.2020

Ответ прост: вы не можете создать пользователя «программно». Вы даже не можете создать просто пользователя в Simple AD, вы можете создать его только при создании Workspace.

Чтобы создать пользователей AD, вам необходимо запустить экземпляр Windows EC2 и добавить его в домен AWS Directory. Затем установите инструменты управления AD в этом экземпляре и используйте их для создания / управления пользователями. Подробнее об этом можно прочитать здесь: https://docs.aws.amazon.com/directoryservice/latest/admin-guide/simple_ad_how_to.html

Вы можете запустить сценарий PowerShell в этом экземпляре EC2 для автоматизации. Может быть, даже создать лямбда-функцию для ее запуска.

person NFR    schedule 17.07.2019

Ответ от @JapethMarvel, вероятно, наиболее близок к тому, что вы ищете, но он зависит от множества условий, которые я задокументировал в своем комментарии.

Стоит отметить, что в этом сообщении в блоге Amazon демонстрируется Lambda, которая выполняет вызовы API непосредственно в службу каталогов с использованием библиотеки ldap3. Я не исследовал это подробно, но похоже, что таким образом можно управлять пользователями. Конечно, это решение имеет другие ограничения, поскольку система (или Lambda), в которой выполняется этот скрипт, должна иметь доступ к Каталогу (а не только к API AWS). Если этот каталог является частным, Lambda необходимо предоставить доступ к VPC (например, путем его подключения).

Это мешает нам использовать его, например в Custom CloudFormation Resource Provider без дополнительных уровней сложности. Например, можно было бы заставить ресурс CF создать лямбда-выражение, привязанное к VPC, для прокси-запросов к Справочнику.

person claytond    schedule 17.07.2020