기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS CloudTrail 에 대한 로깅 AWS Transfer Family
AWS Transfer Family 는 AWS CloudTrail 및 Amazon CloudWatch와 통합됩니다. CloudTrail과 CloudWatch는 서로 다르지만 보완적인 용도로 사용됩니다.
-
이 주제에서는 내에서 수행된 작업의 레코드를 생성하는 AWS 서비스인 CloudTrail과의 통합을 다룹니다 AWS 계정. 콘솔 로그인, AWS Command Line Interface 명령 및 SDK/API 작업과 같은 활동에 대한 API 작업을 지속적으로 모니터링하고 기록합니다. 이를 통해 누가 어떤 조치를 언제 어디서 취했는지에 대한 로그를 유지할 수 있습니다. CloudTrail은 환경의 AWS 모든 활동에 대한 기록을 제공하여 감사, 액세스 관리 및 규정 준수를 지원합니다. 자세한 내용은 AWS CloudTrail 사용 설명서를 참조하세요.
-
AWS Transfer Family 서버에 대한 Amazon CloudWatch 로깅 에서는 AWS 리소스 및 애플리케이션에 대한 모니터링 서비스인 CloudWatch와의 통합을 다룹니다. 지표와 로그를 수집하여 리소스 사용률, 애플리케이션 성능 및 전체 시스템 상태에 대한 가시성을 제공합니다. CloudWatch는 문제 해결, 경보 설정, 자동 크기 조정과 같은 운영 작업을 지원합니다. 자세한 내용은 Amazon CloudWatch 사용 설명서를 참조하세요.
추적이란 지정한 Amazon S3 버킷에 이벤트를 로그 파일로 입력할 수 있게 하는 구성입니다. CloudTrail 로그 파일에는 하나 이상의 로그 항목이 포함될 수 있습니다. 이벤트는 모든 소스로부터의 단일 요청을 나타내며 요청 작업, 작업 날짜와 시간, 요청 파라미터 등에 대한 정보가 들어 있습니다. CloudTrail 로그 파일은 퍼블릭 API 작업의 순서가 지정된 스택 추적이 아니므로 특정 순서로 표시되지 않습니다.
에 대한 이벤트를 포함하여 AWS 계정에 이벤트를 지속적으로 기록하려면 추적을 AWS Transfer Family생성합니다. CloudTrail은 추적을 사용하여 Amazon S3 버킷으로 로그 파일을 전송할 수 있습니다. 콘솔에서 추적을 생성하면 기본적으로 모든 AWS 지역에 추적이 적용됩니다. 추적은 AWS 파티션의 모든 리전에서 이벤트를 로깅하고 지정한 Amazon S3 버킷으로 로그 파일을 전송합니다. 추가적으로, CloudTrail 로그에서 수집된 이벤트 데이터를 추가 분석 및 처리하도록 다른 AWS 서비스를 구성할 수 있습니다. 자세한 내용은 다음 자료를 참조하세요.
모든 AWS Transfer Family 작업은 CloudTrail에서 로깅되며 Actions에 문서화됩니다API reference. 예를 들어 CreateServer, ListUsers, StopServer 작업을 직접 호출하면 CloudTrail 로그 파일에 항목이 생성됩니다.
모든 이벤트 또는 로그 항목에는 요청을 생성했던 사용자에 대한 정보가 포함됩니다. 자격 증명을 이용하면 다음을 쉽게 판단할 수 있습니다.
-
요청이 루트 또는 AWS Identity and Access Management 사용자 자격 증명으로 이루어졌는지 여부입니다.
-
역할 또는 페더레이션 사용자에 대한 임시 보안 인증을 사용하여 요청이 생성되었는지 여부.
-
요청이 다른 AWS 서비스에서 이루어졌는지 여부입니다.
자세한 내용은 CloudTrail userIdentity 요소를 참조하세요.
추적을 생성하면 이벤트를 포함한 CloudTrail 이벤트를 지속적으로 Amazon S3 버킷에 배포할 수 있습니다 AWS Transfer Family. 추적을 구성하지 않은 경우에도 CloudTrail 콘솔의 이벤트 기록에서 최신 이벤트를 볼 수 있습니다.
CloudTrail에서 수집한 정보를 사용하여 AWS Transfer Family에 수행된 요청, 요청이 수행된 IP 주소, 요청을 수행한 사람, 요청이 수행된 시간 및 추가 세부 정보를 확인할 수 있습니다.
CloudTrail에 대한 자세한 내용은 AWS CloudTrail 사용 설명서를 참조하십시오.
AWS CloudTrail 로깅 활성화
를 사용하여 AWS Transfer Family API 작업을 모니터링할 수 있습니다 AWS CloudTrail. API 작업을 모니터링하면 유용한 보안 및 운영 정보를 얻을 수 있습니다. Amazon S3 객체 수준 로깅을 활성화한 경우, 요청자 필드에 RoleSessionName이(가) [AWS:Role Unique Identifier]/username.sessionid@server-id(으)로 포함됩니다. AWS Identity and Access Management (IAM) 역할 고유 식별자에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서의 고유 식별자를 참조하세요.
중요
RoleSessionName의 최대 길이는 64자입니다. RoleSessionName 길이가 더 길면 이(가) 잘립니다.server-id
Amazon S3 데이터 이벤트 활성화
Amazon S3 버킷 AWS Transfer Family 에서를 통해 수행된 파일 작업을 추적하려면 해당 버킷에 대한 데이터 이벤트를 활성화해야 합니다. 데이터 이벤트는 객체 수준 API 활동을 제공하며 AWS Transfer Family 사용자가 수행하는 파일 업로드, 다운로드 및 기타 작업을 추적하는 데 특히 유용합니다.
AWS Transfer Family 서버에 대해 Amazon S3 데이터 이벤트를 활성화하려면:
-
https://console.aws.amazon.com/cloudtrail/
에서 CloudTrail 콘솔을 엽니다. -
탐색 창에서 추적을 선택한 다음 기존 추적을 선택하거나 새 추적을 생성합니다.
-
데이터 이벤트에서 편집을 선택합니다.
-
데이터 이벤트 유형에서 S3를 선택합니다.
-
데이터 이벤트를 로깅할 Amazon S3 버킷을 선택합니다. 모든 버킷에 대한 데이터 이벤트를 로깅하거나 개별 버킷을 지정할 수 있습니다.
-
읽기 이벤트, 쓰기 이벤트 또는 둘 다를 로깅할지 여부를 선택합니다.
-
변경 사항 저장을 선택합니다.
데이터 이벤트를 활성화한 후 CloudTrail 추적에 대해 구성된 Amazon S3 버킷에서 이러한 로그에 액세스할 수 있습니다. 로그에는 작업을 수행한 사용자, 작업 타임스탬프, 영향을 받는 특정 객체, 수행된 작업에 userId 대해를 추적하는 데 도움이 되는 onBehalfOf 필드와 같은 세부 정보가 포함됩니다 AWS Transfer Family.
서버 생성을 위한 로그 항목의 예
다음 예제에서는 CreateServer 작업을 보여주는 CloudTrail 로그 항목(JSON 형식)을 보여줍니다.
{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AAAA4FFF5HHHHH6NNWWWW:user1", "arn": "arn:aws:sts::123456789102:assumed-role/Admin/user1", "accountId": "123456789102", "accessKeyId": "AAAA52C2WWWWWW3BB4Z", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-12-18T20:03:57Z" }, "sessionIssuer": { "type": "Role", "principalId": "AAAA4FFF5HHHHH6NNWWWW", "arn": "arn:aws:iam::123456789102:role/Admin", "accountId": "123456789102", "userName": "Admin" } } }, "eventTime": "2024-02-05T19:18:53Z", "eventSource": "transfer.amazonaws.com", "eventName": "CreateServer", "awsRegion": "us-east-1", "sourceIPAddress": "11.22.1.2", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36", "requestParameters": { "domain": "S3", "hostKey": "HIDDEN_DUE_TO_SECURITY_REASONS", "protocols": [ "SFTP" ], "protocolDetails": { "passiveIp": "AUTO", "tlsSessionResumptionMode": "ENFORCED", "setStatOption": "DEFAULT" }, "securityPolicyName": "TransferSecurityPolicy-2020-06", "s3StorageOptions": { "directoryListingOptimization": "ENABLED" } }, "responseElements": { "serverId": "s-1234abcd5678efghi" }, "requestID": "6fe7e9b1-72fc-45b0-a7f9-5840268aeadf", "eventID": "4781364f-7c1e-464e-9598-52d06aa9e63a", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789102", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "transfer.us-east-1.amazonaws.com" }, "sessionCredentialFromConsole": "true" }
데이터 액세스 로그 예제
CloudTrail 추적에 대해 Amazon S3 데이터 이벤트를 활성화하면를 통해 수행된 파일 작업을 추적할 수 있습니다 AWS Transfer Family. 이러한 로그는 누가 어떤 데이터에 언제 어떻게 액세스했는지 모니터링하는 데 도움이 됩니다.
성공적인 데이터 액세스를 위한 로그 항목의 예
다음 예제는 성공적인 파일 다운로드 작업에 대한 CloudTrail 로그 항목을 보여줍니다 AWS Transfer Family.
{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AROAEXAMPLEID:TransferSessionUser", "arn": "arn:aws:sts::123456789012:assumed-role/TransferS3AccessRole/TransferSessionUser", "accountId": "123456789012", "accessKeyId": "ASIAEXAMPLEKEY", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAEXAMPLEID", "arn": "arn:aws:iam::123456789012:role/TransferS3AccessRole", "accountId": "123456789012", "userName": "TransferS3AccessRole" }, "attributes": { "creationDate": "2025-07-15T16:12:05Z", "mfaAuthenticated": "true" } }, "invokedBy": "transfer.amazonaws.com" }, "eventTime": "2025-07-15T16:15:22Z", "eventSource": "s3.amazonaws.com", "eventName": "GetObject", "awsRegion": "us-east-1", "sourceIPAddress": "transfer.amazonaws.com", "userAgent": "transfer.amazonaws.com", "requestParameters": { "bucketName": "my-transfer-bucket", "key": "users/john.doe/reports/quarterly-report-2025-Q2.pdf", "Host": "my-transfer-bucket.s3.amazonaws.com", "x-amz-request-payer": "requester" }, "responseElements": null, "additionalEventData": { "SignatureVersion": "SigV4", "CipherSuite": "ECDHE-RSA-AES128-GCM-SHA256", "bytesTransferredIn": 0, "bytesTransferredOut": 2458732, "x-amz-id-2": "EXAMPLE123456789+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ=" }, "requestID": "EXAMPLE123456789", "eventID": "example12-3456-7890-abcd-ef1234567890", "readOnly": true, "resources": [ { "type": "AWS::S3::Object", "ARN": "arn:aws:s3:::my-transfer-bucket/users/john.doe/reports/quarterly-report-2025-Q2.pdf" }, { "accountId": "123456789012", "type": "AWS::S3::Bucket", "ARN": "arn:aws:s3:::my-transfer-bucket" } ], "eventType": "AwsApiCall", "managementEvent": false, "recipientAccountId": "123456789012", "eventCategory": "Data", "requestParameters": { "x-amz-onBehalfOf": "john.doe.sessionid@s-abcd1234efgh5678" } }
이 예제에서는 다음 중요 필드를 기록해 둡니다.
-
eventName: 수행된 S3 API 작업을 나타냅니다(파일 다운로드용 GetObject). -
requestParameters.bucketName및requestParameters.key: 어떤 S3 객체에 액세스했는지 표시합니다. -
additionalEventData.bytesTransferredOut: 다운로드한 파일의 크기를 바이트 단위로 표시합니다. -
requestParameters.x-amz-onBehalfOf: 사용자 AWS Transfer Family 이름과 세션 ID를 포함하여 작업을 수행한 AWS Transfer Family 사용자를 추적할 수 있습니다.
x-amz-onBehalfOf 필드는 S3 API 호출을 작업을 시작한 특정 AWS Transfer Family 사용자와 다시 연결하므로 특히 중요합니다. 이 필드는 형식을 따릅니다username.sessionid@server-id. 여기서
-
username는 AWS Transfer Family 사용자 이름입니다. -
sessionid는 사용자 세션의 고유 식별자입니다. -
server-id는 AWS Transfer Family 서버의 ID입니다.
일반적인 데이터 액세스 작업
를 통해 데이터 액세스를 모니터링할 때 AWS Transfer Family일반적으로 CloudTrail 로그에 다음과 같은 S3 API 작업이 표시됩니다.
| S3 API 작업 | AWS Transfer Family 작업 | 설명 |
|---|---|---|
| GetObject | 파일 다운로드 | 사용자가 서버에서 파일을 다운로드했습니다. |
| PutObject | 파일 업로드 | 사용자가 서버에 파일을 업로드했습니다. |
| DeleteObject | 파일 삭제 | 사용자가 서버에서 파일을 삭제했습니다. |
| ListObjects 또는 ListObjectsV2 | 디렉터리 목록 | 디렉터리에 사용자가 나열한 파일 |
| CopyObject | 파일 복사 | 사용자가 서버 내에서 파일을 복사했습니다. |
CloudTrail 로그에서 이러한 작업을 모니터링하면 AWS Transfer Family 서버를 통해 수행되는 모든 파일 활동을 추적하여 규정 준수 요구 사항을 충족하고 무단 액세스를 감지할 수 있습니다.