Я создал роль AWS и прикрепил политику для помещения объектов в корзину S3.
У меня есть локальное приложение Python, которое использует эту роль.Мой личный пользователь AWS имеет право взять на себя роль.Вот некоторый код, который я использую:
assumed_role_object = sts_client.assume_role(
RoleArn="arn:aws:iam::account-id:role/test-role",
RoleSessionName="myRoleSession"
)
Это работает нормально, но теперь мой вопрос заключается в том, как мне настроить это на моем локальном сервере, где я не настраиваю своего личного пользователя, чтобы он принималРоль.
Я думал о создании пользователя IAM, который имеет только разрешение acceptRole, и использую этого пользователя для принятия роли для моего приложения.
Я использую test-role-trust-policy.json
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": { "AWS": "arn:aws:iam::123456789012:root" },
"Action": "sts:AssumeRole"
}
}
и создайте роль следующим образом:
aws iam create-role --role-name test-role --assume-role-policy-document file://test-role-trust-policy.json
Присоедините необходимые политики к моей роли (для помещения объектов S3) и используйте роль в моем приложении.
Естьэто правильный подход для настройки роли для локального сервера?Я нахожу странным создание пользователя для использования роли на моем локальном сервере (хотя разрешение пользователя теперь ограничено).
Мне также не очень понятно, должен ли я использовать rootкак принципал или мой пользователь?