在透明代理伺服器 CodeBuild 中執行 - AWS CodeBuild

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在透明代理伺服器 CodeBuild 中執行

若要在透明代理伺服器 AWS CodeBuild 中執行,您必須設定代理伺服器,並存取其互動的網站和網域。

將 Squid 設定為透明代理伺服器

若要將代理伺服器設定為透明,您必須授與它您希望其存取之網域和網站的存取權。若要 AWS CodeBuild 使用透明代理伺服器執行 ,您必須將其存取權授予 amazonaws.com。您還必須授予其他網站 CodeBuild 使用的存取權。視您建立 CodeBuild 專案的方式而定,這些項目會有所不同。範例網站是 GitHub、Bitbucket、Yum 和 Maven 等儲存庫的網站。若要授與 Squid 存取特定網域和網站,請使用類似以下的命令來更新 squid.conf 檔案。此命令範例會授予對 amazonaws.comgithub.combitbucket.com 的存取權。您可以編輯此範例來授與存取其他網站。

cat | sudo tee /etc/squid/squid.conf ≪EOF visible_hostname squid #Handling HTTP requests http_port 3129 intercept acl allowed_http_sites dstdomain .amazonaws.com #acl allowed_http_sites dstdomain domain_name [uncomment this line to add another domain] http_access allow allowed_http_sites #Handling HTTPS requests https_port 3130 cert=/etc/squid/ssl/squid.pem ssl-bump intercept acl SSL_port port 443 http_access allow SSL_port acl allowed_https_sites ssl::server_name .amazonaws.com acl allowed_https_sites ssl::server_name .github.com acl allowed_https_sites ssl::server_name .bitbucket.com #acl allowed_https_sites ssl::server_name [uncomment this line to add another website] acl step1 at_step SslBump1 acl step2 at_step SslBump2 acl step3 at_step SslBump3 ssl_bump peek step1 all ssl_bump peek step2 allowed_https_sites ssl_bump splice step3 allowed_https_sites ssl_bump terminate step2 all http_access deny all EOF

從私有子網路中的執行個體傳入的請求必須重新導向到 Squid 連接埠。Squid 在連接埠 3129 上接聽HTTP流量 (而非 80),而 3130 接聽HTTPS流量 (而非 443)。使用 iptables 命令來路由流量:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3129 sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 3130 sudo service iptables save sudo service squid start

建立 CodeBuild專案

設定代理伺服器後,您可以在私有子網路 AWS CodeBuild 中使用代理伺服器,而無需更多組態。每個 HTTP和 HTTPS請求都會經過公有代理伺服器。使用以下命令來檢視 Squid 代理存取日誌:

sudo tail -f /var/log/squid/access.log