☁️
Sécurité réseau
Sécurité cloud : AWS, Azure et GCP
📅 2025-05-23 ⏱ 10 min de lecture 🏷 Avancé

// SOMMAIRE

Sécurité cloud : AWS, Azure et GCP

Le cloud a transformé l'infrastructure IT mais a aussi introduit de nouveaux vecteurs d'attaque. Les misconfigurations cloud représentent la principale cause de fuites de données en 2024. Ce guide couvre les bonnes pratiques de sécurité sur les trois grands providers.

Les erreurs de configuration cloud les plus dangereuses

Buckets S3 publics (AWS)

# Vérifier si un bucket S3 est public

aws s3api get-bucket-acl --bucket nom-du-bucket

aws s3api get-bucket-policy-status --bucket nom-du-bucket

Scanner les buckets publics avec S3Scanner

python3 s3scanner.py --buckets-file entreprises.txt

Exemples de fuites réelles causées par des S3 publics :

Capital One (2019) : 106 millions de dossiers clients

Twitch (2021) : code source complet

GoDaddy : 1.2 million de credentials

# Boto3 - Corriger la configuration des buckets

import boto3

s3 = boto3.client('s3')

Bloquer tout accès public (recommandé par défaut)

s3.put_public_access_block(

Bucket='mon-bucket',

PublicAccessBlockConfiguration={

'BlockPublicAcls': True,

'IgnorePublicAcls': True,

'BlockPublicPolicy': True,

'RestrictPublicBuckets': True

}

)

Activer le chiffrement par défaut

s3.put_bucket_encryption(

Bucket='mon-bucket',

ServerSideEncryptionConfiguration={

'Rules': [{'ApplyServerSideEncryptionByDefault': {'SSEAlgorithm': 'AES256'}}]

}

)

Activer la journalisation

s3.put_bucket_logging(

Bucket='mon-bucket',

BucketLoggingStatus={

'LoggingEnabled': {

'TargetBucket': 'logs-bucket',

'TargetPrefix': 's3-access-logs/'

}

}

)

IAM — Gestion des identités et accès

AWS IAM

// Politique IAM avec principe du moindre privilège

{

"Version": "2012-10-17",

"Statement": [

{

"Effect": "Allow",

"Action": [

"s3:GetObject",

"s3:PutObject"

],

"Resource": "arn:aws:s3:::mon-bucket-app/*",

"Condition": {

"StringEquals": {

"aws:RequestedRegion": "eu-west-1"

},

"Bool": {

"aws:SecureTransport": "true"

}

}

}

]

}

# Audit IAM avec IAM Access Analyzer

aws accessanalyzer create-analyzer --analyzer-name mon-analyser --type ACCOUNT

Trouver les utilisateurs avec des droits excessifs

aws iam generate-credential-report

aws iam get-credential-report

Identifier les policies overpermissives

Chercher les "*" dans les actions ou ressources

aws iam list-policies --scope Local | jq '.Policies[].PolicyName'

Prowler - Audit de sécurité complet AWS

pip install prowler

prowler aws --services s3 iam ec2 --region eu-west-1

Sécurité réseau cloud

VPC et security groups

# Boto3 - Auditer les security groups ouverts sur Internet

import boto3

ec2 = boto3.client('ec2', region_name='eu-west-1')

sgs = ec2.describe_security_groups()['SecurityGroups']

for sg in sgs:

for rule in sg.get('IpPermissions', []):

for ip_range in rule.get('IpRanges', []):

if ip_range.get('CidrIp') == '0.0.0.0/0':

port = rule.get('FromPort', 'All')

print(f"⚠️ SG {sg['GroupId']} ({sg['GroupName']}) - Port {port} ouvert sur Internet")

# Terraform - Security Group sécurisé

resource "aws_security_group" "web" {

name = "web-sg"

description = "Web application security group"

vpc_id = aws_vpc.main.id

# HTTPS depuis Internet

ingress {

from_port = 443

to_port = 443

protocol = "tcp"

cidr_blocks = ["0.0.0.0/0"]

}

# SSH seulement depuis le bastion

ingress {

from_port = 22

to_port = 22

protocol = "tcp"

security_groups = [aws_security_group.bastion.id]

# Jamais : cidr_blocks = ["0.0.0.0/0"]

}

# Sortie : tout (limiter en production)

egress {

from_port = 0

to_port = 0

protocol = "-1"

cidr_blocks = ["0.0.0.0/0"]

}

}

Cloud Security Posture Management (CSPM)

# ScoutSuite - Audit multi-cloud

pip install scoutsuite

scout aws --report-dir ./rapport

Checkov - IaC security (Terraform, CloudFormation)

checkov -d ./terraform --framework terraform

CloudSploit - Détection de misconfigurations

node index.js --cloud aws --config ./config.js

Microsoft Defender for Cloud (Azure)

Google Security Command Center (GCP)

AWS Security Hub (AWS)

Checklist sécurité cloud

IAM

✅ MFA activé sur tous les comptes, obligatoire pour root/admin

✅ Pas de clés d'accès root

✅ Rotation des clés d'accès tous les 90 jours

✅ Roles IAM au lieu de clés d'accès statiques

✅ Principe du moindre privilège

✅ Utiliser AWS Organizations / Azure Management Groups

Stockage

✅ Chiffrement au repos activé sur tous les buckets/disques

✅ Pas de buckets publics

✅ Versioning activé sur les buckets critiques

✅ Logs d'accès activés

Réseau

✅ VPC avec sous-réseaux privés pour les BDD

✅ Security groups restrictifs

✅ VPN ou AWS Direct Connect pour l'accès admin

✅ CloudTrail/Azure Monitor activés (audit logs)

Monitoring

✅ AWS GuardDuty / Azure Defender activés

✅ Alertes sur connexions inhabituelles

✅ Alertes sur modifications IAM

✅ Budget alerts pour détecter le cryptomining

Conclusion

La sécurité cloud repose sur le modèle de responsabilité partagée : le provider sécurise l'infrastructure, vous sécurisez vos données et configurations. La majorité des incidents cloud viennent de misconfigurations — utilisez des outils comme Prowler, ScoutSuite ou Checkov pour auditer régulièrement votre posture.

💬 Voir l'article avec commentaires →
← HTTPS et certificats SSL/TLS : tout comprendre Tunneling et pivoting réseau →