Можно ли настроить в AWS хост-бастион, который будет проверять IAM, чтобы проверить, может ли данный пользователь подключиться к конкретному экземпляру EC2?
Это может быть немного размыто, но идея следующая.
Предположим, что у компании 2 клиента, и каждый из них работает с одним экземпляром EC2. Итак, у нас есть MachineA и MachineB для клиентов A и B. Затем у нас также есть 3 сотрудника:
Обе машины работают в частной подсети, и подключение к ним будет возможно только через бастионный хост в публичной подсети. Теперь, можно ли настроить этот бастион так, чтобы он проверял группу пользователя в IAM, чтобы убедиться, что этот пользователь может подключиться к данной машине?
Итак, когда Мэри подключается через SSH к бастиону, она использует свою личность. Там она пытается прыгнуть MachineB
поэтому Bastion проверяет учетные данные пользователя, проверяет, что она находится в группе devsB
и позволяет ей подключиться, но он откажется подключиться, если она попытается подключиться к MachineA
по любой причине...
Вы можете использовать AWS System Manager для управления доступом к вашему экземпляру ec2 с помощью IAM.
Ты можешь использовать AWS-Gate, который сочетает в себе функции загрузки ключей SSH из EC2 Instance Connect, SSH через туннелирование SSM, доступ полностью управляется с помощью политик IAM и использует AWS CloudTrail для аудита.
Я бы не стал полагаться на членство в IAM Group, поскольку это может быть немного сложно протестировать в контексте SSH.
Вместо этого я бы дал всем пользователям SSH-доступ к хосту-бастиону под индивидуальными учетными записями пользователей и только соответствующим пользователям доступ к каждому из экземпляров клиентов.
Самый простой способ - добавить открытый SSH-ключ Стива в MachineA:/home/ec2-user/.ssh/authorized_keys
. Точно так же открытый ключ Мэри к MachineB.
Тогда вы можете использовать SSH ProxyJump вместе с Агент SSH для облегчения доступа.
Надеюсь, это поможет :)