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
Pour fonctionner AWS CodeBuild sur un serveur proxy explicite, vous devez configurer le serveur proxy pour autoriser ou refuser le trafic à destination et en provenance de sites externes, puis configurer les variables d'HTTPS_PROXY
environnement HTTP_PROXY
et.
Rubriques
Configuration de Squid en tant que serveur proxy explicite
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 par défaut (ACL) 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 ACL règles par défaut que vous avez supprimées. La première ligne autorise les demandes de votreVPC. 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_src dstdom_regex .*s3\.us-west-1\.amazonaws\.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.<
utilisez-le pour ajouter une AWS région à une liste autorisée.your-region
>.amazonaws.com
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 :
-
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
-
-
Ajoutez
proxy
à votre fichier buildspec. Pour de plus amples informations, veuillez consulter Syntaxe d'un fichier buildspec.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.
Pour plus d'informations, consultez Exemple de fichier squid.conf de serveur proxy explicite plus loin dans cette rubrique.
Création d'un CodeBuild projet
Pour exécuter 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'EC2instance 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://
. Pour plus d’informations, consultez Créez un projet de construction dans AWS CodeBuild et Modifier les paramètres du projet de construction dans AWS CodeBuild.your-ec2-private-ip-address
:3128
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
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