Você precisa que esses componentes executem o AWS CodeBuild em um servidor de proxy transparente ou explícito:
-
Uma VPC.
-
Uma sub-rede pública em sua VPC para o servidor de proxy.
-
Uma sub-rede privada na VPC para o CodeBuild.
-
Um gateway da Internet que permite a comunicação entre a VPC e a Internet.
O diagrama a seguir mostra como os componentes interagem.
![O diagrama mostra como os componentes interagem.](images/codebuild-proxy-transparent.png)
Configurar uma VPC, sub-redes e um gateway de rede
As etapas a seguir são necessárias para executar o AWS CodeBuild em um servidor de proxy explícito ou transparente.
-
Crie uma VPC. Para obter informações, consulte Criar uma VPC no Guia do usuário da Amazon VPC.
-
Crie duas sub-redes em sua VPC. Uma é a sub-rede pública chamada
Public Subnet
na qual o servidor de proxy é executado. A outra é uma sub-rede privada chamadaPrivate Subnet
em que o CodeBuild é executado.Para mais informações, consulte Criar uma sub-rede na VPC.
-
Crie e vincule um gateway da Internet à VPC. Para mais informações, consulte Criar e anexar um gateway da Internet.
-
Adicione uma regra à tabela de rotas padrão que roteia o tráfego de saída da VPC (0.0.0.0/0) para o gateway da Internet. Para mais informações, consulte Adicionar e remover rotas de uma tabela de rotas.
-
Adicione uma regra ao grupo de segurança padrão da sua VPC que permita o tráfego SSH de entrada (TCP 22) proveniente da sua VPC (0.0.0.0/0).
-
Siga as instruções em Launching an instance using the launch instance wizard no Guia do usuário do Amazon EC2 para iniciar uma instância do Amazon Linux. Quando você executar o assistente, escolha as seguintes opções:
-
Em Escolher um tipo de instância, escolha uma Imagem de máquina da Amazon (AMI) do Amazon Linux.
-
Em Subnet (Sub-rede), escolha a sub-rede pública criada anteriormente neste tópico. Se você tiver usado o nome sugerido, trata-se da Public Subnet (Sub-rede pública).
-
Em Auto-assign Public IP (Atribuir automaticamente o IP público), selecione Enable (Habilitar).
-
Na página Configure Security Group (Configurar grupo de segurança), para Assign a security group (Atribuir um grupo de segurança), escolha a opção Select an existing security group (Selecionar um grupo de segurança existente). Em seguida, escolha o grupo de segurança padrão.
-
Depois de escolher Launch (Executar), selecione um par de chaves existente ou crie um.
Escolha as configurações padrão para todas as outras opções.
-
-
Depois que a instância do EC2 estiver em execução, desabilite as verificações de origem/destino. Para obter informações, consulte Desabilitar verificações de origem/destino no Guia do usuário da Amazon VPC.
-
Crie uma tabela de rotas na sua VPC. Adicione uma regra à tabela de rotas que roteie para o seu servidor de proxy o tráfego destinado à Internet. Associe essa tabela de rotas à sua sub-rede privada. Isso é necessário para que as solicitações de saída das instâncias na sub-rede privada, na qual o CodeBuild é executado, sejam sempre direcionadas pelo servidor proxy.
Instalar e configurar um servidor de proxy
Há muitos servidores de proxy disponíveis para escolher. Um servidor de proxy de código aberto, Squid, é usado aqui para demonstrar como o AWS CodeBuild é executado em um servidor de proxy. Você pode aplicar os mesmos conceitos a outros servidores de proxy.
Para instalar o Squid, use um repositório yum executando os seguintes comandos:
sudo yum update -y
sudo yum install -y squid
Depois que instalar o Squid, edite seu arquivo squid.conf
usando as instruções mais adiante neste tópico.
Configurar o Squid para tráfego HTTPS
Para HTTPS, o tráfego HTTP é encapsulado em uma conexão Transport Layer Security (TLS – Segurança da camada de transporte). O Squid usa um recurso chamado 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
nota
Para HTTP, o Squid não requer configuração. De todas as mensagens de solicitação HTTP/1.1, ele pode recuperar o campo de cabeçalho do host, que especifica o host da Internet que está sendo solicitado.