
В настоящее время в нашей среде мы используем экземпляры ec2.
Чтобы избежать раскрытия учетных данных в исходном коде, мы используем роли IAM для делегирования доступа пользователям, приложениям или службам.
Однако в нашей среде также есть несколько локальных экземпляров. Могут ли они также использовать роль IAM, как это делает EC2?
Я знаю, что CodeDeploy поддерживает регистрацию локальных экземпляров с ролями IAM, но в этом случае для управления ролями IAM и получения учетных данных используется агент развертывания кода.
Итак, мой вопрос заключается в следующем:
Каким образом приложения на локальных экземплярах, развернутые с помощью CodeDeploy, получают учетные данные? Например, получают объект из S3...
Могу ли я использовать IAM на своей локальной машине и в приложениях для получения учетных данных так же, как это делается на EC2?
решение1
Вы не можете создать роль IAM как таковую, но вы можете прикрепить точно такую же политику/политики к пользователю, а затем сгенерировать набор ключей доступа для этого пользователя. Оттуда предоставьте ключи в AWS CLI или другие инструменты, и у них будут те же разрешения.
Настоятельно рекомендуется внести в белый список диапазон IP-адресов политик для ключей, которые будут использоваться, чтобы в случае их взлома (утечка кода/публичный коммит в Git и т. д.) их нельзя было использовать за пределами вашего стека.
решение2
Роли службы IAM предназначены только для служб IAM!!
Существует возможность получения временных учетных данных на основе долгосрочного доступа/секретного ключа пользователей IAM. Типичное использование — в прокси-приложении, которое получает временные учетные данные безопасности от имени распределенных приложений внутри корпоративной сети.
https://docs.aws.amazon.com/cli/latest/reference/sts/get-federation-token.html
он может иметь максимальный срок действия 36 часов. Вы можете автоматизировать генерацию кредитов и затем распределить их соответствующим образом в своих локальных системах.