View a markdown version of this page

를 사용하여 AWS Lake Formation API 호출 로깅 AWS CloudTrail - AWS Lake Formation

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

를 사용하여 AWS Lake Formation API 호출 로깅 AWS CloudTrail

AWS Lake Formation은 Lake Formation에서 사용자 AWS CloudTrail, 역할 또는 서비스가 수행한 작업에 대한 레코드를 제공하는 AWS 서비스와 통합됩니다. CloudTrail은 모든 Lake Formation API 호출을 이벤트로 캡처합니다. 캡처되는 호출에는 Lake Formation 콘솔의 호출, AWS Command Line Interface및 Lake Formation API 작업에 대한 코드 호출이 포함됩니다. 추적을 생성하면 Lake Formation 이벤트를 포함한 CloudTrail 이벤트를 지속적으로 Amazon S3 버킷에 배포할 수 있습니다. 추적을 구성하지 않은 경우에도 이벤트 기록에서 CloudTrail 콘솔의 최신 이벤트를 볼 수 있습니다. CloudTrail에서 수집한 정보를 사용하여 Lake Formation에 수행된 요청, 요청이 수행된 IP 주소, 요청을 수행한 사람, 요청이 수행된 시간 및 추가 세부 정보를 확인할 수 있습니다.

CloudTrail에 대한 자세한 내용은 AWS CloudTrail 사용 설명서를 참조하세요.

CloudTrail의 Lake Formation 정보

CloudTrail은 새 AWS 계정을 생성할 때 기본적으로 활성화됩니다. Lake Formation에서 활동이 발생하면 해당 활동은 이벤트 기록의 다른 AWS 서비스 이벤트와 함께 CloudTrail 이벤트로 기록됩니다. 이벤트는 모든 소스로부터의 단일 요청을 나타내며 요청 작업, 작업 날짜와 시간, 요청 파라미터에 관한 정보가 들어 있습니다. 또한, 모든 이벤트 및 로그 항목에는 요청을 생성한 사용자에 대한 정보가 들어 있습니다. ID 정보를 이용하면 다음을 쉽게 판단할 수 있습니다.

  • 요청이 루트 또는 AWS Identity and Access Management (IAM) 사용자 자격 증명으로 이루어졌는지 여부입니다.

  • 역할 또는 페더레이션 사용자의 임시 자격 증명을 사용하여 요청이 생성되었는지 여부.

  • 요청이 다른 AWS 서비스에 의해 이루어졌는지 여부입니다.

자세한 내용은 CloudTrail userIdentity 요소를 참조하세요.

AWS 계정에 대한 최근 이벤트를 보고 검색하고 다운로드할 수 있습니다. 자세한 내용은 CloudTrail 이벤트 기록을 사용하여 이벤트 보기를 참조하세요.

Lake Formation 이벤트를 포함하여 AWS 계정에 이벤트를 지속적으로 기록하려면 추적을 생성합니다. CloudTrail은 추적을 사용하여 Amazon S3 버킷으로 로그 파일을 전송할 수 있습니다. 콘솔에서 추적을 생성하면 기본적으로 모든 AWS 리전에 추적이 적용됩니다. 추적은 AWS 파티션의 모든 리전에서 이벤트를 로깅하고 지정한 Amazon S3 버킷으로 로그 파일을 전송합니다. 또한 CloudTrail 로그에서 수집된 이벤트 데이터를 추가로 분석하고 조치를 취 Amazon Athena하도록와 같은 다른 AWS 서비스를 구성할 수 있습니다. CloudTrail은 Amazon CloudWatch Logs와 CloudWatch Events에도 로그 파일을 전송할 수 있습니다.

자세한 내용은 다음 자료를 참조하세요.

Lake Formation 이벤트 이해

모든 Lake Formation API 작업은 CloudTrail에서 로깅되며 AWS Lake Formation 개발자 안내서에 설명되어 있습니다. 예를 들어 PutDataLakeSettings, GrantPermissionsRevokePermissions 작업을 직접적으로 호출하면 CloudTrail 로그 파일에 항목이 생성됩니다.

다음 예제는 GrantPermissions 작업에 대한 CloudTrail 이벤트를 표시합니다. 이 항목에는 권한을 부여한 사용자(datalake_admin), 권한이 부여된 보안 주체(datalake_user1), 부여된 권한(CREATE_TABLE)이 포함됩니다. 또한 이 항목에는 대상 데이터베이스가 resource 인수에 지정되지 않아 권한 부여가 실패했음을 알 수 있습니다.

{ "eventVersion": "1.08", "userIdentity": { "type": "IAMUser", "principalId": "AIDAZKE67KM3P775X74U2", "arn": "arn:aws:iam::111122223333:user/datalake_admin", "accountId": "111122223333", "accessKeyId": "...", "userName": "datalake_admin" }, "eventTime": "2021-02-06T00:43:21Z", "eventSource": "lakeformation.amazonaws.com", "eventName": "GrantPermissions", "awsRegion": "us-east-1", "sourceIPAddress": "72.21.198.65", "userAgent": "aws-cli/1.19.0 Python/3.6.12 Linux/4.9.230-0.1.ac.223.84.332.metal1.x86_64 botocore/1.20.0", "errorCode": "InvalidInputException", "errorMessage": "Resource must have one of the have either the catalog, table or database field populated.", "requestParameters": { "principal": { "dataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/datalake_user1" }, "resource": {}, "permissions": [ "CREATE_TABLE" ] }, "responseElements": null, "requestID": "b85e863f-e75d-4fc0-9ff0-97f943f706e7", "eventID": "8d2ccef0-55f3-42d3-9ede-3a6faedaa5c1", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }

