Récupérer et écrire dans les logs d'accès l'IP source des connexions sur AWS derrière un ELB/ALB avec le header X-Forwarded-For

Pour récupérer l’adresse IP source du client qui initie la connexion au niveau d’une instance située derrière un Load-Balancer, plutôt que l’IP du Load-Balancer lui-même, il est nécessaire d’utiliser un header HTTP spécifique. Dans AWS, l’ELB/ALB ajoute plusieurs headers par défaut, dont X-Forwarded-For, qui correspond à l’adresse IP publique à partir de laquelle la connexion est effectuée. Les headers ne sont ajoutés que lorsqu’on utilise un Load-Balancer qui fait du niveau 7, c’est à dire un Load-Balancer configuré pour se connecter sur les instances en HTTP et HTTPS, pas en TCP ou SSL (niveau 4).

Mettre à jour GitLab CE Omnibus de la version 7.10 à la version 10.5

GitLab Omnibus est la version la plus simple à installer de GitLab. GitLab Omnibus est disponible depuis la version 6.6 et se présente sous la forme d’un unique paquet .deb ou .rpm. La mise à jour se fait comme pour n’importe quel paquet, mais faire un trop gros saut de version en une seule fois risque de ne pas fonctionner. Pour les versions antérieures à 7.10, il est possible de la mettre à jour en 7.

Comment j'ai modernisé mon blog en migrant de Wordpress à Hugo

J’ai eu envie de donner un coup de jeune à mon blog, dont le design commençait à être relativement ancien, et qui ne s’affichait pas toujours correctement sur mobile et tablette. De plus, Wordpress est un bon moteur de blog, mais la gestion des thèmes, des plugins, les mises à jour fréquentes, et le fait qu’une stack LAMP complète soit nécessaire ne me convenait plus. J’ai donc décidé de changer de moteur de blog, pour utiliser un générateur de sites statiques : Hugo.

Le réseau dans le cloud AWS

Il est nécessaire de bien comprendre plusieurs concepts réseau afin de déployer une application dans le cloud AWS de manière optimale. Comme je n’ai pas trouvé de schéma qui regroupe l’ensemble des concepts, j’ai décidé d’en faire un, afin d’avoir une architecture de référence à utiliser pour décrire ces concepts. Évidemment, étant donné la relative complexité de l’infrastructure, le schéma est assez grand. Vous pouvez cliquer sur l’image pour ouvrir le fichier original.

Mettre en place du filtrage IP sur un bucket S3

Pour autoriser l’accès à un bucket S3 uniquement à partir de certaines IPs, il faut associer une bucket policy comme celle ci-dessous : { "Version": "2012-10-17", "Id": "S3PolicyMyIpFilter", "Statement": [ { "Sid": "IPAllow", "Effect": "Allow", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::bucket-name/*", "Condition": { "IpAddress": { "aws:SourceIp": [ "123.56.78.9/32", "98.76.54.32/32" ] } } } ] } Il faut adapter le nom du bucket S3, et paramétrer les IPs ou les ranges que l’on souhaite autoriser.