#python #amazon-s3 #amazon-web-services #boto #amazon-iam
#python #amazon-s3 #amazon-веб-сервисы #бото #amazon-iam
Вопрос:
Существует ли канонический идентификатор пользователя для объединенного пользователя, созданного с помощью STS? При использовании boto мне нужен канонический идентификатор пользователя для предоставления разрешений корзине.
Вот краткий обзор моего кода:
-
Я успешно создал временные учетные данные с помощью модуля STS boto (используя учетную запись «master»), и это возвращает мне:
- federated_user_arn
- federated_user_id
- packed_policy_size
- access_key
- secret_key
- session_token
- срок действия
-
Затем я создаю корзину с помощью boto:
bucket = self.s3_connection.create_bucket(‘%s_store’ % (app_id))
-
Теперь я хочу предоставить разрешения, у меня осталось два варианта в boto:
add_email_grant (разрешение, адрес электронной почты, рекурсивный = False, заголовки = Нет)
add_user_grant (разрешение, идентификатор пользователя, рекурсивный = False, заголовки = Нет, имя_дисплея = Нет)
Первый метод не подходит, поскольку к федеративному пользователю не прикреплено электронное письмо, поэтому я смотрю на второй. Здесь вторым параметром («userid») должен быть «Канонический идентификатор пользователя, связанный с учетной записью AWS, которой вы предоставляете разрешение». Но, похоже, я не могу найти способ предоставить это для федеративного пользователя.
Существуют ли канонические идентификаторы пользователей вообще для объединенных пользователей? Я упускаю из виду более простой способ предоставления разрешений объединенным пользователям?
Ответ №1:
Связался с автором boto и узнал о:
get_canonical_user_id() для класса S3Connection.
Это даст вам канонический идентификатор пользователя для учетных данных, связанных с подключением. Соединение должно было использоваться для какой-либо операции (например, для перечисления сегментов).
Очень неудобно, но возможно.