我有一堆使用Terraform管理的AWS基础设施。有一个供多个用户使用的EC2 SSH堡垒实例,用于访问用于各种批处理任务的专用临时EC2实例。
Terraform提供了一种在创建时将单个SSH密钥包含到EC2实例的机制,但是我正在尝试寻找一种解决方案,最好是基于Terraform的,但不一定是基于Terraform的,它允许管理SSH堡垒的多个用户。
是否有一个解决方案允许SSH堡垒使用与IAM用户关联的SSH密钥,以便(例如)当bob尝试通过SSH连接到堡垒时,堡垒可以使用与bob关联的公钥(如果bob属于正确的组、具有正确的权限、具有正确的标签或其他识别功能)?
如果上面的问题暗示了解决问题的错误方法,那么有没有更好的方法来看待和解决问题呢?
提前谢谢你。
发布于 2021-10-04 15:07:42
如果我没理解错的话,你在这里问了两个问题:
Q1。有没有办法自动将用户添加到堡垒并设置他们的ssh凭据?
是的,您可以使用将在ec2创建期间运行的userdata脚本来执行此操作。
该脚本应添加用户。假设您在堡垒服务器上运行linux,添加用户的代码片段如下所示
useradd -m -s /bin/bash <username>
mkdir /home/<username>/.ssh
chmod 700 /home/<username>/.ssh/
Copy the ssh key from a pre-determined location. In my case i have ssh
public keys for users in an S3 bucket (hey they are public keys)
aws s3 cp s3://path/pub-keys/user-id_rsa.pub /home/<username>/.ssh/authorized_keys
chmod 640 /home/<username>/.ssh/authorized_keys
chown -R <username>:<group> /home/<username>/.ssh/
Add the user to some group
usermod -a -G <somegroup> <username>Q2。AWS IAM凭据可以用于某种单点登录的ssh吗?为此,我建议阅读下面的文档,因为其中涉及到几件事情,包括您正在使用的发行版。但我不确定对于您所描述的场景,这是否是一个好的解决方案。
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-connect-methods.html
https://stackoverflow.com/questions/69408208
复制相似问题