Journaux d'accès de votre Network Load Balancer - Elastic Load Balancing

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.

Journaux d'accès de votre Network Load Balancer

Elastic Load Balancing fournit des journaux d'accès qui capturent des informations détaillées sur les TLS connexions établies avec votre Network Load Balancer. Vous pouvez utiliser ces journaux d'accès pour analyser les modèles de trafic et résoudre des problèmes.

Important

Les journaux d'accès sont créés uniquement si l'équilibreur de charge dispose d'un TLS écouteur, et les journaux contiennent uniquement des informations sur les TLS demandes. Les journaux d'accès enregistrent les demandes dans la mesure du possible. Il est recommandé d'utiliser les journaux d'accès pour comprendre la nature des demandes, et non comme comptabilisation complète de toutes les demandes.

La journalisation des accès est une fonction facultative d'Elastic Load Balancing qui est désactivée par défaut. Une fois que vous avez activé la journalisation des accès pour votre équilibreur de charge, Elastic Load Balancing capture les journaux sous forme de fichiers compressés et les stocke dans le compartiment Amazon S3 que vous spécifiez. Vous pouvez désactiver la journalisation des accès à tout moment.

Vous pouvez activer le chiffrement côté serveur avec des clés de chiffrement gérées par Amazon SSE S3 (-S3) ou utiliser le service de gestion des clés avec des clés gérées par le client (SSE- KMSCMK) pour votre compartiment S3. Tous les fichiers de journaux d'accès sont automatiquement chiffrés avant d'être stockés dans votre compartiment S3, puis déchiffrés lorsque vous y accédez. Aucune action de votre part n'est requise puisqu'il n'y a aucune différence dans la manière dont vous accédez aux fichiers journaux chiffrés ou déchiffrés. Chaque fichier journal est chiffré à l'aide d'une clé unique, elle-même chiffrée à l'aide d'une KMS clé qui fait l'objet d'une rotation régulière. Pour plus d'informations, consultez les sections Spécification du chiffrement Amazon S3 (SSE-S3) et Spécification du chiffrement côté serveur avec AWS KMS (SSE-KMS) dans le guide de l'utilisateur Amazon S3.

L'utilisation des journaux d'accès n'implique aucun coût supplémentaire. Les coûts de stockage pour Amazon S3 vous sont facturés, mais pas la bande passante utilisée par Elastic Load Balancing pour envoyer les fichiers journaux à Amazon S3. Pour plus d'informations sur les coûts de stockage, consultez Tarification Amazon S3.

Fichiers journaux d'accès

Elastic Load Balancing publie un fichier journal pour chaque nœud d'équilibreur de charge toutes les 5 minutes. La diffusion de journaux est cohérente à terme. L'équilibreur de charge peut fournir plusieurs journaux pour la même période. Cela se produit généralement si le site connaît un trafic dense.

Les noms de fichiers des journaux d'accès respectent le format suivant :

bucket[/prefix]/AWSLogs/aws-account-id/elasticloadbalancing/region/yyyy/mm/dd/aws-account-id_elasticloadbalancing_region_net.load-balancer-id_end-time_random-string.log.gz
bucket

Nom du compartiment S3.

prefix

Préfixe (hiérarchie logique) dans le compartiment. Si vous ne spécifiez pas de préfixe, les journaux sont placés à la racine du compartiment.

aws-account-id

L' Compte AWS identifiant du propriétaire.

region

Région pour votre équilibreur de charge et le compartiment S3.

aaaa/mm/jj

Date à laquelle le journal a été fourni.

load-balancer-id

ID de ressource de l'équilibreur de charge. Si l'ID de ressource contient des barres obliques (/), elles sont remplacées par des points (.).

end-time

Date et heure auxquelles l'intervalle de journalisation a pris fin. Par exemple, une heure de fin 20181220T2340Z contient des entrées pour les demandes effectuées entre 23h35 et 23h40.

random-string

Chaîne aléatoire générée par le système.

Voici un exemple de nom de fichier journal :

s3://my-bucket/prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2020/05/01/123456789012_elasticloadbalancing_us-east-2_net.my-loadbalancer.1234567890abcdef_20200501T0000Z_20sg8hgm.log.gz

Vous pouvez stocker vos fichiers journaux dans votre compartiment aussi longtemps que vous le souhaitez, mais vous pouvez également définir des règles de cycle de vie Amazon S3 pour archiver ou supprimer automatiquement les fichiers journaux. Pour plus d'informations, veuillez consulter Gestion du cycle de vie de votre stockage dans le Guide de l'utilisateur Amazon S3.

Entrées des journaux d'accès

Le tableau suivant décrit les champs d'une entrée de journal d'accès, dans l'ordre. Tous les champs sont délimités par des espaces. Lorsque de nouveaux champs sont insérés, ils sont ajoutés à la fin de l'entrée de journal. Lors du traitement des fichiers journaux, vous devez ignorer les champs situés à la fin de l'entrée de journal que vous n'attendiez pas.

Champ Description

type

Le type d'écouteur. La valeur prise en charge est tls.

version

