AWS环境Gitlab Autoscale Runner禁用公网IP改用私有IP连通方案咨询
AWS Gitlab Autoscale Runner 私有IP连通配置方案
前提检查
- 确认Gitlab实例与自动扩容的Runner EC2实例属于同一VPC,或跨VPC已通过对等连接、中转网关打通,私有网络路由配置正常,无访问限制
- 确认Gitlab实例安全组已放开Runner所在子网CIDR对443端口(你当前Gitlab地址为HTTPS协议)的入站规则
- 确认Runner扩缩容使用的EC2安全组仅配置内网必要端口的入站规则,无需开放公网端口
- 若Runner执行任务需要拉取公网镜像、依赖资源,请提前为Runner所在子网配置NAT网关,保障公网出网能力
配置修改步骤
修改子网属性
进入AWS VPC控制台,找到你配置中使用的子网subnet-c23438b8,关闭子网的「自动分配公网IPv4地址」属性,避免子网默认给新创建的EC2分配公网IP。更新Gitlab Runner Manager配置
你现有配置中已经添加了amazonec2-use-private-address=true参数,仅需在[runners.machine]的MachineOptions数组中新增amazonec2-associate-public-ip=false参数,明确禁止EC2实例分配公网IP,修改后对应配置段示例如下:
[runners.machine] IdleCount = 4 IdleTime = 300 MachineDriver = "amazonec2" MachineName = "abcdev-runners-%s" MachineOptions = ["amazonec2-ami=ami-08a1a615784dd1c82f", "amazonec2-region=eu-central-1", "amazonec2-zone=b", "amazonec2-vpc-id=vpc-0f458d68", "amazonec2-subnet-id=subnet-c23438b8", "amazonec2-instance-type=t3.xlarge", "amazonec2-root-size=250", "amazonec2-volume-type=gp2", "amazonec2-use-private-address=true", "amazonec2-associate-public-ip=false"]
域名解析配置
确认你配置的Gitlab地址https://git.abc-example.in/在私有网络内可解析到Gitlab实例的私有IP:如果当前域名解析的是公网IP,可在Runner Manager宿主机、扩容出来的Runner实例中配置hosts绑定,或者在内网DNS服务中添加该域名的私有IP解析记录。生效验证
- 执行
gitlab-runner restart重启Runner服务加载新配置 - 手动触发测试CI任务,查看新扩容出来的EC2实例是否未分配公网IP,同时确认任务可以正常拉取代码、完成构建流程
- 验证所有任务运行正常后,删除原有安全组中放开的公网全端口访问规则,完成风险整改
内容的提问来源于stack exchange,提问作者praseeb kdas
相关产品推荐
相关产品推荐

