Amazon S3 バケットへの各アップロードに関連付けられた外部 IP アドレスを見つけるにはどうすればよいですか?

最終更新日: 2019 年 1 月 21 日

チームまたはサードパーティが Amazon Simple Storage Service (Amazon S3) バケットにファイルをアップロードするときに、使用した外部 IP アドレスを知ることが必要になります。バケットポリシーでは、特定の IP アドレスに対してのみアクセスを許可する場合があります。各アップロードで使用される外部 IP アドレスを確認するにはどうすればよいですか ? 

簡単な説明

Amazon S3 へのオブジェクトレベルのリクエスト (アップロードとダウンロード) の IP アドレスを確認するには、まず次のいずれかのログ記録方法を有効にする必要があります。

  • Amazon S3 サーバーアクセスのログ記録 は、バケットレベルとオブジェクトレベルのすべてのイベントをキャプチャします。これらのログは、Apache ウェブサーバーログと同様の形式を使用します。
  • AWS CloudTrail データイベントは、過去 90 日間のバケットレベルのイベント (PutBucketPolicy や DeleteBucketPolicy など) をキャプチャし、オブジェクトレベルのログ記録を有効にすることができます。これらのログは JSON 形式を使用します。

解決方法

重要: モニタリングするバケットとは別のログ専用の新しいバケットを作成することをお勧めします。ログ用のバケットを別個にすることで、ログに関するログを取得するリスクを回避できます。

Amazon S3 サーバーアクセスのログ記録を有効にする

Amazon S3 サーバーアクセスログ記録を有効にするには、S3 バケットのサーバーアクセスログ記録を有効にする方法 を参照してください。

注: Amazon S3 がログの作成を開始するまでに、数時間かかることがあります。

サーバーアクセスのログ記録を有効にしたら、ログを確認して、バケットへの各アップロードで使用されている IP アドレスを見つけます。たとえば、次の PutObject リクエストのログでは、IP アドレスはタイムスタンプ [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" -

AWS CloudTrail データイベントでオブジェクトレベルのログ記録を有効にする

AWS CloudTrail データイベントを有効にするには、AWS CloudTrail データイベントを使用した S3 バケットのオブジェクトレベルのログ記録を有効にする方法を参照してください。

注: AWS CloudTrail がログの作成を開始するまでに、数時間かかることがあります。

データイベントを使用したオブジェクトレベルのログ記録を有効にしたら、ログを確認して、バケットへの各アップロードで使用される IP アドレスを見つけます。たとえば、次の PutObject リクエストのログでは、IP アドレスは 「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"
},

この記事はお役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合