OUTSCALE Monitoring Services (OMS) vous permet de tracer et de surveiller vos requêtes API OUTSCALE.

OMS enregistre les requêtes et réponses API exécutées depuis votre compte. Chaque log contient des informations telles que l'adresse IP depuis laquelle l'événement a été exécuté, les ressources affectées par l'événement ou encore l'heure à laquelle l'événement a eu lieu.

Récupérer et analyser ces logs peut s'inscrire dans le cadre d'une stratégie de détection d'anomalies et d'utilisations malveillantes de votre compte.

Les sujets suivants sont abordés : 

Périmètre

OMS enregistre les requêtes exécutées avec l'API OUTSCALE.

En revanche, OMS n'enregistre pas :

  • Les requêtes exécutées avec OUTSCALE Object Storage (OOS), Object Storage Unit (OSU), et les API AWS-compliant.
  • Les requêtes non autorisées (code d'état de réponse 401) et les requêtes invalides (code d'état de réponse 404).


Méthode ReadApiLogs

Utilisation basique

Vous pouvez récupérer vos logs avec la méthode ReadApiLogs. Un log est disponible jusqu'à 30 jours après que l'événement correspondant a eu lieu.

Exemple de requête
$ osc-cli api ReadApiLogs
Exemple de résultat (avec un seul log)
{
    "Logs": [ {
        "AccountId": "12345678",
        "CallDuration": 120,
        "QueryAccessKey": "ABCDEFGHIJKLMNOPQRST",
        "QueryApiName": "oapi",
        "QueryApiVersion": "1.10",
        "QueryCallName": "CreateVolume",
        "QueryDate": "2021-04-21T13:45:14.892066Z",
        "QueryHeaderRaw": "Host: api.eu-west-2.outscale.com\\nAccept: */*\\nConnection: close\\nUser-agent: osc_sdk 1.5\\nX-Osc-Date: 20210421T134514Z\\nContent-Type: application/json\\nx-osc-target: OutscaleService.CreateVolume\\nAuthorization: OSC4-HMAC-SHA256 Credential=ABCDEFGHIJKLMNOPQRST/20210421/eu-west-2/api/osc4_request, SignedHeaders=host;x-osc-date;x-osc-target, Signature=b3bbc12fc0ca1a6f9f34145672b9bfcdc3b3bc99992cbd4bf73ca2d0f988ce72\\nContent-Length: 69\\nAccept-Encoding: gzip, deflate\\nX-Forwarded-For: 11.11.11.11",
        "QueryHeaderSize": 501,
        "QueryIpAddress": "11.11.11.11",
        "QueryPayloadRaw": "{\\\"Size\\\": 10, \\\"SubregionName\\\": \\\"eu-west-2a\\\", \\\"VolumeType\\\": \\\"standard\\\"}",
        "QueryPayloadSize": 79,
        "QueryUserAgent": "osc_sdk 1.5",
        "RequestId": "62b859af-079d-4d0b-bfa7-b060122044a7",
        "ResponseSize": 220,
        "ResponseStatusCode": 200
    } ]
}
  • Si un utilisateur EIM a recours à la méthode ReadApiLogs, tous les logs du compte sont renvoyés et pas uniquement les logs de l'utilisateur EIM.
  • L'élément QueryPayLoadRaw est actuellement renvoyé avec des caractères d'échappement en trop. Cela sera modifié dans une version ultérieure d'OMS.


Comportement des filtres

La quantité de logs renvoyés peut être importante. C'est pourquoi vous pouvez utiliser des filtres pour affiner votre requête et limiter la taille de la réponse.

Exemple de requête
$ osc-cli api ReadApiLogs --Filters '{ \
    "ResponseStatusCode": [500, 501], \
    "QueryIpAddress": ["255.255.255.254", "255.255.255.255"] \
}'

Si vous utilisez plusieurs filtres simultanément, ces filtres se combinent selon la logique ET.

Si vous spécifiez plusieurs valeurs dans un même filtre, ces valeurs se combinent selon la logique OU.

La logique de l'exemple ci-dessus est donc la suivante :

(ResponseStatusCode = 500 OU ResponseStatusCode = 501) ET (QueryIpAddress = 255.255.255.254 OU QueryIpAddress = 255.255.255.255)


Éléments de logs

Vous pouvez utiliser le paramètre With pour choisir les éléments de réponse à afficher pour chaque log.

Exemple de requête
$ osc-cli api ReadApiLogs --With '{"QueryIpAddress": True}'
Exemple de résultat (avec un seul log)
{
    "Logs": [ {
        "AccountId": "12345678",
        "QueryIpAddress": "11.11.11.11",
        "RequestId": "62b859af-079d-4d0b-bfa7-b060122044a7"
    } ]
}

Si le paramètre With n'est pas spécifié, tous les éléments de réponse disponibles sont affichés, comme c'est le cas dans le premier exemple de cette page.

Si le paramètre With est spécifié, les éléments AccountId et RequestId sont par défaut inclus dans la réponse sauf si vous les spécifiez comme faux.


Ordre de traitement

Une requête ReadApiLogs est traitée comme suit :

  1. Les filtres sont appliqués afin de récupérer uniquement les événements correspondant à votre requête. Si aucun événement ne correspond aux filtres, une liste vide est renvoyée.
  2. Les événements récupérés sont triés par date, du plus ancien au plus récent.
  3. Les paramètres NextPageToken et ResultPerPage sont appliqués afin de paginer les résultats.
  4. Le paramètre With est appliqué afin de déterminer le contenu à afficher pour chaque log renvoyé.


Méthode API correspondante


AWS™ et Amazon Web Services™ sont des marques de commerce d'Amazon Technologies, Inc. ou de ses affiliées aux États-Unis et/ou dans les autres pays.