Вопрос:

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

amazon-web-services amazon-ec2 aws-sdk-java-2.0

476 просмотра

2 ответа

763 Репутация автора

У меня есть приложение, работающее на экземпляре 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? В настоящее время я получаю только экземпляры с основного счета.

Автор: Joel Kinzel Источник Размещён: 08.11.2017 11:13

Ответы (2)


1 плюс

23893 Репутация автора

Решение

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

Автор: John Hanley Размещён: 08.11.2017 11:31

3 плюса

23019 Репутация автора

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

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

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

Далее необходимо позвонить, ec2:AssumeRoleчтобы получить новые учетные данные для дополнительной учетной записи. Получив их, вы используете их для вызова ec2:DescribeInstancesдополнительной учетной записи.

Автор: Matt Houser Размещён: 08.11.2017 11:37
Вопросы из категории :
32x32