La version de l'entrée de journal. La version actuelle est 2.0.

time

Heure enregistrée à la fin de la TLS connexion, au format ISO 8601.

elb

ID de ressource de l'équilibreur de charge.

écouteur

ID de ressource de l'TLSécouteur pour la connexion.

client:port

Adresse IP et port du client.

destination:port

Adresse IP et port de la destination. Si le client se connecte directement à l'équilibreur de charge, la destination est l'écouteur. Si le client se connecte à l'aide d'un service de VPC point de terminaison, la destination est le VPC point de terminaison.

connection_time

Durée totale pour établir la connexion, du début à la fermeture, en millisecondes.

tls_handshake_time

Durée totale de la TLS poignée de main une fois la TCP connexion établie, y compris les délais côté client, en millisecondes. Cette durée est incluse dans le champ connection_time.

received_bytes

Le nombre d'octets reçus par l'équilibreur de charge à partir du client, après déchiffrement.

sent_bytes

Le nombre d'octets envoyés par l'équilibreur de charge au client, après déchiffrement.

incoming_tls_alert

La valeur entière des TLS alertes reçues par l'équilibreur de charge en provenance du client, le cas échéant. Sinon, cette valeur est définie sur -.

chosen_cert_arn

Le ARN certificat fourni au client. Si aucun message Hello client valide n'est envoyé, cette valeur est définie sur -.

chosen_cert_serial

Réservé pour un usage futur. Cette valeur est toujours définie sur -.

tls_cipher

La suite de chiffrement négociée avec le client, au SSL format Open. Si TLS la négociation n'aboutit pas, cette valeur est définie sur -.

tls_protocol_version

Le TLS protocole négocié avec le client, sous forme de chaîne. Les valeurs possibles sont tlsv10, tlsv11, tlsv12 et tlsv13. Si TLS la négociation n'aboutit pas, cette valeur est définie sur -.

tls_named_group

Réservé pour un usage futur. Cette valeur est toujours définie sur -.

domain_name

Valeur de l'extension server_name dans le message Hello client. Cette valeur est URL codée. Si aucun message Hello client valide n'est envoyé ou que l'extension manque, cette valeur est définie sur -.

alpn_fe_protocol

Le protocole TLS négocié avec le client, au format chaîne. Les valeurs possibles sont h2, http/1.1 et http/1.0. Si aucune ALPN politique n'est configurée dans l'TLSécouteur, si aucun protocole correspondant n'est trouvé ou si aucune liste de protocoles valide n'est envoyée, cette valeur est définie sur -.

alpn_be_protocol

Protocole d'application négocié avec la cible, au format chaîne. Les valeurs possibles sont h2, http/1.1 et http/1.0. Si aucune ALPN politique n'est configurée dans l'TLSécouteur, si aucun protocole correspondant n'est trouvé ou si aucune liste de protocoles valide n'est envoyée, cette valeur est définie sur -.

alpn_client_preference_list

Valeur de l'extension application_layer_protocol_negotiation dans le message client Hello. Cette valeur est URL codée. Chaque protocole est entouré de guillemets doubles et les protocoles sont séparés par une virgule. Si aucune ALPN politique n'est configurée dans l'TLSécouteur, si aucun message client valide n'est envoyé ou si l'extension n'est pas présente, cette valeur est définie sur -. La chaîne est tronquée si elle dépasse 256 octets.

tls_connection_creation_time

Heure enregistrée au début de la TLS connexion, au format ISO 8601.

Exemple d'entrées de journal

Des modèles d'entrées de journal sont présentés ci-après : Notez que le texte ne s'affiche sur plusieurs lignes que pour en faciliter la lecture.

Voici un exemple d'TLSécouteur sans ALPN politique.

tls 2.0 2018-12-20T02:59:40 net/my-network-loadbalancer/c6e77e28c25b2234 g3d4b5e8bb8464cd 72.21.218.154:51341 172.100.100.185:443 5 2 98 246 - arn:aws:acm:us-east-2:671290407336:certificate/2a108f19-aded-46b0-8493-c63eb1ef4a99 - ECDHE-RSA-AES128-SHA tlsv12 - my-network-loadbalancer-c6e77e28c25b2234.elb.us-east-2.amazonaws.com - - - 2018-12-20T02:59:30

Voici un exemple d'TLSécouteur doté d'une ALPN politique.

tls 2.0 2020-04-01T08:51:42 net/my-network-loadbalancer/c6e77e28c25b2234 g3d4b5e8bb8464cd 72.21.218.154:51341 172.100.100.185:443 5 2 98 246 - arn:aws:acm:us-east-2:671290407336:certificate/2a108f19-aded-46b0-8493-c63eb1ef4a99 - ECDHE-RSA-AES128-SHA tlsv12 - my-network-loadbalancer-c6e77e28c25b2234.elb.us-east-2.amazonaws.com h2 h2 "h2","http/1.1" 2020-04-01T08:51:20

Conditions requises pour le compartiment

