ROSA部署OpenShift集群遇AWS撤销SSH安全组规则问题求助
解决ROSA部署OpenShift时AWS撤销SSH安全组规则的问题
核心原因
AWS会自动撤销允许0.0.0.0/0访问SSH(22端口)的安全组规则,而ROSA默认安装配置会添加这条规则,导致集群因SSH访问失败反复重试。解决方案是替换为更严格的源IP范围,同时满足安装过程的SSH访问需求。
具体解决方案
方案1:指定固定公网IP作为SSH源
- 获取部署机器的公网IP(可通过
curl ifconfig.me命令查询)。 - 在AWS控制台创建自定义安全组:
- 入站规则添加:协议TCP,端口22,源IP设为你的公网IP/32(例如
112.xx.xx.xx/32)。 - 同时添加OpenShift安装必需的其他端口规则(如6443、22623等)。
- 入站规则添加:协议TCP,端口22,源IP设为你的公网IP/32(例如
- 修改ROSA的
install-config.yaml配置文件,指定使用该自定义安全组:platform: aws: securityGroups: - sg-abc123xyz # 替换为你的自定义安全组ID - 重新触发ROSA集群部署。
方案2:限制为VPC内部IP访问(适用于部署机器在同VPC内)
如果部署机器和OpenShift集群实例处于同一个AWS VPC,可将SSH规则的源IP设为VPC的CIDR段(例如10.0.0.0/16):
- 这种配置完全避免公网暴露,AWS不会触发规则撤销,同时能满足安装过程中VPC内部节点的SSH互通需求。
方案3:临时放宽规则并在安装后收紧
- 临时将SSH规则的源IP设为安装器使用的IP范围(可通过AWS CloudTrail查看安装器的访问IP)。
- 集群安装完成后,立即删除SSH的公网入站规则,或修改为仅允许集群内部安全组访问(例如将源设为master节点的安全组ID)。
额外注意事项
- 确保集群内部节点之间的SSH互通:除了外部源IP,还需在安全组中添加集群内部节点的安全组作为SSH源(例如允许bootstrapper安全组访问master和controller的22端口)。
- 若AWS账号有组织级安全策略,需确认自定义规则符合策略要求,避免再次被撤销。
内容的提问来源于stack exchange,提问作者user18782338
相关产品推荐
相关产品推荐

