2016-01-01 84 views
0

我在AWS上添加了多台服务器,我想要比以前更好地管理SSH密钥。我认为AWS通过其IAM管理系统为此构建了一项服务,但我不确定。使用AWS的SSH密钥管理

是否可以在AWS中存储一个密钥,并让所有服务器都为我的帐户使用该密钥?例如,如果我们有三个用户,我想让他们所有人都可以使用自己的密钥访问服务器 - 但他们不必像往常一样在每台服务器上设置密钥。如果其中一个用户离开了该组织,我想禁用他们的帐户以确保服务器没有被SSH进入。

这是可能的,还是我误解了AWS的关键管理可能性?

回答

1

不,用IAM控制SSH密钥是不可能的。从广义上讲,SSH密钥用于shell访问,IAM用于AWS API访问。

可能还有其他方法可以完成您正在尝试完成的任务。我所做的是写几个可靠的脚本来自动执行此操作。 Ansible使得它非常简单,使用Ansible的EC2模块

脚本1执行以下任务:启动一个实例,添加用户和他们的公钥

脚本2:删除用户帐户中的所有计算机或移动/删除用户的authorized_keys文件

就像我说的Ansible知道库存并删除/禁用所有机器上的用户。

+0

我刚看了Ansible的网站 - 产品起价5000美元/年! – dingalingchickenwiing

+0

它是免费的。你不需要Ansible Tower。 – helloV

+0

我没有在他们的网站上看到任何免费版本。你是指免费试用吗?我现在正在使用Google搜索开源版本。 – dingalingchickenwiing

0

我觉得OP现在可能已经找到了这个问题的答案。但是我对这个查询有疑问。您是否要为用户提供单独的密钥以连接到各个服务器?还是你要提供相同的密钥给用户访问多个服务器? 我在问,因为实践通常遵循的是单个密钥对每个用户在多个服务器上,这不是一个推荐的解决方案。

https://superuser.com/questions/454004/is-it-possible-good-practice-to-use-same-private-key-for-two-servers-for-passwor/454011

检查上述回答过类似的问题。最好的安全措施是为每个系统的每个用户帐户使用一个密钥对。但由于SSH密钥管理的困难,没有遵循这个规定。