Como posso encontrar o endereço IP externo associado a cada upload para meu bucket do Amazon S3?

3 minuto de leitura
0

Quando minha equipe ou um terceiro carrega arquivos no meu bucket do Amazon Simple Storage Service (Amazon S3), quero saber o endereço IP externo que eles usaram. Minha política de bucket pode permitir acesso somente para endereços IP específicos. Como posso encontrar o endereço IP externo usado em cada upload?

Descrição breve

Para encontrar os endereços IP para solicitações em nível de objeto para o Amazon S3 (uploads e downloads), você deve primeiro iniciar um dos seguintes métodos de log:

  • Os logs de acesso ao servidor do Amazon S3 capturam todos os eventos em nível de bucket e em nível de objeto. Esses logs usam um formato semelhante aos logs do servidor Web Apache.
  • Eventos de dados do AWS CloudTrail capturam os últimos 90 dias de eventos em nível de bucket (por exemplo, PutBucketPolicy e DeleteBucketPolicy). Esses logs usam um formato JSON.

Resolução

Importante: é uma prática recomendada criar um novo bucket especificamente para logs que seja separado do bucket que você deseja monitorar. Um compartimento separado para logs evita o risco de obter logs sobre logs.

Ativar logs de acesso ao servidor do Amazon S3

Para ativar logs de acesso ao servidor do Amazon S3, consulte Habilitar logs de acesso ao servidor do Amazon S3.

Observação: pode levar algumas horas para que o Amazon S3 comece a criar logs.

Depois de ativar logs de acesso ao servidor, revise-os para encontrar os endereços IP usados em cada upload no seu bucket. Por exemplo, no log a seguir para uma solicitação PutObject, o endereço IP é exibido após o carimbo de data/hora [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" -

Ativar logs em nível de objeto com eventos de dados do AWS CloudTrail

Para ativar eventos de dados do AWS CloudTrail, consulte Habilitar logs de eventos do CloudTrail para buckets e objetos do S3.

Observação: pode levar algumas horas para o CloudTrail começar a criar logs.

Depois de ativar o log em nível de objeto com eventos de dados, revise os logs para encontrar os endereços IP usados em cada upload no seu bucket. Por exemplo, no log a seguir para uma solicitação PutObject, o endereço IP é listado como "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"
},

Informações relacionadas

Criar e configurar um bucket do S3

AWS OFICIAL
AWS OFICIALAtualizada há um ano