View a markdown version of this page

Journaux d'accès pour Amazon VPC Lattice - Amazon VPC Lattice

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 pour Amazon VPC Lattice

Les journaux d'accès capturent des informations détaillées sur les services et les configurations de ressources de votre VPC Lattice. Vous pouvez utiliser ces journaux d'accès pour analyser les modèles de trafic et auditer tous les services du réseau. Pour les services VPC Lattice, nous publions VpcLatticeAccessLogs et pour les configurations de ressources, nous publions celles VpcLatticeResourceAccessLogs qui doivent être configurées séparément.

Les journaux d'accès sont facultatifs et sont désactivés par défaut. Après avoir activé les journaux d'accès, vous pouvez les désactiver à tout moment.

Tarification

Des frais s'appliquent lorsque les journaux d'accès sont publiés. Les journaux qui sont publiés AWS de manière native en votre nom sont appelés journaux distribués. Pour plus d'informations sur la tarification des journaux vendus, consultez Amazon CloudWatch Pricing, choisissez Logs et consultez la tarification sous Vended Logs.

Autorisations IAM requises pour activer les journaux d'accès

Pour activer les journaux d'accès et envoyer les journaux vers leurs destinations, vous devez définir les actions suivantes dans la politique associée à l'utilisateur, au groupe ou au rôle IAM que vous utilisez.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "ManageVPCLatticeAccessLogSetup", "Action": [ "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "vpc-lattice:CreateAccessLogSubscription", "vpc-lattice:GetAccessLogSubscription", "vpc-lattice:UpdateAccessLogSubscription", "vpc-lattice:DeleteAccessLogSubscription", "vpc-lattice:ListAccessLogSubscriptions" ], "Resource": [ "*" ] } ] }

Pour plus d'informations, veuillez consulter Ajout et suppression d'autorisations basées sur l'identité IAM dans le Guide de l'utilisateur Gestion des identités et des accès AWS .

Après avoir mis à jour la politique associée à l'utilisateur, au groupe ou au rôle IAM que vous utilisez, accédez àActiver les journaux d'accès.

Destinations du journal d'accès

Vous pouvez envoyer des journaux d'accès aux destinations suivantes.

CloudWatch Journaux Amazon
  • VPC Lattice fournit généralement des journaux aux CloudWatch journaux en 2 minutes. Cependant, gardez à l'esprit que le délai de livraison réel des journaux est calculé dans la mesure du possible et qu'il peut y avoir une latence supplémentaire.

  • Une politique de ressources est créée automatiquement et ajoutée au CloudWatch groupe de journaux si celui-ci ne dispose pas de certaines autorisations. Pour plus d'informations, consultez la section Journaux envoyés à CloudWatch Logs dans le guide de CloudWatch l'utilisateur Amazon.

  • Vous pouvez trouver les journaux d'accès qui sont envoyés dans la CloudWatch section Groupes de journaux de la CloudWatch console. Pour plus d'informations, voir Afficher les données de journal envoyées à CloudWatch Logs dans le Guide de CloudWatch l'utilisateur Amazon.

Amazon S3
  • VPC Lattice fournit généralement des journaux à Amazon S3 dans un délai de 6 minutes. Cependant, gardez à l'esprit que le délai de livraison réel des journaux est calculé dans la mesure du possible et qu'il peut y avoir une latence supplémentaire.

  • Une politique de compartiment sera créée automatiquement et ajoutée à votre compartiment Amazon S3 si celui-ci ne dispose pas de certaines autorisations. Pour plus d'informations, consultez la section Journaux envoyés à Amazon S3 dans le guide de CloudWatch l'utilisateur Amazon.

  • Les journaux d'accès envoyés à Amazon S3 utilisent la convention de dénomination suivante :

    [bucket]/[prefix]/AWSLogs/[accountId]/VpcLattice/AccessLogs/[region]/[YYYY/MM/DD]/[resource-id]/[accountId]_VpcLatticeAccessLogs_[region]_[resource-id]_YYYYMMDDTHHmmZ_[hash].json.gz
  • VpcLatticeResourceAccessLogs qui sont envoyés à Amazon S3 utilisent la convention de dénomination suivante :

    [bucket]/[prefix]/AWSLogs/[accountId]/VpcLattice/ResourceAccessLogs/[region]/[YYYY/MM/DD]/[resource-id]/[accountId]_VpcLatticeResourceAccessLogs_[region]_[resource-id]_YYYYMMDDTHHmmZ_[hash].json.gz
Amazon Data Firehose
  • VPC Lattice fournit généralement des journaux à Firehose en 2 minutes. Cependant, gardez à l'esprit que le délai de livraison réel des journaux est calculé dans la mesure du possible et qu'il peut y avoir une latence supplémentaire.

  • Un rôle lié à un service est automatiquement créé pour accorder à VPC Lattice l'autorisation d'envoyer des journaux d'accès à. Amazon Data Firehose Pour que la création automatique de rôle réussisse, les utilisateurs doivent avoir l’autorisation pour l’action iam:CreateServiceLinkedRole. Pour plus d'informations, consultez la section Journaux envoyés à Amazon Data Firehose dans le guide de CloudWatch l'utilisateur Amazon.

  • Pour plus d'informations sur l'affichage des journaux envoyés à Amazon Data Firehose, consultez la section Surveillance des flux de données Amazon Kinesis dans le Guide du Amazon Data Firehose développeur.

Activer les journaux d'accès

Suivez la procédure suivante pour configurer les journaux d'accès afin de capturer et de transmettre les journaux d'accès à la destination que vous choisissez.

Activer les journaux d'accès à l'aide de la console

Vous pouvez activer les journaux d'accès pour un réseau de services, un service ou une configuration de ressources lors de la création. Vous pouvez également activer les journaux d'accès après avoir créé un réseau de service, un service ou une configuration de ressources, comme décrit dans la procédure suivante.

Pour créer un service de base à l'aide de la console
  1. Ouvrez la console Amazon VPC à l’adresse https://console.aws.amazon.com/vpc/.

  2. Sélectionnez le réseau de service, le service ou la configuration des ressources.

  3. Choisissez Actions, puis Modifier les paramètres du journal.

  4. Activez l'interrupteur à bascule des journaux d'accès.

  5. Ajoutez une destination de livraison pour vos journaux d'accès comme suit :

    • Sélectionnez Groupe de CloudWatch journaux et choisissez un groupe de journaux. Pour créer un groupe de journaux, choisissez Créer un groupe de journaux dans CloudWatch.

    • Sélectionnez le compartiment S3 et entrez le chemin du compartiment S3, y compris tout préfixe. Pour effectuer une recherche dans vos compartiments S3, choisissez Parcourir S3.

    • Sélectionnez le flux de diffusion Kinesis Data Firehose et choisissez un flux de diffusion. Pour créer un flux de diffusion, choisissez Créer un flux de diffusion dans Kinesis.

  6. Sélectionnez Enregistrer les modifications.

Activez les journaux d'accès à l'aide du AWS CLI

Utilisez la commande CLI create-access-log-subscription pour activer les journaux d'accès pour les réseaux de services ou les services.

Suivi des demandes

VPC Lattice prend en charge le suivi des demandes et la corrélation entre les clients, les cibles et les journaux à des fins d'observabilité et de débogage avec l'en-tête x-amzn-requestid. Cet en-tête peut être défini et envoyé par le client ou généré par VPC Lattice. Il est envoyé aux cibles et également disponible dans les journaux d'accès.

Comportement par défaut
  • VPC Lattice génère automatiquement cet en-tête pour chaque demande.

  • La valeur est un identifiant généré de manière aléatoire (UUID-style par défaut).

  • L'identifiant généré est le suivant :

    • Propagé vers des cibles en aval.

    • Renvoyé dans les en-têtes de réponse aux clients.

    • Journaux d'accès connectés

Exemple (réponse par défaut)

Voici un exemple de réponse envoyée au client avec le comportement par défaut de VPC Lattice générant une valeur aléatoire pour la valeur de l'en-tête x-amzn-requestid.

{ "HTTP/1.1 200 OK x-amzn-requestid: a9f2c7a1-6b4f-4c79-9e87-ff5a1234a001" }
Le client définit la valeur
  • Les clients peuvent éventuellement définir cet en-tête sur les demandes entrantes pour remplacer la valeur générée automatiquement.

  • Considérations

    • La valeur d'en-tête n'a pas besoin de suivre un format UUID.

    • Si la valeur de l'en-tête dépasse 512 octets, VPC Lattice la tronquera à 512.

  • En cas de remplacement réussi, la valeur d'en-tête fournie sera :

    • Apparaître dans les en-têtes de réponse

    • Être propagé aux cibles

    • Apparaissent dans les journaux d'accès et les métriques

Exemple (annuler la demande du client)

Voici un exemple de demande envoyée par le client avec une valeur d'en-tête.

{ "GET /my-service/endpoint HTTP/1.1 Host: my-api.example.com x-amzn-requestid: trace-request-foobar" }
Exemple (réponse de remplacement par défaut)

Voici un exemple de réponse envoyée au client avec la valeur remplacée.

{ "HTTP/1.1 200 OK x-amzn-requestid: trace-request-foobar" }

Contenu du journal d'accès

Le tableau suivant décrit les champs d'une entrée de journal d'accès.

Champ Description Format
callerPrincipalTags

Le PrincipalTags dans la demande.

JSON

hostHeader

En-tête d'autorité de la demande.

chaîne

sslCipher

Le nom OpenSSL de l'ensemble de chiffrements utilisés pour établir la connexion TLS du client.

chaîne

serviceNetworkArn

L'ARN du réseau de service.

arn:aws:vpc-lattice : ::servicenetwork/ region account id

resolvedUser

L'ARN de l'utilisateur lorsque l'authentification est activée et que l'authentification est terminée.

null | ARN | « Anonyme » | « Inconnu »

authDeniedReason

La raison pour laquelle l'accès est refusé lorsque l'authentification est activée.

null | « Service » | « Réseau » | « Identité »

requestMethod

En-tête de méthode de la demande.

chaîne

targetGroupArn

Le groupe d'hôtes cible auquel appartient l'hôte cible.

chaîne

tlsVersion

La version TLS.

TLSv x

userAgent

L'en-tête de l'agent utilisateur.

chaîne

serverNameIndication

[HTTPS uniquement] Valeur définie sur le socket de connexion SSL pour l'indication du nom du serveur (SNI).

chaîne

destinationVpcId

L'ID du VPC de destination.

pvc- xxxxxxxx

sourceIpPort

Adresse IP et:port de la source.

ip:port

targetIpPort

Adresse IP et port de la cible.

ip:port

serviceArn

L'ARN du service.

arn:aws:vpc-lattice : ::service/ region account id

sourceVpcId

L'ID du VPC source.

pvc- xxxxxxxx

requestPath

Le chemin d'accès de la demande.

LatticePath?:path

startTime

Heure de début de la demande.

YYYY- MM - DD T HH MM : SS Z

protocol

Protocole. Actuellement, HTTP/1.1 soit HTTP/2.

chaîne

responseCode

Le code de réponse HTTP. Seul le code de réponse pour les en-têtes finaux est enregistré. Pour de plus amples informations, veuillez consulter Résoudre les problèmes liés aux journaux d'accès.

entier

bytesReceived

Les octets du corps et de l'en-tête reçus.

entier

bytesSent

Les octets du corps et de l'en-tête envoyés.

entier

duration

Durée totale en millisecondes de la demande entre l'heure de début et le dernier octet de sortie.

entier

requestToTargetDuration

Durée totale en millisecondes de la demande entre l'heure de début et le dernier octet envoyé à la cible.

entier

responseFromTargetDuration

Durée totale en millisecondes de la demande entre le premier octet lu par l'hôte cible et le dernier octet envoyé au client.

entier

grpcResponseCode

Le code de réponse gRPC. Pour plus d'informations, consultez la section Codes d'état et leur utilisation dans gRPC. Ce champ est enregistré uniquement si le service prend en charge gRPC.

entier

requestId

Il s'agit d'un identifiant unique automatiquement inclus dans les réponses en tant que valeur de l'en-tête x-amzn-requestid. Il permet la corrélation des requêtes entre les clients, les cibles et les journaux à des fins d'observabilité et de débogage.

chaîne

callerPrincipal

Le mandant authentifié.

chaîne

callerX509SubjectCN

Le nom du sujet (CN).

chaîne

callerX509IssuerOU

L'émetteur (OU).

chaîne

callerX509SANNameCN

L'alternative de l'émetteur (Name/CN).

chaîne

callerX509SANDNS

Le nom alternatif du sujet (DNS).

chaîne

callerX509SANURI

Le nom alternatif du sujet (URI).

chaîne

sourceVpcArn

L'ARN du VPC d'où provient la demande.

arn:aws:ec2 : ::vpc/ region account id

failureReason

Indique la raison pour laquelle une demande a échoué. Les valeurs possibles sont les suivantes :

  • TargetConnectionError- La demande n'a pas pu se connecter à une cible du groupe cible.

  • TargetProtocolError- La cible n'a pas répondu avec des données valides. Cela peut indiquer que la cible possède des enregistrements TLS non valides ou qu'elle a utilisé un protocole de groupe cible non valide.

  • TargetDataTimeout- Le délai d'inactivité a été atteint.

  • TargetConnectionClosed- La cible a fermé la connexion avant de terminer la réponse.

  • ClientConnectionClosed- Le client a fermé la connexion avant de recevoir la réponse complète.

  • ClientRateLimited- Le client a dépassé la limite de connexion et VPC Lattice a limité le débit.

  • ClientAccessDenied- VPC Lattice a refusé l'accès à la ressource. Utilisez le authDeniedReason pour plus d'informations sur les raisons pour lesquelles VPC Lattice a refusé l'accès.

  • ClientProtocolError- Le client a envoyé des données qui n'ont pas été comprises. Cela peut indiquer que le client a utilisé des enregistrements TLS non valides ou un protocole non valide.

  • ConnectionDurationExceeded- La connexion a atteint la durée maximale de connexion.

  • InternalError- Une erreur interne s'est produite lors du traitement de la demande.

chaîne
Exemple

Voici un exemple d'entrée de journal.

{ "callerPrincipalTags" : "{ "TagA": "ValA", "TagB": "ValB", ... }", "hostHeader": "example.com", "sslCipher": "-", "serviceNetworkArn": "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/svn-1a2b3c4d", "resolvedUser": "Unknown", "authDeniedReason": "null", "requestMethod": "GET", "targetGroupArn": "arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1a2b3c4d", "tlsVersion": "-", "userAgent": "-", "serverNameIndication": "-", "destinationVpcId": "vpc-0abcdef1234567890", "sourceIpPort": "178.0.181.150:80", "targetIpPort": "131.31.44.176:80", "serviceArn": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-1a2b3c4d", "sourceVpcId": "vpc-0abcdef1234567890", "requestPath": "/billing", "startTime": "2023-07-28T20:48:45Z", "protocol": "HTTP/1.1", "responseCode": 200, "bytesReceived": 42, "bytesSent": 42, "duration": 375, "requestToTargetDuration": 1, "responseFromTargetDuration": 1, "grpcResponseCode": 1, "requestId": "a9f2c7a1-6b4f-4c79-9e87-ff5a1234a001" }

Contenu du journal d'accès aux ressources

Le tableau suivant décrit les champs d'une entrée de journal d'accès aux ressources.

Champ Description Format
serviceNetworkArn

L'ARN du réseau de service.

arn : partition vpc-lattice : ::servicenetwork/ region account id

serviceNetworkResourceAssociationId

L'ID de ressource du réseau de service.

snra-xxx

vpcEndpointId

L'ID de point de terminaison qui a été utilisé pour accéder à la ressource.

chaîne

sourceVpcArn

L'ARN du VPC source ou le VPC à partir duquel la connexion a été initiée.

chaîne

resourceConfigurationArn

L'ARN de la configuration de ressource à laquelle vous avez accédé.

chaîne

protocol

Protocole utilisé pour communiquer avec la configuration des ressources. Actuellement, seul le protocole TCP est pris en charge.

chaîne

sourceIpPort

Adresse IP et port de la source qui a initié la connexion.

ip:port

destinationIpPort

Adresse IP et port par lesquels la connexion a été initiée. Ce sera l'adresse IP de SN-E/SN-A.

ip:port

gatewayIpPort

Adresse IP et port utilisés par la passerelle de ressources pour accéder à la ressource.

ip:port

resourceIpPort

Adresse IP et port de la ressource.

ip:port

Exemple

Voici un exemple d'entrée de journal.

{ "eventTimestamp": "2024-12-02T10:10:10.123Z", "serviceNetworkArn": "arn:aws:vpc-lattice:us-west-2:1234567890:servicenetwork/sn-1a2b3c4d", "serviceNetworkResourceAssociationId": "snra-1a2b3c4d", "vpcEndpointId": "vpce-01a2b3c4d", "sourceVpcArn": "arn:aws:ec2:us-west-2:1234567890:vpc/vpc-01a2b3c4d", "resourceConfigurationArn": "arn:aws:vpc-lattice:us-west-2:0987654321:resourceconfiguration/rcfg-01a2b3c4d", "protocol": "tcp", "sourceIpPort": "172.31.23.56:44076", "destinationIpPort": "172.31.31.226:80", "gatewayIpPort": "10.0.28.57:49288", "resourceIpPort": "10.0.18.190:80" }

Résoudre les problèmes liés aux journaux d'accès

Cette section contient une explication des codes d'erreur HTTP que vous pouvez voir dans les journaux d'accès.

Code d’erreur Causes possibles :

HTTP 400 : Demande erronée

  • Le client a envoyé une demande mal formée qui ne répond pas à la spécification HTTP.

  • L'en-tête de demande a dépassé 60 Ko pour l'ensemble de l'en-tête de demande ou plus de 100 en-têtes.

  • Le client a fermé la connexion avant d'envoyer le corps complet de la demande.

HTTP 403 : Accès interdit

L'authentification a été configurée pour le service, mais la demande entrante n'est ni authentifiée ni autorisée.

HTTP 404 : Service inexistant

Vous essayez de vous connecter à un service qui n'existe pas ou qui n'est pas enregistré sur le réseau de service approprié.

HTTP 500 : Erreur de serveur interne

VPC Lattice a rencontré une erreur, telle qu'un échec de connexion aux cibles.

HTTP 502 : Passerelle erronée

VPC Lattice a rencontré une erreur.