Роль локального аккаунта AWS в роли IAM - PullRequest
0 голосов
/ 13 июня 2018

Я новичок в aws и сталкиваюсь с проблемой роли iam. Я занимаюсь кросс-аккаунтной ролью.Скажем, в Учетной записи x создана роль для Учетной записи Y, дающая разрешение на чтение из потоков Kinesis.

Я хочу подключиться к учетной записи Y, чтобы получать потоки из учетной записи X локально, используя java SDK (я не запускаю экземпляр EC2 для учетной записи Y).Так есть ли у них какой-нибудь способ сделать это?

Я понимаю, что если я запущу приложение на экземпляре EC2 для учетной записи Y, я смогу его изменить, но я не хочу получать его с помощью EC2.

    AWS doc mentions in 
    https://docs.aws.amazon.com/cli/latest/topic/config-vars.html

    # In ~/.aws/credentials:
    [development]
    aws_access_key_id=foo
    aws_secret_access_key=bar 

    # In ~/.aws/config
    [profile crossaccount]
    role_arn=arn:aws:iam:...
    source_profile=development

Это связано с этим?Здесь я думаю, что crossaccount - это роль, созданная в учетной записи x для предоставления доступа к учетной записи y.

Which aws api should I call to fetch the streams?  

Заранее спасибо.

1 Ответ

0 голосов
/ 14 июня 2018

Кросс-аккаунт в AWS имеет специальный протокол, которому вы должны следовать.Поскольку вы создали роль IAM в учетной записи X, которой был предоставлен доступ к ресурсам в учетной записи Y, учетной записи Y также необходимо будет предоставить этой роли разрешение на выполнение STS:AssumeRole.

Как только эта часть установки будет завершена, вы должны быть готовы.Подробнее об этом здесь

Чтобы использовать AWS SDK для Java, создайте объект службы для службы STS и выполните вызов AssumeRole.Если вы предоставите это с правильными учетными данными, результатом будет правильная пара учетных данных, которые имеют доступ к ресурсам учетной записи Y.

Подробнее об использовании Assume Role в Java здесь .

...