我正在管理一个(现在)ec2 实例,它将为我们的用户提供一些工具。我正在使用 Ansible 来管理它。我已将其设置为使用 Cron-job 和 Ansible 的组合来创建用户(通过创建用户列表并使用剧本确保他们存在)。
我的主要问题是:我正在尝试为每个用户(新用户和老用户)创建一种方法,使他们能够使用他们上传到 EC2 AWS 的密钥访问实例。我对此的想法一直陷入僵局。有没有办法调用 AWS api 返回每个公钥的文本(因为它们是公开的,我不明白为什么它们不应该存在..?)以便我可以确保在它们各自的“~/.ssh/authorized_keys”文件中存在它的副本?
除此之外,我还认为将密钥上传到 S3 存储桶可以让 Ansible 读取它们。唯一的问题是用户必须将他们的密钥上传到 S3。
欢迎任何反馈-
如果我以错误的方式处理这个问题,请告诉我。
答案1
我理解您的问题是,一旦用户在 AWS 控制台中导入了密钥,您希望能够自动将该新密钥导入实际实例。不幸的是,describe-key-pairs
API 调用返回私钥的指纹,而不是完整的公钥。
如果您有一个技术娴熟的团队使用它,让他们上传到 S3 存储桶或某个地方的服务器可能是您的最佳选择。