Executar o CodeBuild em um servidor proxy transparente
Para executar o AWS CodeBuild em um servidor de proxy transparente, você deve configurar o servidor de proxy com acesso ao sites e domínios com os quais ele interage.
Configurar o Squid como um servidor de proxy transparente
Para configurar um servidor de proxy como transparente, você deve conceder a ele o acesso aos domínios e sites que deseja que ele acesse. Para executar o AWS CodeBuild com um servidor de proxy transparente, conceda a ele o acesso ao amazonaws.com. Também é necessário conceder acesso a outros sites utilizados pelo CodeBuild. Eles variam de acordo com o modo como os projetos do CodeBuild são criados. Como exemplos de sites, há aqueles para repositórios, como o GitHub, o Bitbucket, o Yum e o Maven. Para conceder ao Squid o acesso a domínios e sites específicos, use um comando semelhante ao mencionado a seguir a fim de atualizar o arquivo squid.conf. Este comando de exemplo concede acesso a amazonaws.com, github.com e bitbucket.com. Você pode editar esse exemplo para conceder acesso a outros sites.
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 dstdomaindomain_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
As solicitações de entrada de instâncias na sub-rede privada devem redirecionar para as portas do Squid. O Squid escuta na porta 3129 para tráfego HTTP (em vez de 80) e na 3130 para tráfego HTTPS (em vez de 443). Use o comando iptables para rotear o tráfego:
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
Criar um projeto do CodeBuild
Depois de configurar seu servidor de proxy, você pode usá-lo com o AWS CodeBuild em uma sub-rede privada, sem precisar de mais configuração. Cada solicitação HTTP e HTTPS passa pelo servidor de proxy público. Use o comando a seguir para visualizar o log de acesso do proxy do Squid:
sudo tail -f /var/log/squid/access.log