от
У меня есть приложение, которое использует AWS SDK iOS 2.9.10 для входа пользователя AWS IAM в свою учетную запись AWS S3. Я хотел бы иметь возможность оценить, имеет ли пользователь доступ для чтения / записи к различным сегментам S3 под учетной записью. По сути, я хотел бы программно сделать это:
aws iam list

aws iam get

Используя эти выходные данные, чтобы узнать, к какому сегменту S3 доступ имеет пользователь IAM, я мог бы затем проверить поле «Действие» в политике IAM, если оно допускает разрешение типа «s3: GetObject» или «s3:», а поле ресурса содержит значение как «arn». : aws: s3 ::: examplebucket / "или" * ". Если оба варианта применимы, то у пользователя IAM есть разрешение на S3 "examplebucket".

Однако я не могу понять, возможен ли программный доступ к IAM с помощью AWS SDK iOS (Swift или Objective-C), поэтому любая помощь будет очень полезной.
    

        

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Я думаю, что эта функция не предоставляется AWS SDK iOS, так как существует открытая проблема на GitHub, которая была закрыта без ответа. [1] Вместо этого вы можете запросить службу напрямую, используя так называемый IAM Query API [2]. AWS заявляет, что:   AWS предоставляет SDK, которые состоят из библиотек и примеров кода для различных языков программирования и платформ (Java, Ruby, .NET, iOS, Android и т. Д.). SDK предоставляют удобный способ создания программного доступа к IAM и AWS. Например, SDK заботятся о таких задачах, как криптографическая подпись запросов (см. Ниже), управление ошибками и повторная попытка запросов. Информацию о пакетах SDK AWS, в том числе о том, как их загрузить и установить, см. На странице «Инструменты для веб-служб Amazon». К сожалению, iOS SDK официально не поддерживается службой IAM. Вот почему конечные точки службы IAM не включены в iOS SDK. Вы можете попробовать открыть еще один запрос на GitHub ... Если вы решите внедрить клиент HTTP и правильно подписать запрос вручную, вы можете использовать команды IAM, которые вы упомянули выше (в терминах AWS, называемых «Действия»), например, действие ListUserPolicies [3]. Предложение по улучшению   Затем я мог бы проверить поле «Действие» в политике IAM, если оно разрешает, например «s3: GetObject» или «s3:», а поле ресурса содержит значение «arn: aws: s3 ::: examplebucket /» или «*». Если оба варианта применимы, то у пользователя IAM есть разрешение на S3 "examplebucket". Если вам нужен более надежный подход, я бы предложил использовать API IAM Policy Simulator. [4] Рекомендации [1] https://github.com/aws-amplify/aws-sdk-ios/issues/496 [2] https://docs.aws.amazon.com/IAM/latest/APIReference/Welcome.html [3] https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html [4] https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html#policies-simulator-using-api     
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...