S3 Files용 CloudTrail 로깅

S3 Files용 CloudTrail 로깅 (Logging with CloudTrail for S3 Files)

Amazon S3 Files는 사용자, 역할 또는 AWS 서비스가 S3 Files에서 수행한 작업의 기록을 제공하는 CloudTrail 서비스와 통합되어 있어요. CloudTrail은 S3 Files 콘솔의 호출과 S3 Files API 작업에 대한 코드 호출을 포함해 S3 Files에 대한 모든 API 호출을 이벤트로 캡처해요.

트레일을 만들면 S3 Files 이벤트를 포함해 CloudTrail 이벤트를 Amazon S3 버킷으로 지속적으로 전달할 수 있어요. 트레일을 구성하지 않아도 CloudTrail 콘솔의 이벤트 기록(Event history) 에서 가장 최근 이벤트를 볼 수 있어요. CloudTrail이 수집한 정보를 사용해 S3 Files에 어떤 요청이 이루어졌는지, 요청이 이루어진 IP 주소, 요청한 사람, 시기, 추가 세부 정보를 확인할 수 있어요.

출처: 문서

본문

CloudTrail의 S3 Files 정보

CloudTrail은 계정을 만들 때 AWS 계정에 활성화돼요. Amazon S3 Files에서 활동이 발생하면 해당 활동은 다른 AWS 서비스 이벤트와 함께 CloudTrail 이벤트의 이벤트 기록(Event history) 에 기록돼요. AWS 계정의 최근 이벤트를 보고, 검색하고, 다운로드할 수 있어요. 자세한 내용은 CloudTrail 사용자 가이드의 CloudTrail 이벤트 기록으로 이벤트 보기를 참고하세요.

S3 Files 이벤트를 포함해 AWS 계정의 지속적인 이벤트 기록을 위해 트레일을 만드세요. 트레일을 사용하면 CloudTrail이 로그 파일을 Amazon S3 버킷에 전달할 수 있어요. 기본적으로 콘솔에서 트레일을 만들면 트레일은 모든 AWS 리전에 적용돼요. 트레일은 AWS 파티션의 모든 리전 이벤트를 기록하고 로그 파일을 지정한 Amazon S3 버킷에 전달해요. 또한 다른 AWS 서비스를 구성해 CloudTrail 로그에서 수집된 이벤트 데이터를 추가로 분석하고 조치를 취할 수 있어요.

CloudTrail 사용자 가이드의 다음 주제를 참고하세요.

  • AWS 계정용 트레일 생성
  • CloudTrail 로그와 AWS 서비스 통합
  • CloudTrail용 Amazon SNS 알림 구성
  • 여러 리전에서 CloudTrail 로그 파일 수신
  • 여러 계정에서 CloudTrail 로그 파일 수신

모든 S3 Files API는 CloudTrail에서 기록돼요. 예를 들어 CreateFileSystem, CreateMountTarget, TagResource 작업에 대한 호출은 CloudTrail 로그 파일에 항목을 생성해요. S3 Files는 컴퓨팅 리소스에 파일 시스템을 마운트할 때도 CloudTrail 로그를 생성해요.

모든 이벤트 또는 로그 항목에는 요청을 생성한 사람에 대한 정보가 포함돼요. ID 정보는 다음을 확인하는 데 도움을 줘요.

  • 요청이 루트 사용자 또는 IAM 사용자 자격 증명으로 이루어졌는지 여부.
  • 요청이 역할 또는 페더레이션 사용자에 대한 임시 보안 자격 증명으로 이루어졌는지 여부.
  • 요청이 다른 AWS 서비스에 의해 이루어졌는지 여부.

자세한 내용은 CloudTrail 사용자 가이드의 CloudTrail userIdentity 요소를 참고하세요.

S3 Files는 데이터 이벤트를 기록하지 않아요. 데이터 이벤트에는 파일 시스템에서 수행되는 파일 읽기 및 쓰기 작업이 포함돼요.

S3 Files 로그 파일 항목 이해

트레일은 이벤트를 지정한 Amazon S3 버킷의 로그 파일로 전달할 수 있게 해주는 구성이에요. CloudTrail 로그 파일에는 하나 이상의 로그 항목이 포함돼요. 이벤트는 모든 소스의 단일 요청을 나타내며 요청된 작업, 작업 날짜와 시간, 요청 파라미터 등에 대한 정보를 포함해요. CloudTrail 로그 파일은 공개 API 호출의 순서화된 스택 트레이스가 아니므로 특정 순서로 나타나지 않아요.

예시: CreateFileSystem

다음 예시는 CreateFileSystem 작업을 보여주는 CloudTrail 로그 항목이에요.

