EC2 .pem文件源码管控最佳实践及离职员工访问权限疑问
关于EC2堡垒机密钥与访问权限的两个问题解答
1. 将.pem文件纳入源代码控制是否属于最佳实践?
绝对不是。.pem是SSH私钥,属于高度敏感的访问凭证,放进Git这类源代码控制系统风险极大:
- 哪怕是私有仓库,也可能因权限配置失误、成员离职未及时回收权限导致泄露;
- 提交到仓库的历史记录几乎无法彻底清除,哪怕后续删除文件,旧提交记录里依然能提取到私钥;
- 违反GDPR、PCI DSS等多数合规标准对敏感数据存储的要求。
Terraform场景下更合理的替代方案:
- 用
tls_private_key资源生成密钥对,仅将公钥传递给EC2,私钥不落地存储为本地文件; - 将私钥存入AWS Secrets Manager或Systems Manager Parameter Store这类专业的 Secrets 管理服务,而非代码仓库;
- 改用IAM Instance Connect或AWS Session Manager连接堡垒机,完全规避持久化SSH密钥对的使用。
2. 员工离职(已移除SSO访问权限)但持有.pem文件,能否连接EC2实例?
结果取决于堡垒机的登录认证方式:
- 如果是传统SSH密钥登录:只要该.pem对应的公钥仍在EC2实例的
~/.ssh/authorized_keys文件中,员工就能直接通过SSH连接实例——因为SSH认证是在EC2本地完成的,和AWS SSO/IAM权限无直接关联。 - 如果是基于IAM的认证方式(比如IAM Instance Connect、Session Manager):员工失去AWS SSO权限后,无法获取临时凭证或发起连接请求,哪怕持有旧的.pem也无法访问实例。
所以若使用传统密钥对登录,离职员工持有的.pem仍能访问堡垒机,必须及时从EC2的authorized_keys中移除对应公钥,或是直接更换实例的密钥对。
内容的提问来源于stack exchange,提问作者user203687
相关产品推荐
相关产品推荐

