

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.

# Identifier les demandes présignées
<a name="identifying-requests"></a>

## Identification des demandes utilisant une URL présignée
<a name="requests"></a>

Amazon S3 fournit [deux mécanismes intégrés pour surveiller l'utilisation au niveau de la demande : les journaux d'](https://docs.aws.amazon.com/AmazonS3/latest/userguide/logging-with-S3.html)accès au serveur Amazon S3 et les événements AWS CloudTrail liés aux données. Les deux mécanismes peuvent identifier l'utilisation des URL présignées. 

Pour filtrer les journaux en fonction de l'utilisation des URL présignées, vous pouvez utiliser le type d'authentification. Pour les journaux d'accès au serveur, examinez le [champ Type d'authentification](https://docs.aws.amazon.com/AmazonS3/latest/userguide/LogFormat.html#:~:text=Authentication%20Type), généralement nommé [authtype](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-s3-access-logs-to-identify-requests.html#:~:text=authtype) lorsqu'il est défini dans une table Amazon Athena. Pour CloudTrail, examinez [AuthenticationMethod](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cloudtrail-logging-understanding-s3-entries.html#:~:text=AuthenticationMethod)`additionalEventData`sur le terrain. Dans les deux cas, la valeur du champ pour les demandes utilisant des URL présignées est`QueryString`, alors que c'`AuthHeader`est la valeur pour la plupart des autres demandes.

`QueryString`l'utilisation n'est pas toujours associée aux URL présignées. Pour limiter votre recherche à l'utilisation d'URL présignées uniquement, recherchez les demandes contenant le paramètre `X-Amz-Expires` de chaîne de requête. Pour les journaux d'accès au serveur, examinez [Request-URI](https://docs.aws.amazon.com/AmazonS3/latest/userguide/LogFormat.html#:~:text=Request%2DURI) et recherchez les demandes dont la chaîne de requête contient un `X-Amz-Expires` paramètre. Pour CloudTrail, examinez l'`requestParameters`élément pour un `X-Amz-Expires` élément.

```
{"Records": [{…, "requestParameters": {…, "X-Amz-Expires": "300"}}, …]}
```

La requête Athena suivante applique ce filtre :

```
SELECT * FROM {athena-table} WHERE
  authtype = 'QueryString' AND 
  request_uri LIKE '%X-Amz-Expires=%';
```

Pour AWS CloudTrail Lake, la requête suivante applique ce filtre :

```
SELECT * FROM {data-store-event-id} WHERE 
  additionalEventData['AuthenticationMethod'] = 'QueryString' AND 
  requestParameters['X-Amz-Expires'] IS NOT NULL
```

## Identifier d'autres types de demandes présignées
<a name="other"></a>

La requête POST possède également un type d'authentification unique`HtmlForm`, dans les journaux d'accès au serveur Amazon S3 et CloudTrail. Ce type d'authentification étant moins courant, il est possible que vous ne trouviez pas ces demandes dans votre environnement.

La requête Athena suivante applique le filtre pour : `HtmlForm`

```
SELECT * FROM {athena-table} WHERE 
  authtype = 'HtmlForm';
```

Pour CloudTrail Lake, la requête suivante applique le filtre :

```
SELECT * FROM {data-store-event-id} WHERE 
  additionalEventData['AuthenticationMethod'] = 'HtmlForm'
```

## Identification des modèles de demandes
<a name="patterns"></a>

Vous pouvez trouver des demandes présignées en utilisant les techniques décrites dans la section précédente. Toutefois, pour rendre ces données utiles, vous devez trouver des modèles. Les `TOP 10` résultats simples de votre requête peuvent fournir un aperçu, mais si cela ne suffit pas, utilisez les options de regroupement du tableau suivant.


| **Option de regroupement** | **Journaux d'accès au serveur** | **CloudTraillac** | **Description** | 
| --- | --- | --- | --- | 
| **Agent utilisateur** | `GROUP BY useragent` | `GROUP BY userAgent` | Cette option de regroupement vous permet de trouver la source et le but des demandes. L'agent utilisateur est fourni par l'utilisateur et n'est pas fiable en tant que mécanisme d'authentification ou d'autorisation. Cependant, cela peut révéler beaucoup de choses si vous recherchez des modèles, car la plupart des clients utilisent une chaîne unique qui est au moins partiellement lisible par l'homme. | 
| **Demandeur** | `GROUP BY requester` | `GROUP BY userIdentity['arn']` | Cette option de regroupement permet de trouver les principaux IAM qui ont signé les demandes. Si votre objectif est de bloquer ces demandes ou de créer une exception pour les demandes existantes, ces requêtes fournissent suffisamment d'informations à cette fin. Lorsque vous utilisez des rôles conformément aux meilleures pratiques IAM, le propriétaire du rôle est clairement identifié, et vous pouvez utiliser ces informations pour en savoir plus. | 
| **Adresse IP source** | `GROUP BY remoteip` | `GROUP BY sourceIPAddress` | Cette option est groupée en fonction du dernier saut de traduction réseau avant d'atteindre Amazon S3.[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/presigned-url-best-practices/identifying-requests.html)[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/presigned-url-best-practices/identifying-requests.html)[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/presigned-url-best-practices/identifying-requests.html)[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/presigned-url-best-practices/identifying-requests.html)[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/presigned-url-best-practices/identifying-requests.html)[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/presigned-url-best-practices/identifying-requests.html)<br />Ces données sont utiles si votre objectif est d'imposer des contrôles réseau. Vous devrez peut-être combiner cette option avec des données telles que `endpoint` (pour les journaux d'accès au serveur) ou `vpcEndpointId` (pour CloudTrail Lake) pour clarifier la source, car différents réseaux peuvent dupliquer des adresses IP privées. | 
| **Nom du compartiment S3** | `GROUP BY bucket_name` | `GROUP BY requestParameters['bucketName']` | Cette option de regroupement permet de trouver les compartiments ayant reçu des demandes. Cela vous permet d'identifier le besoin d'exceptions. | 