Amazon S3 버킷에 대한 각 업로드와 연관된 외부 IP 주소를 찾으려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 11월 7일

우리 팀 또는 서드 파티에서 내 Amazon Simple Storage Service(Amazon S3) 버킷에 파일을 업로드할 때 사용한 외부 IP 주소를 알고 싶습니다. 버킷 정책이 특정 IP 주소에 대해서만 액세스를 허용하도록 설정되었을 수 있습니다. 각 업로드에 사용된 외부 IP 주소를 찾으려면 어떻게 해야 합니까?

간략한 설명

Amazon S3에 대한 객체 수준의 요청(업로드 및 다운로드)에 대한 IP 주소를 찾으려면 먼저 다음의 로깅 방식 중 하나를 시작해야 합니다.

  • Amazon S3 서버 액세스 로깅은 모든 버킷 수준 및 객체 수준 이벤트를 캡처합니다. 이러한 로그는 Apache 웹 서버 로그와 비슷한 형식을 사용합니다.
  • AWS CloudTrail 데이터 이벤트는 지난 90일 동안의 버킷 수준 이벤트(예: PutBucketPolicyDeleteBucketPolicy)를 포착합니다. 이러한 로그는 JSON 형식을 사용합니다.

해결 방법

중요: 모니터링할 버킷과 별도로 로그 전용의 새 버킷을 생성하는 것이 좋습니다. 별도의 로그용 버킷은 로그에 대한 로그가 작성되는 위험을 차단합니다.

Amazon S3 서버 액세스 로깅 켜기

Amazon S3 서버 액세스 로깅을 켜려면 Amazon S3 서버 액세스 로깅 활성화를 참조하세요.

참고: Amazon S3에서 로그 생성을 시작하는 데 몇 시간이 걸릴 수 있습니다.

서버 액세스 로깅을 켠 후 로그를 검토하여 버킷에 대한 각 업로드에 사용된 IP 주소를 찾으십시오. 예를 들어, PutObject 요청에 대한 다음 로그에는 타임스탬프 [07/Dec/2018:07:03:01 +0000] 뒤에 IP 주소가 표시되어 있습니다.

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" -

AWS CloudTrail 데이터 이벤트로 객체 수준 로깅 켜기

AWS CloudTrail 데이터 이벤트를 켜려면, S3 버킷 및 객체에 대해 CloudTrail 이벤트 로깅 활성화를 참조하세요.

참고: 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"
},

이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?