Comment trouver l’adresse IP externe associée à chacun des téléchargements vers mon compartiment Amazon S3 ?

Lecture de 3 minute(s)
0

Lorsque mon équipe ou un tiers télécharge des fichiers dans mon compartiment Amazon Simple Storage Service (Amazon S3), je souhaite connaître l’adresse IP externe qu’ils ont utilisée. Ma stratégie de compartiment peut autoriser l’accès à certaines adresses IP spécifiques uniquement. Comment trouver l’adresse IP externe utilisée avec chaque téléchargement ?

Brève description

Pour trouver les adresses IP correspondant aux demandes de niveau objet pour Amazon S3 (téléchargements et chargements), vous devez d’abord activer les méthodes de journalisation suivantes :

  • La journalisation d’accès au serveur Amazon S3 permet de conserver tous les événements de niveau compartiment et objet. Ces journaux utilisent un format équivalent aux journaux du serveur web Apache.
  • Événements de données AWS CloudTrail capture les événements de niveau de compartiment d’au moins 90 jours (par exemple, PutBucketPolicy et DeleteBucketPolicy), et vous pouvez activer la journalisation de niveau objet. Ces journaux utilisent un format JSON.

Solution

Important : une bonne pratique consiste à créer un nouveau compartiment réservé aux journaux et distinct du compartiment que vous surveillez. Un compartiment séparé pour les journaux évite d’avoir des journaux sur les journaux.

Activez la journalisation de l'accès au serveur Amazon S3

Pour activer la journalisation des accès au serveur Amazon S3, voir Activation de la journalisation des accès au serveur Amazon S3.

Remarque : Amazon S3 peut prendre quelques heures pour commencer à créer des journaux.

Une fois la journalisation des accès au serveur activée, consultez les journaux pour trouver les adresses IP utilisées avec chaque téléchargement sur le compartiment. Par exemple, dans le journal qui suit, l’adresse IP correspondant à la demande PutObject est affichée après l’horodatage [07/Dec/2018:07:03:01 +0000]:

82a7646e61f102aa3e17exampleef08969060fa39927b8232b5a4166d279dcc7 exampleawsbucket [07/Dec/2018:07:03:01 +0000] <b>205.251.233.256</b> arn:aws:sts::111111111111:assumed-role/admin/myuser 07F2D340F08E7171 REST.PUT.OBJECT my_object.jpg "PUT /exampleawsbucket/my_object.jpg?X-Amz-Security-Token=AgoGb3JpZ2luEF.......woa2o4AU%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20181207T070301Z&X-Amz-SignedHeaders=content-md5%3Bcontent-type%3Bhost%3Bx-amz-acl%3Bx-amz-storage-class&X-Amz-Expires=300&X-Amz-Credential=ASIA5BQEXAMPLEGB3S7U%2F20181207%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX HTTP/1.1" 200 - - 1347 29 11 "https://s3.console.aws.amazon.com/s3/buckets/exampleawsbucket/?region=us-west-2&tab=overview" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36" -

Activation de la journalisation au niveau des objets avec les événements de données AWS CloudTrail

Pour activer les événements de données AWS CloudTrail, consultez Activation de la journalisation des événements CloudTrail pour les compartiments et les objets S3.

Remarque : AWS CloudTrail peut prendre quelques heures pour commencer à créer des journaux.

Une fois la journalisation de niveau objet avec les événements de données activée, consultez les journaux pour trouver les adresses IP utilisées avec chaque téléchargement vers votre compartiment. Par exemple, dans le journal qui suit, l’adresse IP répertoriée pour une demande PutObject est « sourceIPAddress »:

{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAI63YEXAMPLEAP4M5O:myuser",
        "arn": "arn:aws:sts::111111111111:assumed-role/admin/myuser",
        "accountId": "111111111111",
        "accessKeyId": "ASIA5BQEXAMPLEGB3S7U",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAI63YEXAMPLEAP4M5O",
                "arn": "arn:aws:iam::111111111111:role/admin",
                "accountId": "111111111111",
                "userName": "admin"
            },
            "attributes": {
                "creationDate": "2018-12-07T06:43:45Z",
                "mfaAuthenticated": "false"
            }
        }
    },
    "eventTime": "2018-12-07T07:23:19Z",
    "eventSource": "s3.amazonaws.com",
    "eventName": "PutObject",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "205.251.233.256",
    "userAgent": "[Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36]",
    "requestParameters": {
        "X-Amz-Date": "20181207T072319Z",
        "bucketName": "exampleawsbucket",
        "X-Amz-Algorithm": "AWS4-HMAC-SHA256",
        "x-amz-acl": "private",
        "X-Amz-SignedHeaders": "content-md5;content-type;host;x-amz-acl;x-amz-storage-class",
        "X-Amz-Expires": "300",
        "key": "my_object.jpg",
        "x-amz-storage-class": "STANDARD"
    },
    "responseElements": null,
    "additionalEventData": {
        "x-amz-id-2": "8KQRGXIqWzLGiCV67PY8CHyh81yPjaVu7nkq3gK4ZuMYXo1THZhmbu5J/ck+Di+VHIixb18hRoU="
    },
    "requestID": "9B9842C4FFAAA3E8",
    "eventID": "af0615fa-1d25-4e04-b280-b1e73b558aaa",
    "readOnly": false,
    "resources": [
        {
            "type": "AWS::S3::Object",
            "ARN": "arn:aws:s3:::exampleawsbucket/my_object.jpg"
        },
        {
            "accountId": "111111111111",
            "type": "AWS::S3::Bucket",
            "ARN": "arn:aws:s3:::exampleawsbucket"
        }
    ],
    "eventType": "AwsApiCall",
    "recipientAccountId": "111111111111"
},

Informations connexes

Création et configuration d’un compartiment S3

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an