在AWS环境中,跳板机(bastion host)承担着对内部资源的网关职责。采用公钥认证可显著降低被动暴力破解的风险,因为私钥由用户持有、不可被远程猜测;同时,公钥机制便于集中管理和审计,每次登录都可对应到某个密钥或用户。
相比密码登录,公钥认证更利于配合密钥加密与硬件密钥(如YubiKey)使用,从而实现更高的安全性和可追溯性。配合SSH配置禁止密码认证、限制来源IP、以及监控登录事件,能进一步强化跳板机防护。
私钥泄露是最大风险之一,推荐的做法包括:使用本地磁盘加密与操作系统密钥环(例如macOS Keychain、Windows DPAPI、Linux的gnome-keyring);对私钥文件启用密钥加密(passphrase),并强制使用复杂短语。
在非对等场景下,可将私钥加密后存放在受控存储(如S3),并使用AWS KMS对私钥blob进行加密;仅在需要时通过严格的IAM策略和临时凭证解密。这样即便存储介质被窃取,私钥也保持加密状态。
对高敏感环境,建议采用硬件密钥或智能卡(如YubiKey、HSM)来存储私钥,私钥永不离开设备,SSH代理或PKCS#11桥接用于签名,从根本上降低复现与外泄风险。
推荐使用AWS SSM Session Manager替代传统SSH直连或与之并行部署。通过IAM与SSM,管理员可以获得基于角色的短期会话,不需要分发长期私钥;必要时结合SSO与临时证书(例如通过ACM PCA或Vault签发短期SSH证书)。
1)将跳板机配置为仅允许基于证书或SSM的连接;2)使用KMS保护证书签发私钥或Vault密钥材料;3)通过CI/CD或门户为用户颁发TTL短期证书或临时凭证,过期后自动失效。
此方案消除了长期私钥分发带来的风险,实现更短生命周期、可撤销的访问凭证,同时便于日志化与审计。
多因子登录可与公钥认证形成互补:一方面保留基于密钥的强认证,另一方面在会话启动或私钥解密环节增加二次验证。常见做法包括要求用户在私钥解密时输入OTP或使用硬件令牌,或在SSO层面强制MFA通过后才允许获取私钥或签发证书。
1)将私钥存放在受保护的密钥库(KMS或HSM),在解密调用前必须通过MFA验证;2)使用身份提供商(IdP)如AWS SSO、Okta触发MFA,后端服务再颁发短期SSH证书;3)在跳板机接入策略中加入MFA条件控制,拒绝未完成MFA的会话。
实现MFA时需考虑可用性:离线或设备丢失的恢复流程、紧急访问通道(break-glass)以及MFA设备注册、撤销流程都必须事先设计并记录。
安全策略不能只靠技术堆砌,需结合运营流程:建立定期的密钥轮换(例如90天或更短),强制撤销不合规的公钥,记录变更历史,并通过集中审计(CloudTrail、SSM Session logs、Auditd)保存登录与关键操作记录。
当检测到私钥可能泄露或员工离职时,应快速从授权列表中移除对应公钥;如果使用证书机制则撤销CA或缩短证书TTL能更快生效。结合自动化脚本或IAM策略可以实现批量撤销与下发。
应急流程包括:立即隔离目标跳板机、冻结相关IAM凭证、导出系统日志进行取证、使用快照或AMI保全证据,以及按事先编排的步骤恢复服务并更换所有相关密钥或证书。
