Существуют ли канонические идентификаторы пользователей AWS для объединенных пользователей AWS (временные учетные данные безопасности)?

#python #amazon-s3 #amazon-web-services #boto #amazon-iam

#python #amazon-s3 #amazon-веб-сервисы #бото #amazon-iam

Вопрос:

Существует ли канонический идентификатор пользователя для объединенного пользователя, созданного с помощью STS? При использовании boto мне нужен канонический идентификатор пользователя для предоставления разрешений корзине.

Вот краткий обзор моего кода:

  1. Я успешно создал временные учетные данные с помощью модуля STS boto (используя учетную запись «master»), и это возвращает мне:

    • federated_user_arn
    • federated_user_id
    • packed_policy_size
    • access_key
    • secret_key
    • session_token
    • срок действия
  2. Затем я создаю корзину с помощью boto:

    bucket = self.s3_connection.create_bucket(‘%s_store’ % (app_id))

  3. Теперь я хочу предоставить разрешения, у меня осталось два варианта в boto:

    add_email_grant (разрешение, адрес электронной почты, рекурсивный = False, заголовки = Нет)

    add_user_grant (разрешение, идентификатор пользователя, рекурсивный = False, заголовки = Нет, имя_дисплея = Нет)

Первый метод не подходит, поскольку к федеративному пользователю не прикреплено электронное письмо, поэтому я смотрю на второй. Здесь вторым параметром («userid») должен быть «Канонический идентификатор пользователя, связанный с учетной записью AWS, которой вы предоставляете разрешение». Но, похоже, я не могу найти способ предоставить это для федеративного пользователя.

Существуют ли канонические идентификаторы пользователей вообще для объединенных пользователей? Я упускаю из виду более простой способ предоставления разрешений объединенным пользователям?

Ответ №1:

Связался с автором boto и узнал о:

get_canonical_user_id() для класса S3Connection.

Это даст вам канонический идентификатор пользователя для учетных данных, связанных с подключением. Соединение должно было использоваться для какой-либо операции (например, для перечисления сегментов).

Очень неудобно, но возможно.