我可以将kms密钥对注册为EC2节点上的SSH登录的密钥对吗?
我想使用Terraform对其进行管理。
答案 0 :(得分:2)
从2020年6月20日开始,AWS KMS不能直接用于管理SSH密钥。
您可以使用KMS为其生成RSA和ECC数据密钥,以进行客户端加密操作,但是您必须自己管理这些密钥。
AWS KMS当前支持:
KMS customer master keys (CMKs) for service-side encryption(从SSH客户端实际使用时昂贵且可能太高的延迟):
AWS KMS支持对称和非对称CMK。
- 对称CMK:表示单个256位秘密加密密钥,它永远不会使AWS KMS保持未加密状态。要使用对称CMK,您必须致电AWS KMS。
- 不对称CMK:代表数学上相关的公用密钥和专用密钥对,可用于加密和解密或签名和验证,但不能同时用于两者。私钥永远不会使AWS KMS保持未加密状态。您可以通过调用AWS KMS API操作在AWS KMS中使用公钥,或下载公钥并在AWS KMS之外使用它。
将不对称的CMK与SSH一起使用将需要修改的客户端或我不知道的插件,并且价格昂贵且速度慢。
Data keys for use in client-side operations;
AWS KMS还提供了对称数据密钥和非对称数据密钥对,它们被设计用于AWS KMS外部的客户端加密。非对称数据密钥对中的对称数据密钥和私钥受AWS KMS中的对称CMK保护。
- 对称数据密钥-一种对称加密密钥,可用于对AWS KMS外部的数据进行加密。此密钥受AWS KMS中的对称CMK保护。 *非对称数据密钥对-由公共密钥和私有密钥组成的RSA或椭圆曲线(ECC)密钥对。您可以在AWS KMS之外使用数据密钥对来加密和解密数据,或者对消息签名并验证签名。私钥受AWS KMS中的对称CMK保护。
使用来自KMS的非对称数据密钥更为实用,但可能需要经过修改的客户端使用CMK对其进行解包,或者需要您使用SSH客户端的功能在客户端上管理密钥本身的加密
您还需要将公钥添加到要登录的主机。一个示例是使用Terraform生成CMK,并使用null_resource供应器从中创建不对称数据密钥。
然后,您可以获得非对称数据密钥的公共密钥,并将其作为密钥对添加到EC2中,以供置备实例使用。
这是非常复杂的,不太值得复杂。您最好在本地使用ssh-keygen。