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.
Configuration de la journalisation pour HTTP APIs dans API Gateway
Vous pouvez activer la journalisation pour écrire des CloudWatch journaux dans Logs. Vous pouvez utiliser des variables de journalisation pour personnaliser le contenu de vos journaux.
Pour améliorer votre niveau de sécurité, nous vous recommandons d'écrire des journaux dans CloudWatch Logs pour toutes les étapes de votre API HTTP. Vous devrez peut-être le faire pour vous conformer aux différents cadres de conformité. Pour plus d'informations, consultez la section Contrôles Amazon API Gateway dans le guide de AWS Security Hub l'utilisateur.
Pour activer la journalisation pour une API HTTP, vous devez effectuer les opérations suivantes.
Vérifiez que votre utilisateur dispose des autorisations nécessaires pour activer la journalisation.
Créez un groupe de CloudWatch journaux Logs.
Indiquez l'ARN du groupe de CloudWatch journaux Logs pour une étape de votre API.
Autorisations pour activer la journalisation
Pour activer la journalisation pour une API, votre utilisateur doit disposer des autorisations suivantes.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:FilterLogEvents" ], "Resource": "arn:aws:logs:
us-east-2
:123456789012
:log-group:*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:PutResourcePolicy", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:CreateLogGroup", "logs:DescribeResourcePolicies", "logs:GetLogDelivery", "logs:ListLogDeliveries" ], "Resource": "*" } ] }
Création d'un groupe de journaux et activation de la journalisation pour HTTP APIs
Vous pouvez créer un groupe de journaux et activer la journalisation des accès à l'aide du AWS Management Console ou du AWS CLI.
Exemples de format de journal
Des exemples de format de journal utilisé couramment sont disponibles dans la console API Gateway et répertoriés ci-dessous.
-
CLF
(Format de journal commun): $context.identity.sourceIp - - [$context.requestTime] "$context.httpMethod $context.routeKey $context.protocol" $context.status $context.responseLength $context.requestId $context.extendedRequestId
-
JSON
:{ "requestId":"$context.requestId", "ip": "$context.identity.sourceIp", "requestTime":"$context.requestTime", "httpMethod":"$context.httpMethod","routeKey":"$context.routeKey", "status":"$context.status","protocol":"$context.protocol", "responseLength":"$context.responseLength", "extendedRequestId": "$context.extendedRequestId" }
-
XML
:<request id="$context.requestId"> <ip>$context.identity.sourceIp</ip> <requestTime>$context.requestTime</requestTime> <httpMethod>$context.httpMethod</httpMethod> <routeKey>$context.routeKey</routeKey> <status>$context.status</status> <protocol>$context.protocol</protocol> <responseLength>$context.responseLength</responseLength> <extendedRequestId>$context.extendedRequestId</extendedRequestId> </request>
-
CSV
(valeurs séparées par des virgules) :$context.identity.sourceIp,$context.requestTime,$context.httpMethod,$context.routeKey,$context.protocol,$context.status,$context.responseLength,$context.requestId,$context.extendedRequestId