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.
Cette rubrique fournit des informations sur l'envoi de vos journaux de trafic ACL Web vers un compartiment Amazon S3.
Note
La connexion vous est facturée en plus des frais d'utilisation AWS WAF. Pour plus d’informations, veuillez consulter Tarification de l'enregistrement des informations relatives au trafic ACL Web.
Pour envoyer vos journaux de trafic ACL Web à Amazon S3, vous configurez un compartiment Amazon S3 à partir du même compte que celui que vous utilisez pour gérer l'ACL Web, et vous nommez le compartiment en commençant paraws-waf-logs-
. Lorsque vous activez la connexion AWS WAF, vous indiquez le nom du compartiment. Pour plus d'informations sur la création d'un bucket de journalisation, consultez Create a Bucket dans le guide de l'utilisateur d'Amazon Simple Storage Service.
Vous pouvez accéder à vos journaux Amazon S3 et les analyser à l'aide du service de requêtes interactif Amazon Athena. Athena facilite l'analyse des données directement dans Amazon S3 à l'aide du SQL standard. En effectuant quelques actions AWS Management Console, vous pouvez pointer Athena vers les données stockées dans Amazon S3 et commencer rapidement à utiliser le SQL standard pour exécuter des requêtes ad hoc et obtenir des résultats. Pour plus d'informations, consultez la section Interrogation des AWS WAF journaux dans le guide de l'utilisateur d'Amazon Athena. Pour des exemples de requêtes Amazon Athena supplémentaires, consultez waf-log-sample-athenaaws-samples/
Note
AWS WAF prend en charge le chiffrement avec des compartiments Amazon S3 pour le type de clé Amazon S3 (SSE-S3) et pour AWS Key Management Service (SSE-KMS). AWS KMS keys AWS WAF ne prend pas en charge le chiffrement des AWS Key Management Service clés gérées par AWS.
ACLs Publiez leurs fichiers journaux sur le Web dans le compartiment Amazon S3 à intervalles de 5 minutes. Chaque fichier journal contient les enregistrements du trafic enregistré au cours des 5 minutes précédentes.
La taille maximale d'un fichier journal est de 75 Mo. Si le fichier journal atteint la taille limite de fichier dans un délai de 5 minutes, le journal arrête d'y ajouter des enregistrements, le publie dans le compartiment Amazon S3, puis crée un nouveau fichier journal.
Les fichiers journaux sont compressés. Si vous ouvrez les fichiers à l'aide de la console Amazon S3, Amazon S3 décompresse les enregistrements du journal et les affiche. Si vous téléchargez les fichiers journaux, vous devez les décompresser pour afficher les enregistrements.
Un seul fichier journal contient des entrées entrelacées avec plusieurs enregistrements. Pour voir tous les fichiers journaux d'une ACL Web, recherchez les entrées agrégées par le nom de l'ACL Web, la région et l'ID de votre compte.
Exigences en matière de dénomination et syntaxe
Les noms des compartiments pour la AWS WAF journalisation doivent commencer par aws-waf-logs-
et peuvent se terminer par le suffixe de votre choix. Par exemple, aws-waf-logs-
. LOGGING-BUCKET-SUFFIX
Emplacement du godet
Les emplacements des compartiments utilisent la syntaxe suivante :
s3://aws-waf-logs-
LOGGING-BUCKET-SUFFIX
/
ARN de compartiment
Le format du bucket Amazon Resource Name (ARN) est le suivant :
arn:aws:s3:::aws-waf-logs-
LOGGING-BUCKET-SUFFIX
Emplacements des compartiments avec préfixes
Si vous utilisez des préfixes dans le nom de vos clés d'objet pour organiser les données que vous stockez dans vos compartiments, vous pouvez fournir vos préfixes dans les noms de vos compartiments de journalisation.
Note
Cette option n'est pas disponible via la console. Utilisez AWS WAF APIs la CLI ou AWS CloudFormation.
Pour plus d'informations sur l'utilisation des préfixes dans Amazon S3, consultez la section Organisation des objets à l'aide de préfixes dans le guide de l'utilisateur d'Amazon Simple Storage Service.
Les emplacements des compartiments dotés de préfixes utilisent la syntaxe suivante :
s3://aws-waf-logs-
LOGGING-BUCKET-SUFFIX
/KEY-NAME-PREFIX
/
Dossiers de compartiments et noms de fichiers
À l'intérieur de vos compartiments, et après les préfixes que vous fournissez, vos AWS WAF journaux sont écrits dans une structure de dossiers déterminée par votre identifiant de compte, la région, le nom de l'ACL Web, ainsi que la date et l'heure.
AWSLogs/
account-id
/WAFLogs/Region
/web-acl-name
/YYYY
/MM
/dd
/HH
/mm
À l'intérieur des dossiers, les noms des fichiers journaux suivent un format similaire :
account-id
_waflogs_Region
_web-acl-name
_timestamp
_hash
.log.gz
Les spécifications temporelles utilisées dans la structure des dossiers et dans le nom du fichier journal sont conformes à la spécification du format d'horodatage. YYYYMMddTHHmmZ
Voici un exemple de fichier journal dans un compartiment Amazon S3 pour un compartiment nomméaws-waf-logs-
. L' Compte AWS estLOGGING-BUCKET-SUFFIX
11111111111
. L'ACL Web est TEST-WEBACL
et la région l'estus-east-1
.
s3://aws-waf-logs-
LOGGING-BUCKET-SUFFIX
/AWSLogs/11111111111/WAFLogs/us-east-1/TEST-WEBACL/2021/10/28/19/50/11111111111_waflogs_us-east-1_TEST-WEBACL_20211028T1950Z_e0ca43b5.log.gz
Note
Les noms de vos compartiments pour la AWS WAF journalisation doivent commencer par aws-waf-logs-
et peuvent se terminer par le suffixe de votre choix.
Autorisations requises pour publier des journaux sur Amazon S3
La configuration de la journalisation du trafic ACL Web pour un compartiment Amazon S3 nécessite les paramètres d'autorisation suivants. Ces autorisations sont définies pour vous lorsque vous utilisez l'une des politiques gérées d'accès AWS WAF complet, AWSWAFConsoleFullAccess
ouAWSWAFFullAccess
. Si vous souhaitez gérer davantage l'accès à votre journal et à vos AWS WAF ressources, vous pouvez définir ces autorisations vous-même. Pour plus d'informations sur la gestion des autorisations, consultez la section Gestion de l'accès aux AWS
ressources dans le Guide de l'utilisateur IAM. Pour plus d'informations sur les politiques AWS WAF gérées, consultezAWS politiques gérées pour AWS WAF.
Les autorisations suivantes vous permettent de modifier la configuration de journalisation de l'ACL Web et de configurer la livraison des journaux vers votre compartiment Amazon S3. Ces autorisations doivent être associées à l'utilisateur que vous utilisez pour gérer AWS WAF.
Note
Lorsque vous définissez les autorisations répertoriées ci-dessous, vous pouvez voir des erreurs dans vos AWS CloudTrail journaux indiquant que l'accès a été refusé, mais que les autorisations sont correctes pour la AWS WAF journalisation.
{
"Version":"2012-10-17",
"Statement":[
{
"Action":[
"wafv2:PutLoggingConfiguration",
"wafv2:DeleteLoggingConfiguration"
],
"Resource":[
"*"
],
"Effect":"Allow",
"Sid":"LoggingConfigurationAPI"
},
{
"Sid":"WebACLLogDelivery",
"Action":[
"logs:CreateLogDelivery",
"logs:DeleteLogDelivery"
],
"Resource": "*",
"Effect":"Allow"
},
{
"Sid":"WebACLLoggingS3",
"Action":[
"s3:PutBucketPolicy",
"s3:GetBucketPolicy"
],
"Resource": [
"arn:aws:s3:::aws-waf-logs-LOGGING-BUCKET-SUFFIX
"
],
"Effect":"Allow"
}
]
}
Lorsque des actions sont autorisées sur toutes les AWS ressources, cela est indiqué dans la politique avec un "Resource"
paramètre de"*"
. Cela signifie que les actions sont autorisées sur toutes les AWS ressources prises en charge par chaque action. Par exemple, l'action n'wafv2:PutLoggingConfiguration
est prise en charge que pour la wafv2
journalisation des ressources de configuration.
Par défaut, les compartiments Amazon S3 et les objets qu'ils contiennent sont privés. Seul le propriétaire du compartiment peut accéder au compartiment et aux objets qui y sont stockés. Le propriétaire du bucket peut toutefois accorder l'accès à d'autres ressources et utilisateurs en rédigeant une politique d'accès.
Si l'utilisateur qui crée le journal est propriétaire du compartiment, le service attache automatiquement la politique suivante au compartiment pour autoriser le journal à y publier des journaux :
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSLogDeliveryWrite",
"Effect": "Allow",
"Principal": {
"Service": "delivery.logs.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::aws-waf-logs-LOGGING-BUCKET-SUFFIX
/AWSLogs/account-id
/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control",
"aws:SourceAccount": ["account-id
"]
},
"ArnLike": {
"aws:SourceArn": ["arn:aws:logs:region
:account-id
:*"]
}
}
},
{
"Sid": "AWSLogDeliveryAclCheck",
"Effect": "Allow",
"Principal": {
"Service": "delivery.logs.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::aws-waf-logs-LOGGING-BUCKET-SUFFIX
",
"Condition": {
"StringEquals": {
"aws:SourceAccount": ["account-id
"]
},
"ArnLike": {
"aws:SourceArn": ["arn:aws:logs:region
:account-id
:*"]
}
}
}
]
}
Note
Les noms de vos compartiments pour la AWS WAF journalisation doivent commencer par aws-waf-logs-
et peuvent se terminer par le suffixe de votre choix.
Si l'utilisateur qui crée le journal n'est pas propriétaire du compartiment ou ne dispose pas des PutBucketPolicy
autorisations GetBucketPolicy
et pour le compartiment, la création du journal échoue. Dans ce cas, le propriétaire du compartiment doit ajouter manuellement la politique précédente au compartiment et spécifier l' Compte AWS ID du créateur du journal. Pour de plus amples informations, veuillez consulter Comment ajouter une politique de compartiment S3 dans le Guide de l'utilisateur Amazon Simple Storage Service. Si le bucket reçoit les journaux de plusieurs comptes, ajoutez une entrée d'Resource
élément à la déclaration de AWSLogDeliveryWrite
politique pour chaque compte.
Par exemple, la politique de compartiment suivante permet Compte AWS
111122223333
de publier des journaux dans un compartiment nommé aws-waf-logs-
:LOGGING-BUCKET-SUFFIX
{
"Version": "2012-10-17",
"Id": "AWSLogDeliveryWrite20150319",
"Statement": [
{
"Sid": "AWSLogDeliveryWrite",
"Effect": "Allow",
"Principal": {
"Service": "delivery.logs.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::aws-waf-logs-LOGGING-BUCKET-SUFFIX
/AWSLogs/111122223333/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control",
"aws:SourceAccount": ["111122223333"]
},
"ArnLike": {
"aws:SourceArn": ["arn:aws:logs:us-east-1:111122223333:*"]
}
}
},
{
"Sid": "AWSLogDeliveryAclCheck",
"Effect": "Allow",
"Principal": {
"Service": "delivery.logs.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::aws-waf-logs-LOGGING-BUCKET-SUFFIX
",
"Condition": {
"StringEquals": {
"aws:SourceAccount": ["111122223333"]
},
"ArnLike": {
"aws:SourceArn": ["arn:aws:logs:us-east-1:111122223333:*"]
}
}
}
]
}
Autorisations d'utilisation AWS Key Management Service avec une clé KMS
Si votre destination de journalisation utilise le chiffrement côté serveur avec des clés stockées dans AWS Key Management Service (SSE-KMS) et que vous utilisez une clé gérée par le client (clé KMS), vous devez AWS WAF autoriser l'utilisation de votre clé KMS. Pour ce faire, vous ajoutez une politique clé à la clé KMS pour la destination que vous avez choisie. Cela permet à la AWS WAF journalisation d'écrire vos fichiers journaux vers votre destination.
Ajoutez la politique clé suivante à votre clé KMS pour autoriser AWS WAF la connexion à votre compartiment Amazon S3.
{
"Sid": "Allow AWS WAF to use the key",
"Effect": "Allow",
"Principal": {
"Service": [
"delivery.logs.amazonaws.com"
]
},
"Action": "kms:GenerateDataKey*",
"Resource": "*"
}
Autorisations requises pour accéder aux fichiers journaux Amazon S3
Amazon S3 utilise des listes de contrôle d'accès (ACLs) pour gérer l'accès aux fichiers journaux créés par un AWS WAF
journal. Par défaut, le propriétaire du compartiment dispose d'autorisations FULL_CONTROL
sur chaque fichier journal. Si le propriétaire de la diffusion des journaux n'est pas le propriétaire du compartiment, il ne dispose d'aucune autorisation. Le compte de diffusion des journaux possède les autorisations READ
et WRITE
. Pour de plus amples informations, veuillez consulter Présentation des listes de contrôle d'accès (ACL) dans le Guide du développeur Amazon Simple Storage Service.