Comment puis-je trouver l'adresse IP externe associée à chaque chargement vers mon compartiment Amazon S3 ?

Date de la dernière mise à jour : 21/01/2019

Lorsque mon équipe ou un tiers 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 uniquement pour des adresses IP spécifiques. Comment puis-je trouver l'adresse IP externe utilisée lors de chaque chargement ? 

Brève description

Pour trouver les adresses IP des demandes au niveau des objets vers Amazon S3 (chargements et téléchargements), vous devez d'abord activer l'une des méthodes de journalisation suivantes :

  • La journalisation des accès au serveur Amazon S3 capture tous les événements au niveau du compartiment et de l'objet. Ces journaux utilisent un format similaire à celui des journaux du serveur Web Apache.
  • Les événements de données AWS CloudTrail capturent les 90 derniers jours d'événements au niveau du compartiment (par exemple, PutBucketPolicy et DeleteBucketPolicy), et vous pouvez activer la journalisation au niveau des objets. Ces journaux utilisent un format JSON.

Solution

Important : une bonne pratique consiste à créer un compartiment spécifiquement pour les journaux, distinct du compartiment que vous souhaitez surveiller. Un compartiment distinct pour les journaux évite le risque d'obtenir des journaux sur les journaux.

Activez la journalisation des accès au serveur Amazon S3

Pour activer la journalisation des accès au serveur Amazon S3, consultez Comment activer la journalisation des accès au serveur pour un compartiment S3 ?

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

Une fois que vous avez activé la journalisation des accès au serveur, passez en revue les journaux pour trouver les adresses IP utilisées avec chaque chargement dans votre compartiment. Par exemple, dans le journal suivant d'une demande PutObject, l'adresse IP est affichée avec l'horodatage [07/Dec/2018:07:03:01+0000]:

82a7646e61f102aa3e17exampleef08969060fa39927b8232b5a4166d279dcc7 exampleawsbucket [07/Dec/2018:07:03:01 +0000] 205.251.233.256 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" -

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

Pour activer les journaux AWS CloudTrail pour les événements de données, consultez Comment activer la journalisation au niveau des objets pour un compartiment S3 avec des événements de données AWS CloudTrail ?

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

Une fois que vous avez activé la journalisation des événements de données au niveau des objets, passez en revue les journaux pour trouver les adresses IP utilisées avec chaque chargement dans votre compartiment. Par exemple, dans le journal suivant d'une demande PutObject, l'adresse IP est répertoriée comme « 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"
},

Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?