

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exécuter CodeBuild sur un serveur proxy explicite
<a name="run-codebuild-in-explicit-proxy-server"></a>

 Pour fonctionner AWS CodeBuild sur un serveur proxy explicite, vous devez configurer le serveur proxy pour autoriser ou refuser le trafic vers et depuis des sites externes, puis configurer les variables d'`HTTPS_PROXY`environnement `HTTP_PROXY` et. 

**Topics**
+ [Configuration de Squid en tant que serveur proxy explicite](#use-proxy-server-explicit-squid-configure)
+ [Création d'un CodeBuild projet](#use-proxy-server-explicit-create-acb-project)
+ [Exemple de fichier `squid.conf` de serveur proxy explicite](#use-proxy-server-explicit-sample-squid-conf)

## Configuration de Squid en tant que serveur proxy explicite
<a name="use-proxy-server-explicit-squid-configure"></a>

 Pour configurer le serveur proxy Squid en tant que serveur explicite, vous devez apporter les modifications suivantes au fichier `/etc/squid/squid.conf` : 
+  Supprimez les règles de liste de contrôle d'accès (ACL) par défaut suivantes :. 

  ```
  acl localnet src 10.0.0.0/8     
  acl localnet src 172.16.0.0/12  
  acl localnet src 192.168.0.0/16 
  acl localnet src fc00::/7       
  acl localnet src fe80::/10
  ```

   Ajoutez les règles suivantes à la place des règles ACL par défaut que vous avez supprimées. La première ligne autorise les demandes à partir de votre VPC. Les deux lignes suivantes permettent à votre serveur proxy d'accéder à une destination URLs susceptible d'être utilisée par AWS CodeBuild. Modifiez l'expression régulière dans la dernière ligne pour spécifier des compartiments S3 ou un CodeCommit référentiel dans une AWS région. Par exemple :
  + Si votre source est Amazon S3, utilisez la commande **acl download\$1src dstdom\$1regex .\$1s3\$1.us-west-1\$1.amazonaws\$1.com** pour autoriser l'accès aux compartiments S3 de la `us-west-1` région.
  +  Si votre source l'est AWS CodeCommit, `git-codecommit.<your-region>.amazonaws.com` utilisez-le pour ajouter une AWS région à une liste autorisée. 

  ```
  acl localnet src 10.1.0.0/16 #Only allow requests from within the VPC
  acl allowed_sites dstdomain .github.com #Allows to download source from GitHub
  acl allowed_sites dstdomain .bitbucket.com #Allows to download source from Bitbucket
  acl download_src dstdom_regex .*\.amazonaws\.com #Allows to download source from Amazon S3 or CodeCommit
  ```
+  Remplacez `http_access allow localnet` par ce qui suit : 

  ```
  http_access allow localnet allowed_sites
  http_access allow localnet download_src
  ```
+ Si vous souhaitez que votre build charge des journaux et des artefacts, effectuez l'une des actions suivantes :

  1. Avant l'instruction `http_access deny all`, insérez les instructions suivantes. Ils permettent CodeBuild d'accéder CloudWatch à Amazon S3. L'accès à CloudWatch est requis pour CodeBuild créer des CloudWatch journaux. L'accès à Amazon S3 est requis pour le téléchargement d'artefacts et la mise en cache d'Amazon S3. 
     + 

       ```
       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 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
       ```
     + Après avoir enregistré`squid.conf`, exécutez la commande suivante : 

       ```
       sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 3130
       sudo service squid restart
       ```

  1.  Ajoutez `proxy` à votre fichier buildspec. Pour de plus amples informations, veuillez consulter [Syntaxe d'un fichier buildspec](build-spec-ref.md#build-spec-ref-syntax). 

     ```
     version: 0.2
     proxy:
       upload-artifacts: yes
       logs: yes
     phases:
       build:
         commands:
           - command
     ```

**Note**  
Si vous recevez un message d'erreur RequestError de temporisation, consultez[RequestError erreur de temporisation lors de l'exécution CodeBuild sur un serveur proxy](troubleshooting.md#code-request-timeout-error).

Pour plus d'informations, consultez [Exemple de fichier `squid.conf` de serveur proxy explicite](#use-proxy-server-explicit-sample-squid-conf) plus loin dans cette rubrique.

## Création d'un CodeBuild projet
<a name="use-proxy-server-explicit-create-acb-project"></a>

 Pour fonctionner AWS CodeBuild avec votre serveur proxy explicite, définissez ses variables `HTTP_PROXY` et ses variables d'`HTTPS_PROXY`environnement avec l'adresse IP privée de l'instance EC2 que vous avez créée pour votre serveur proxy et le port 3128 au niveau du projet. L'adresse IP privée se présente ainsi : `http://your-ec2-private-ip-address:3128`. Pour plus d’informations, consultez [Créez un projet de construction dans AWS CodeBuild](create-project.md) et [Modifier les paramètres du projet de construction dans AWS CodeBuild](change-project.md).

 Utilisez la commande suivante pour afficher le journal d'accès proxy Squid : 

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

## Exemple de fichier `squid.conf` de serveur proxy explicite
<a name="use-proxy-server-explicit-sample-squid-conf"></a>

 L'exemple suivant présente un fichier `squid.conf` configuré pour un serveur proxy explicite. 

```
  acl localnet src 10.0.0.0/16 #Only allow requests from within the VPC
  # add all URLS to be whitelisted for download source and commands to be run in build environment
  acl allowed_sites dstdomain .github.com    #Allows to download source from github
  acl allowed_sites dstdomain .bitbucket.com #Allows to download source from bitbucket
  acl allowed_sites dstdomain ppa.launchpad.net #Allows to run apt-get in build environment
  acl download_src dstdom_regex .*\.amazonaws\.com #Allows to download source from S3 or CodeCommit
  acl SSL_ports port 443
  acl Safe_ports port 80		# http
  acl Safe_ports port 21		# ftp
  acl Safe_ports port 443		# https
  acl Safe_ports port 70		# gopher
  acl Safe_ports port 210		# wais
  acl Safe_ports port 1025-65535	# unregistered ports
  acl Safe_ports port 280		# http-mgmt
  acl Safe_ports port 488		# gss-http
  acl Safe_ports port 591		# filemaker
  acl Safe_ports port 777		# multiling http
  acl CONNECT method CONNECT
  #
  # Recommended minimum Access Permission configuration:
  #
  # Deny requests to certain unsafe ports
  http_access deny !Safe_ports
  # Deny CONNECT to other than secure SSL ports
  http_access deny CONNECT !SSL_ports
  # Only allow cachemgr access from localhost
  http_access allow localhost manager
  http_access deny manager
  # We strongly recommend the following be uncommented to protect innocent
  # web applications running on the proxy server who think the only
  # one who can access services on "localhost" is a local user
  #http_access deny to_localhost
  #
  # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
  #
  # Example rule allowing access from your local networks.
  # Adapt localnet in the ACL section to list your (internal) IP networks
  # from where browsing should be allowed
  http_access allow localnet allowed_sites
  http_access allow localnet download_src
  http_access allow localhost
  # Add this for CodeBuild to access CWL end point, caching and upload artifacts S3 bucket end point
  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 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
  # And finally deny all other access to this proxy
  http_access deny all
  # Squid normally listens to port 3128
  http_port 3128
  # Uncomment and adjust the following to add a disk cache directory.
  #cache_dir ufs /var/spool/squid 100 16 256
  # Leave coredumps in the first cache dir
  coredump_dir /var/spool/squid
  #
  # Add any of your own refresh_pattern entries above these.
  #
  refresh_pattern ^ftp:		1440	20%	10080
  refresh_pattern ^gopher:	1440	0%	1440
  refresh_pattern -i (/cgi-bin/|\?) 0	0%	0
  refresh_pattern .		0	20%	4320
```