2016-10-03 7 views
0

Я ищу способ доступа к ресурсам AWS на нескольких учетных записях AWS с использованием AWS SDK (Java, возможно, не относящегося к делу), работающего на экземпляре EC2.Учетные данные для нескольких учетных записей AWS на экземпляре EC2

Чтобы быть более точным, представьте себе есть два АМС счета:

  • тест
  • прод

Существует приложение Java работает на экземпляре EC2 для прода счета, который создает например, экземпляр AmazonEC2Client (из AWS Java SDK). Я хотел бы иметь возможность создать экземпляр клиента для test и prod счетов оттуда.

Я могу сделать это, используя профили на локальной машине, но не понял, как это сделать на экземпляре EC2.

ответ

2

Вы можете сделать это одним из двух способов;

AssumeRole

использовать маркер службы AWS Безопасности AssumeRole. Фактическая реализация будет зависеть от вас, но вы можете назначить IAM Role экземпляру EC2, а затем использовать функцию AssumeRole в Java SDK, чтобы переключиться с производственной роли на тестирование (или наоборот).

Профили

Это звучит, как вы уже поняли, как сделать это на месте, но он может быть воспроизведен в EC2 (в зависимости от случая использования). Тем не менее я бы настоятельно советовал ему и вместо этого следовал лучшим практикам и использовал STS: AssumeRole (выше).


Реалистично, вероятно, было бы лучше (сделать некоторые предположения здесь о том, что вы на самом деле пытаетесь сделать), чтобы иметь отдельный экземпляр EC2 для производства и тестирования, в этом случае вы можете назначить соответствующие роли по мере необходимости.

Кроме того, если мы говорим о более крупном развертывании, вы можете изучить Consolidated Billing, который позволит полностью изолировать производственные и тестовые среды, используя отдельные учетные записи AWS для каждой (но единой учетной записи). Чтобы узнать больше об этом, я бы предложил взглянуть на эту статью: https://blog.codeship.com/separate-aws-production-and-development-accounts/