Существует много учетных записей AWS, которыми я не управляю. Я сделал, чтобы владельцы учетных записей развернулись, я ЯВЛЯЕТСЯ Ролью, TrustingSecurityAuditor
, в их учетные записи, который предоставляет праву принять TrustingSecurityAuditor
роль к другому я - роль в своей учетной записи AWS, TrustedSecurityAuditor
. (Документы о делегировании доступа)
Это работает отлично и позволяет мне и моей службе безопасности предоставлять услуги аудита безопасности этим другим владельцам счетов в компании. Чтобы сделать это, мы вращаем ec2 экземпляр с TrustedSecurityAuditor
Я - роль, и наш код запрашивает временные учетные данные из каждой из учетных записей с помощью STS путем выполнения AssumeRole
в каждую учетную запись TrustingSecurityAuditor
роль.
Теперь я хочу создать дополнительную услугу, работающую на другом ec2 экземпляре в моей учетной записи, которая может не только принять роль этих "Доверчивых" учетных записей, но также и делает другие вещи в моей учетной записи, как доступ DynamoDB моей учетной записи, чтобы хранить информацию.
Если я подаю заявку TrustedSecurityAuditor
роль к экземпляру, у меня нет локальных полномочий, в которых я нуждаюсь (как доступ DynamoDB).
Я не могу применить несколько, я - роли к экземпляру (если я не ошибаюсь).
Когда я пытаюсь создать новую роль, MyNewService
, с доступом DynamoDB, который может AssumeRole
к TrustedSecurityAuditor
роль в надежде на затем использование тех учетных данных STS, чтобы сделать секунду AssumeRole
к TrustingSecurityAuditor
роль во внешней учетной записи я встречаюсь с этой проблемой:
Я могу AssumeRole
от MyNewService
роль к TrustedSecurityAuditor
роль, но когда я делаю второе AssumeRole
к TrustingSecurityAuditor
роль AWS возвращает ошибку
Пользователь: arn:aws:sts:: 123456789012:assumed-role/TrustedSecurityAuditor/MyNewService не разрешен работать: sts:AssumeRole на ресурсе: arn:aws:i:: 123456789012:role/TrustingSecurityAuditor
Причина этого состоит в том что "пользователь", пытающийся AssumeRole
arn:aws:sts::123456789012:assumed-role/TrustedSecurityAuditor/MyNewService
нет
arn:aws:sts::123456789012:assumed-role/TrustedSecurityAuditor
То, что это подразумевает, - то, что Вы не можете объединить Ваш в цепочку AssumeRole
s, потому что ARN, из которого происходит вызов, когда он прибывает из принятой роли, не является одной только принятой ролью, но принятой ролью с rolename assumer, застрявшим на конце.
Одно решение, которое я отказываюсь использовать, состоит в том, что я мог просто добавить полномочия, в которых я нуждаюсь, например, способность использовать DynamoDB для TrustedSecurityAuditor
роль. Причина я отказываюсь, состоит в том, что мне только нужно это разрешение на MyNewService
экземпляр, не на моем исходном экземпляре, который только делает аудит безопасности и не имеет никакой потребности получить доступ к DynamoDB.
Какие-либо предложения, как выполнить то, что я ищу?
Сценарий:
Вам нужно будет управлять двумя наборами учетных данных. Учетные данные A, которые создаются на основе роли IAM, назначенной экземпляру EC2. Используйте эти учетные данные для доступа к своим ресурсам, таким как DynamoDB. Учетные данные B, которые создаются через STS из RoleB. Используйте эти учетные данные для доступа к ресурсам ваших клиентов.
Затем вам нужно будет самостоятельно использовать учетные данные в зависимости от того, что вы хотите делать. Например, если вы используете Python, вы должны создать двух клиентов boto3 с разными учетными данными.