AWS WAF
AWS WAF est un pare-feu d'applications Web qui vous permet de surveiller les requêtes HTTP(S) qui sont transmises aux ressources protégées de votre application Web. AWS WAF vous permet de contrôler l'accès à votre contenu.
Pour en savoir plus sur le service voir la documentation AWS WAF.
Prérequis
Permissions
- Rôle administrateur dans AWS permettant de configurer les comptes et services WAF
- Rôle « Admin d'organisation » dans MD.ECO
Préfixes proposés par défaut
Actuellement, il est impossible de spécifier un prefix comme « WAF ». C'est pour cette raison que nous proposons d'utiliser un Bucket S3 séparé.
Les journaux seront sauvegardés dans le bucket S3 avec la structure suivante: AWSLogs/{{OrgID}}/WAFLogs/{{Region}}/{{WafName}}/
Variables Préalables
-
{{S3WAFAuditBucketName}}
: Nom du bucket qui sera utilisé pour le transfert de logs avec MD.ECO, à créer au préalable avec la procédure « Implémentation S3 - Configuration de base d'un Bucket S3 »;
attentionLe nom du bucket
{{S3WAFAuditBucketName}}
doit commencer paraws-waf-logs-
Ex :
aws-waf-logs-{{ValeurUnique}}
Référence : Amazon Simple Storage Service
-
{{MondataOrgID}}
: Identifiant fournis par Mondata pour la configuration de sécurité; -
{{WAFAccountOrgID}}
: Identifiants de l'organisation où les WAF sont configurés. S'il y a plusieurs comptes: répliquer les blocs de configuration; -
{{Region}}
: La région dans lequel les WAF Account sont situés.
Étapes de configuration
Configuration du Bucket S3 (Audit organisation)
{
"Sid": "AWSLogDeliveryWrite",
"Effect": "Allow",
"Principal": {
"Service": "delivery.logs.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::{{S3WAFAuditBucketName}}/AWSLogs/{{WAFAccountOrgID}}/*",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "{{WAFAccountOrgID}}",
"s3:x-amz-acl": "bucket-owner-full-control"
},
"ArnLike": {
"aws:SourceArn": "arn:aws:logs:{{Region}}:{{WAFAccountOrgID}}:*"
}
}
},
{
"Sid": "AWSLogDeliveryAclCheck",
"Effect": "Allow",
"Principal": {
"Service": "delivery.logs.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::{{S3WAFAuditBucketName}}",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "{{WAFAccountOrgID}}"
},
"ArnLike": {
"aws:SourceArn": "arn:aws:logs:{{Region}}:{{WAFAccountOrgID}}:*"
}
}
}
Récupération des ARN
Exécuter la commande suivante pour récupérer la liste des ARN de l'ensemble de vos WAF :
aws wafv2 list-web-acls --scope REGIONAL
Configuration de la journalisation
Reproduire la configuration suivante pour l'ensemble des WAF a surveiller. Remplacer les variables suivantes
{{WAFARN}}
: Remplacer la valeur avec chaque ARN des WAF que vous avez récupéré à la section précédente.{{S3WAFAuditBucketName}}
: Nom du bucket qui sera utilisé pour le transfert de logs avec MD.ECO créé plus tôt.
aws wafv2 put-logging-configuration --logging-configuration
{
"LoggingConfiguration": {
"ResourceArn": "{{WAFARN}}",
"LogDestinationConfigs": [
"{{S3WAFAuditBucketName}}"
]
}
}
Notifier Mondata avec les informations sur l'instance
Inclure les informations suivantes :
{{S3WAFAuditBucketName}}