Lorsque vous activez la journalisation des accès, vous devez spécifier un compartiment S3 pour les journaux d'accès. Le compartiment peut être détenu par un compte différent de celui possédant l'équilibreur de charge. Le compartiment doit répondre aux critères suivants :

Prérequis
  • Le compartiment doit se situer dans la même région que l'équilibreur de charge.

  • Le préfixe que vous spécifiez ne doit pas inclure AWSLogs. Nous ajoutons la partie du nom de fichier commençant par AWSLogs après le nom du compartiment et le préfixe que vous avez spécifié.

  • Le compartiment doit avoir une stratégie de compartiment qui octroie l'autorisation d'écrire les journaux d'accès dans votre compartiment. Les politiques de compartiment sont un ensemble d'JSONinstructions rédigées dans le langage de la politique d'accès pour définir les autorisations d'accès pour votre compartiment. Voici un exemple de politique .

    { "Version": "2012-10-17", "Id": "AWSLogDeliveryWrite", "Statement": [ { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::my-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": ["012345678912"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:012345678912:*"] } } }, { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-bucket/AWSLogs/account-ID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["012345678912"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:012345678912:*"] } } } ] }

Dans la stratégie précédente, pour aws:SourceAccount, spécifiez la liste des numéros de comptes pour lesquels les journaux sont transmis à ce compartiment. Pouraws:SourceArn, spécifiez la liste ARNs des ressources qui génèrent les journaux, dans le formulairearn:aws:logs:source-region:source-account-id:*.

Chiffrement

Vous pouvez activer le chiffrement côté serveur pour votre compartiment de journaux d'accès Amazon S3 de l'une des manières suivantes :

  • Clés gérées par Amazon S3 (-S3) SSE

  • AWS KMS clés stockées dans AWS Key Management Service (SSE-KMS) †

† Avec les journaux d'accès de Network Load Balancer, vous ne pouvez pas utiliser de clés AWS gérées, vous devez utiliser des clés gérées par le client.

Pour plus d'informations, consultez les sections Spécification du chiffrement Amazon S3 (SSE-S3) et Spécification du chiffrement côté serveur avec AWS KMS (SSE-KMS) dans le guide de l'utilisateur Amazon S3.

La stratégie de clé doit permettre au service de chiffrer et de déchiffrer les journaux. Voici un exemple de politique .

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" } ] }

Activer la journalisation des accès

Lorsque vous activez la journalisation des accès pour votre équilibreur de charge, vous devez spécifier le compartiment S3 dans lequel l'équilibreur de charge stockera les journaux. Assurez-vous de posséder ce compartiment et d'avoir configuré la stratégie de compartiment requise pour ce dernier. Pour de plus amples informations, veuillez consulter Conditions requises pour le compartiment.

Pour activer la journalisation des accès à l'aide de la console
  1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Load Balancers.

  3. Sélectionnez le nom de votre équilibreur de charge afin d'ouvrir sa page de détails.

  4. Dans l'onglet Attributes, choisissez Edit.

  5. Dans la page Modifier les attributs de l'équilibreur de charge, procédez comme suit :

    1. Pour Surveillance, activez Journaux d'accès.

    2. Choisissez Parcourir S3 et sélectionnez un compartiment à utiliser. Vous pouvez également saisir l'emplacement de votre compartiment S3, y compris tout préfixe.

    3. Sélectionnez Enregistrer les modifications.

Pour activer la journalisation des accès à l'aide du AWS CLI

Utilisez la modify-load-balancer-attributescommande.

Désactiver la journalisation des accès

Vous pouvez désactiver la journalisation des accès pour votre équilibreur de charge à tout moment. Une fois que vous avez désactivé la journalisation des accès, vos journaux d'accès restent dans votre compartiment S3 jusqu'à ce que vous les supprimiez. Pour plus d'informations, veuillez consulter Utilisation des compartiments dans le Guide de l'utilisateur Amazon Simple Storage Service.

Pour désactiver la journalisation des accès à l'aide de la console
  1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Load Balancers.

  3. Sélectionnez le nom de votre équilibreur de charge afin d'ouvrir sa page de détails.

  4. Dans l'onglet Attributes, choisissez Edit.

  5. Pour Surveillance, désactivez Journaux d'accès.

  6. Sélectionnez Enregistrer les modifications.

Pour désactiver la journalisation des accès à l'aide du AWS CLI

Utilisez la modify-load-balancer-attributescommande.

Traitement des fichiers journaux d'accès

Les fichiers journaux d'accès sont compressés. Si vous ouvrez les fichiers à l'aide de la console Amazon S3, ils sont décompressés et les informations s'affichent. Si vous téléchargez les fichiers, vous devez les décompresser pour afficher les informations.

Si la demande est importante sur votre site web, votre équilibreur de charge peut générer des fichiers journaux avec des gigaoctets de données. Il se peut que vous ne puissiez pas traiter une telle quantité de données à l'aide du line-by-line traitement. Vous devrez donc peut-être utiliser des outils d'analyse qui proposent des solutions de traitement en parallèle. Par exemple, vous pouvez utiliser les outils d'analyse suivants pour analyser et traiter des journaux d'accès :