设置在代理服务器中运行 CodeBuild 所需的组件
您需要这些组件在透明或显式代理服务器中运行 AWS CodeBuild:
-
VPC。
-
代理服务器的 VPC 中的一个公有子网。
-
CodeBuild 的 VPC 中的一个私有子网。
-
一个 Internet 网关,允许 VPC 和 Internet 之间进行通信。
下图显示了组件的交互方式。
设置 VPC、子网和网络网关
在透明或显式代理服务器中运行 AWS CodeBuild 需要以下步骤。
-
创建 VPC。有关信息,请参阅《Amazon VPC 用户指南》中的创建 VPC。
-
在您的 VPC 中创建两个子网。一个是名为
Public Subnet
的公有子网,代理服务器将在其中运行。另一个是一个名为Private Subnet
的私有子网,CodeBuild 将在其中运行。有关信息,请参阅在 VPC 中创建子网。
-
创建 Internet 网关,并将其连接到您的 VPC。有关更多信息,请参阅创建并附加 Internet 网关。
-
向默认路由表添加一条规则,该规则将来自 VPC 的传出流量路由到 Internet 网关。有关信息,请参阅在路由表中添加和删除路由。
-
向 VPC 的默认安全组添加一条规则,该规则允许来自 VPC (0.0.0.0/0) 的入站 SSH 流量 (0.0.0.0/0)。
-
请按照《Amazon EC2 用户指南》中的使用启动实例向导启动实例来启动 Amazon Linux 实例。当您运行该向导时,请选择以下选项:
-
在选择实例类型中,选择一个 Amazon Linux 亚马逊机器映像(AMI)。
-
在子网中,选择您在本主题的前面步骤中创建的公有子网。如果您使用了建议的名称,则该名称是公有子网。
-
在自动分配公有 IP 中,选择启用。
-
在配置安全组页面上,对于分配安全组,选择选择现有安全组。接下来,选择默认安全组。
-
选择启动后,选择现有密钥对或创建密钥对。
选择所有其他选项的默认设置。
-
-
您的 EC2 实例开始运行后,禁用源/目标检查。有关信息,请参阅《Amazon VPC 用户指南》中的禁用源/目标检查。
-
在 VPC 中创建路由表。向路由表中添加一条规则,该规则将发往 Internet 的流量路由到您的代理服务器。将此路由表与私有子网关联。这是必需的,以便来自私有子网(CodeBuild 在其中运行)中的实例的出站请求始终通过代理服务器进行路由。
安装和配置代理服务器
有许多可供选择的代理服务器。Squid 是一个开源代理服务器,此处用于演示 AWS CodeBuild 如何在代理服务器中运行。您可以将相同的概念应用于其他代理服务器。
要安装 Squid,请通过运行以下命令使用 yum 存储库:
sudo yum update -y sudo yum install -y squid
安装 Squid 后,请按照本主题后面的说明操作来编辑其 squid.conf
文件。
为 HTTPS 流量配置 Squid
对于 HTTPS,HTTP 流量封装在一个传输层安全性协议(TLS)连接中。Squid 使用一个名为 SslPeekAndSplice
sudo mkdir /etc/squid/ssl cd /etc/squid/ssl sudo openssl genrsa -out squid.key 2048 sudo openssl req -new -key squid.key -out squid.csr -subj "/C=XX/ST=XX/L=squid/O=squid/CN=squid" sudo openssl x509 -req -days 3650 -in squid.csr -signkey squid.key -out squid.crt sudo cat squid.key squid.crt | sudo tee squid.pem
注意
对于 HTTP,Squid 不需要配置。它可以从所有 HTTP/1.1 请求消息中检索主机标头字段,该字段指定所请求的 Internet 主机。