Как настроить роль AWS на локальном сервере? - PullRequest
0 голосов
/ 24 декабря 2018

Я создал роль 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как принципал или мой пользователь?

1 Ответ

0 голосов
/ 27 декабря 2018

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

Другой подход заключается в использовании лямбда-выражения для создания предварительно подписанных URL-адресов.Используя эти URL, ваше приложение сможет помещать объекты в эту корзину без какой-либо роли AIM.URL будет работать только на то время, которое вы хотите.Также вы можете создать URL-адрес, чтобы разрешить только определенное имя файла и другие параметры.

Если вы запустите его на другом ресурсе AWS, например на экземпляре EC2, вы также можете напрямую назначить этому экземпляру роль.

...