다음 예제는 GetDataAccess 작업에 대한 CloudTrail 로그 항목을 표시합니다. 보안 주체는 이 API를 직접 호출하지 않습니다. 대신 보안 주체 또는 통합 AWS 서비스가 Lake Formation에 등록된 데이터 레이크 위치의 데이터에 액세스하기 위해 임시 자격 증명을 요청할 때마다가 로깅GetDataAccess됩니다.

{ "eventVersion": "1.05", "userIdentity": { "type": "AWSAccount", "principalId": "AROAQGFTBBBGOBWV2EMZA:GlueJobRunnerSession", "accountId": "111122223333" }, "eventSource": "lakeformation.amazonaws.com", "eventName": "GetDataAccess", ... ... "additionalEventData": { "requesterService": "GLUE_JOB", "lakeFormationPrincipal": "arn:aws:iam::111122223333:role/ETL-Glue-Role", "lakeFormationRoleSessionName": "AWSLF-00-GL-111122223333-G13T0Rmng2" }, ... }

Lake Formation을 사용하여 CloudTrail에서 데이터 액세스 추적

Lake Formation은 Amazon S3의 테이블 데이터 위치에 액세스하기 위해 , Amazon EMR 및와 같은 쿼리 엔진을 AWS Glue위한 범위가 축소된 임시 자격 증명을 발급합니다. Lake Formation은 이러한 자격 증명을 제공하기 위해 Lake Formation에 데이터 위치를 등록할 때 지정하는 IAM 역할을 사용합니다.

CloudTrail 로깅 동작의 변경(2026년 2월)

2026년 2월 이전에는 쿼리 엔진이 쿼리 데이터 가져오기를 s3:GetObject 호출했을 때 CloudTrail 로그에 Lake Formation 등록 IAM 역할이 보안 주체로 표시되었습니다.

2026년 2월부터 호출에 대한 CloudTrail 로그에는 쿼리를 시작한 IAM 역할의 IAM 고유 식별자(로 시작AROA)도 포함됩니다. s3:GetObject 이 식별자는 쿼리, Amazon EMR 작업 또는 AWS Glue ETL 작업을 시작한 IAM 역할에 해당합니다.

쿼리 시작부터 Amazon S3까지 데이터 액세스 추적

CloudTrail의 각 s3:GetObject 호출은 lakeformation:GetDataAccess 호출에 해당합니다. 두 로그 항목 모두에 있는 IAM 역할 식별자를 사용하여 쿼리 시작부터 Amazon S3의 데이터 액세스까지 호출자의 IAM 역할을 추적할 수 있습니다.

Amazon S3 데이터 이벤트 CloudTrail 로그에서 소스 자격 증명 정보를 활성화하려면 아래 단계를 따르세요. CloudTrail에서 Amazon S3 데이터 이벤트를 활성화하려면 Amazon S3 버킷 및 객체에 대한 CloudTrail 이벤트 로깅 활성화를 참조하세요.

중요

CloudTrail에서 Amazon S3 데이터 이벤트를 활성화하면 추가 요금이 발생합니다.

CloudTrail 로그에서 소스 자격 증명 추적을 활성화하려면
  1. 를 사용하여 get-data-lake-settings 명령을 실행합니다. 응답에서 Parameters 필드를 편집하여를 추가합니다"SET_SOURCE_IDENTITY": "TRUE".

    put-data-lake-settings 명령을 실행합니다.

    "Parameters": { "CROSS_ACCOUNT_VERSION": "4", "SET_SOURCE_IDENTITY": "TRUE" },
  2. Lake Formation에 Amazon S3 데이터 위치를 등록하는 데 사용되는 IAM 역할의 신뢰 정책에 sts:SetSourceIdentity를 추가합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "lakeformation.amazonaws.com" ] }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ] } ] }

다음 로그는 예제 s3:GetObject CloudTrail 로그의 소스 자격 증명 정보를 보여줍니다.

"sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA2EXAMPLEXYZ3AB6CDKLM", "arn": "arn:aws:iam::111122223333:role/LFRegistrationRole", "accountId": "111122223333", "userName": "LFRegistrationRole" }, "sourceIdentity": "V2.111122223333.AROA3EXAMPLEPQR7ST9UVWXY" }, "invokedBy": "glue.amazonaws.com"
참고
  • CloudTrail 로그에서 IAM Identity Center 사용자 컨텍스트를 추적하는 방법에 대한 자세한 내용은 섹션을 참조하세요IAM Identity Center 통합.

Amazon Redshift 페더레이션 카탈로그 액세스 모니터링

의 Amazon Redshift 페더레이션 카탈로그는 Lake Formation CloudTrail 로그에서 GetDataAccess 이벤트를 생성하지 AWS Glue Data Catalog 않습니다. Data Catalog의 Amazon Redshift 테이블에 대한 데이터 액세스를 추적하려면 테이블 이름, 데이터베이스 이름 및 카탈로그 ID 정보를 포함하여 Redshift 페더레이션 테이블에 대한 메타데이터 액세스 패턴을 캡처하는 GetTableBatchGetTable 이벤트를 모니터링합니다.