Как получить доступ к S3 с помощью роли IAM с моего локального компьютера - PullRequest
1 голос
/ 30 марта 2019

У меня есть учетная запись AWS (идентификатор: 111111), и у меня создана роль ARN (идентификатор aws: arn:aws:iam::222222:role/developenv).

Из интерфейса командной строки AWS я могу получить доступ к ресурсу, созданному вid: 222222 с помощью --profile.Но я не уверен, как добиться этого в Java для доступа к S3.

Я знаю, что один из способов сделать это - использовать временные учетные данные:

 AssumeRoleRequest roleRequest = new AssumeRoleRequest()
                                                    .withRoleArn(roleARN)
                                                    .withRoleSessionName(roleSessionName);
            stsClient.assumeRole(roleRequest);
            GetSessionTokenRequest getSessionTokenRequest = new GetSessionTokenRequest();
            getSessionTokenRequest.setDurationSeconds(7200);

Мой вопрос: есть ли способ добиться этого без запроса временных учетных данных и доступа к корзине, созданной в учетной записи222222

Ответы [ 2 ]

1 голос
/ 30 марта 2019

Вы используете правильный метод.

Роль IAM сама по себе не имеет учетных данных.Вместо этого пользователь IAM может предположить роль IAM, которая предоставит временные учетные данные с разрешениями, связанными с ролью.

При указании роли в профиле CLI AWS фактически CLIзвонит AssumeRole от вашего имени.Эти учетные данные могут оставаться действительными в течение максимум 12 часов .

0 голосов
/ 30 марта 2019

Специально для S3 можно обойти механизм временных учетных данных и навсегда разрешить другой роли в другой учетной записи доступ к корзине.Пожалуйста, следуйте https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/, чтобы включить это.

...