Aller au contenu principal

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 »;


    attention

    Le nom du bucket {{S3WAFAuditBucketName}} doit commencer par aws-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}}