Учетная запись AWS не может получить доступ к учетным записям организации - PullRequest
0 голосов
/ 17 марта 2019

Я пишу приложение для платформы AWS, которое планировалось запустить из учетной записи root, с учетными данными root.На этом этапе мне нужно остановить некоторые машины, запущенные учетными записями участников организаций AWS.

По умолчанию организации AWS не предоставляют доступ к учетной записи root для просмотра или управления ресурсами учетной записи другого участника.Поэтому я попытался использовать временные учетные данные и попытался принять роль, созданную целевой учетной записью.

Подробнее об этом здесь.https://docs.aws.amazon.com/AmazonS3/latest/dev/AuthUsingTempSessionTokenJava.html

С другой стороны, он не позволяет учетной записи root принимать роли и выдает такое исключение.

com.amazonaws.services.securitytoken.model.AWSSecurityTokenServiceException: Roles may not be assumed by root accounts. (Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; Request ID: 7bee7537-48e0-11e9-bb1a-bb36134736e4)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1695) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1350) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1101) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:758) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:732) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:714) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:674) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:656) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:520) ~[aws-java-sdk-core-1.11.475.jar:na]
at...

Есть ли способ обойти эту проблему?Например, как-нибудь дать root-доступ ко всему или позволить ему принять роли?

1 Ответ

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

Во-первых, пожалуйста, не используйте свою учетную запись Root!Рекомендуется удалить ключи доступа из корневой учетной записи, добавить токен MFA и заблокировать его.У нас большая организационная структура AWS, и мы не используем корневые учетные записи ни для чего, кроме того, где абсолютно необходимо .

См. Руководство пользователя IAM Best Practices в частности, раздел: Заблокируйте ваши ключи доступа пользователя root для учетной записи AWS

В описанных административных целях используйте пользователей IAM

Пользователи IAM могут принимать роли.Рекомендуемые шаги:

  1. Создать IAM Group и прикрепить необходимую политику для прав администратора.Политика AdministratorAccess представляет собой простую предварительно созданную политику, которая предоставляет полный доступ администратора в рамках текущей учетной записи, но для принятия ролей в суб-учетных записях все, что вам действительно нужно разрешить, - это действие sts:AssumeRole.

  2. Создайте пользователя IAM и назначьте его в группу IAM.

  3. Создайте целевую роль в своих дополнительных учетных записях с помощью политики, разрешающей действия в этой дополнительной учетной записи, и с помощью доверительных отношений, определенных для вашего пользователя IAM в основной учетной записи организации.

  4. Аутентификация вашего приложения с использованием учетных данных пользователя IAM, временных учетных данных и т. Д.

    • ПРИМЕЧАНИЕ. Документ временных учетных данных, который вы связали, предназначен для пользователей IAM.Я бы порекомендовал повторить попытку, как только вы правильно настроите пользователя IAM.
    • Существует много способов аутентификации в сервисах AWS, как в другом примере: Предполагается роль IAM в CLI AWS

Дополнительно: Не уверен, что вы строите, но при необходимости Рассмотрите возможность использования связанных с сервисом ролей , чтобы напрямую предоставить приложению конкретныйнеобходимые ему разрешения - вместо того, чтобы иметь дело с учетными данными пользователя.

...