{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "111122223333",
        "arn": "arn:aws:sts::111122223333:assumed-role/myRole/i-0123456789abcdef0",
        "accountId": "111122223333",
        "accessKeyId": "«redacted:AKIA…»",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "111122223333",
                "arn": "arn:aws:iam::111122223333:role/myRole",
                "accountId": "111122223333",
                "userName": "myRole"
            },
            "attributes": {
                "creationDate": "2026-03-20T12:58:28Z",
                "mfaAuthenticated": "false"
            },
            "ec2RoleDelivery": "2.0"
        }
    },
    "eventTime": "2026-03-20T17:43:19Z",
    "eventSource": "s3files.amazonaws.com",
    "eventName": "CreateFileSystem",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "192.0.2.0",
    "userAgent": "aws-cli/2.0",
    "requestParameters": {
        "bucket": "arn:aws:s3:::amzn-s3-demo-bucket",
        "prefix": "images/",
        "clientToken": "myClientToken",
        "roleArn": "arn:aws:iam::111122223333:role/myS3FilesRole"
    },
    "responseElements": {
        "creationTime": "Mar 20, 2026, 5:43:19 PM",
        "fileSystemArn": "arn:aws:s3files:us-west-2:111122223333:file-system/fs-abcd123456789ef0",
        "fileSystemId": "fs-abcd123456789ef0",
        "bucket": "arn:aws:s3:::amzn-s3-demo-bucket",
        "prefix": "images/",
        "clientToken": "myClientToken",
        "status": "creating",
        "roleArn": "arn:aws:iam::111122223333:role/myS3FilesRole",
        "ownerId": "111122223333",
        "tags": []
    },
    "requestID": "dEXAMPLE-feb4-11e6-85f0-736EXAMPLE75",
    "eventID": "eEXAMPLE-2d32-4619-bd00-657EXAMPLEe4",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::S3Files::FileSystem",
            "ARN": "arn:aws:s3files:us-west-2:111122223333:file-system/fs-abcd123456789ef0"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management",
    "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_128_GCM_SHA256",
        "clientProvidedHostHeader": "s3files.us-west-2.api.aws"
    }
}

예시: CreateMountTarget

다음 예시는 CreateMountTarget 작업에 대한 CloudTrail 로그 항목이에요.

{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "111122223333",
        "arn": "arn:aws:sts::111122223333:assumed-role/myRole/i-0123456789abcdef0",
        "accountId": "111122223333",
        "accessKeyId": "«redacted:AKIA…»",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "111122223333",
                "arn": "arn:aws:iam::111122223333:role/myRole",
                "accountId": "111122223333",
                "userName": "myRole"
            },
            "attributes": {
                "creationDate": "2026-03-20T13:09:56Z",
                "mfaAuthenticated": "false"
            },
            "ec2RoleDelivery": "2.0"
        }
    },
    "eventTime": "2026-03-20T18:05:14Z",
    "eventSource": "s3files.amazonaws.com",
    "eventName": "CreateMountTarget",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "192.0.2.0",
    "userAgent": "aws-cli/2.0",
    "requestParameters": {
        "fileSystemId": "fs-abcd123456789ef0",
        "subnetId": "subnet-01234567890abcdef",
        "securityGroups": [
            "sg-c16d65b6"
        ]
    },
    "responseElements": {
        "availabilityZoneId": "usw2-az2",
        "ownerId": "111122223333",
        "mountTargetId": "fsmt-1234567",
        "fileSystemId": "fs-abcd123456789ef0",
        "subnetId": "subnet-01234567890abcdef",
        "ipv4Address": "192.0.2.0",
        "ipv6Address": "2001:db8::1",
        "networkInterfaceId": "eni-0123456789abcdef0",
        "vpcId": "vpc-01234567",
        "securityGroups": [
            "sg-c16d65b6"
        ],
        "status": "creating"
    },
    "requestID": "dEXAMPLE-feb4-11e6-85f0-736EXAMPLE75",
    "eventID": "eEXAMPLE-2d32-4619-bd00-657EXAMPLEe4",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::S3Files::FileSystem",
            "ARN": "arn:aws:s3files:us-west-2:111122223333:file-system/fs-abcd123456789ef0"
        },
        {
            "accountId": "111122223333",
            "type": "AWS::S3Files::MountTarget",
            "ARN": "arn:aws:s3files:us-west-2:111122223333:mount-target/fsmt-1234567"
        },
        {
            "accountId": "111122223333",
            "type": "AWS::EC2::Subnet",
            "ARN": "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-01234567890abcdef"
        },
        {
            "accountId": "111122223333",
            "type": "AWS::EC2::NetworkInterface",
            "ARN": "arn:aws:ec2:us-west-2:111122223333:network-interface/eni-0123456789abcdef0"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management",
    "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_128_GCM_SHA256",
        "clientProvidedHostHeader": "s3files.us-west-2.api.aws"
    }
}