AWS Java SDK: AssumeRole из профиля экземпляра EC2?

У меня есть приложение, работающее на экземпляре EC2, у которого есть профиль IAM с описанием EC2 для учетной записи, в которой он находится. У него также есть AssumeRole для другой учетной записи (эта роль также дает описание EC2). Вот как выглядит моя роль IAM в основной учетной записи:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:Describe*",
            "Resource": "*"
        },
        {
            "Sid": "{SID}",
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": [
                "arn:aws:iam::{ACCT_NUM}:role/{ROLE_NAME}"
            ]
        }
    ]
}

Вот роль IAM из вторичной учетной записи:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:Describe*",
            "Resource": "*"
        }
     ]
}

По сути, мне нужно получить экземпляры EC2 с обеих учетных записей. Это возможно с текущим SDK? В настоящее время я получаю только экземпляры с основного счета.

2 ответа

Решение

Да, вы можете с SDK. После того, как вы перечислите экземпляры EC2, используя учетные данные из основной (по умолчанию) учетной записи, вы затем используете STS для вызова AssumeRole(), чтобы получить учетные данные для перекрестной учетной записи. Затем перечислите эти экземпляры EC2.

Добавление ec2:AssumeRole не распространяет команды автоматически через учетные записи.

Вы должны позвонить ec2:DescribeInstances один раз для каждой учетной записи AWS и региона, из которого вы хотите получить информацию об экземпляре.

Ваша роль IAM для EC2 дает вам доступ к основной учетной записи. призвание ec2:DescribeInstances только с этими учетными данными вы получите информацию об экземпляре EC2 только для этой учетной записи.

Далее нужно позвонить ec2:AssumeRole получать новые учетные данные для дополнительной учетной записи. Если у вас есть те, вы используете те, чтобы позвонить ec2:DescribeInstances для вторичного счета.

Другие вопросы по тегам