교차 계정 CloudTrail 로깅 - AWS Lake Formation

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

교차 계정 CloudTrail 로깅

Lake Formation은 데이터 레이크의 데이터에 대한 모든 크로스 계정 액세스에 대한 중앙 집중식 감사 추적을 제공합니다. 수신자 AWS 계정이 공유 테이블의 데이터에 액세스하면 Lake Formation은 CloudTrail 이벤트를 소유 계정의 로그에 복사합니다. CloudTrail 복사된 이벤트에는 Amazon Redshift Amazon Athena Spectrum과 같은 통합 서비스에 의한 데이터에 대한 쿼리와 작업별 데이터 액세스가 AWS Glue 포함됩니다.

CloudTrail 데이터 카탈로그 리소스의 계정 간 작업에 대한 이벤트도 비슷하게 복사됩니다.

리소스 소유자는 Amazon S3에서 객체 수준 로깅을 활성화하면 S3 이벤트를 Lake Formation CloudTrail CloudTrail 이벤트와 조인하는 쿼리를 실행하여 S3 버킷에 액세스한 계정을 확인할 수 있습니다.

계정 간 로그에 보안 ID 포함 CloudTrail

기본적으로 공유 리소스 수신자의 로그에 추가되고 리소스 소유자 로그에 복사되는 계정 간 CloudTrail 이벤트에는 외부 계정 보안 주체의 보안 AWS 주체 ID만 포함되며 주체 (주 ARN) 의 사람이 읽을 수 있는 Amazon Resource Name (ARN) 은 포함되지 않습니다. 같은 조직이나 팀과 같이 신뢰할 수 있는 경계 내에서 리소스를 공유하는 경우 이벤트에 주 ARN을 포함하도록 선택할 수 있습니다. CloudTrail 그러면 리소스 소유자 계정은 소유한 리소스에 액세스하는 수신자 계정의 보안 주체를 추적할 수 있습니다.

중요

공유 리소스 수신자가 자신의 CloudTrail 로그의 이벤트에서 주 ARN을 보려면 소유자 계정과 주 ARN을 공유하도록 옵트인해야 합니다.

리소스 링크를 통해 데이터에 액세스하는 경우, 공유 리소스 수신자 계정에 두 개의 이벤트, 즉 리소스 링크 액세스를 위한 이벤트 하나와 대상 리소스 액세스를 위한 이벤트가 기록됩니다. 리소스 링크 액세스 이벤트에는 보안 주체 ARN이 포함됩니다. 대상 리소스 액세스 이벤트에는 옵트인 없는 보안 주체 ARN이 포함되지 않습니다. 리소스 링크 액세스 이벤트는 소유자 계정에 복사되지 않습니다.

다음은 기본 계정 간 CloudTrail 이벤트 (옵트인 없음) 에서 발췌한 내용입니다. 데이터 액세스를 수행하는 계정은 1111-2222-3333입니다. 이 로그는 호출 계정과 리소스 소유자 계정 모두에 표시되는 로그입니다. Lake Formation은 교차 계정의 경우 두 계정의 로그를 모두 채웁니다.

{ "eventVersion": "1.05", "userIdentity": { "type": "AWSAccount", "principalId": "AROAQGFTBBBGOBWV2EMZA:GlueJobRunnerSession", "accountId": "111122223333" }, "eventSource": "lakeformation.amazonaws.com", "eventName": "GetDataAccess", ... ... "additionalEventData": { "requesterService": "GLUE_JOB", "lakeFormationRoleSessionName": "AWSLF-00-GL-111122223333-G13T0Rmng2" }, ... }

공유 리소스 소비자로서 보안 주체 ARN을 포함하도록 옵트인하면 발췌는 다음과 같이 됩니다. lakeFormationPrincipal 필드는 Amazon Athena, Amazon Redshift Spectrum 또는 AWS Glue 작업을 통해 쿼리를 수행하는 최종 역할 또는 사용자를 나타냅니다.

{ "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" }, ... }
교차 계정 로그에 주요 ARN을 포함하도록 선택하는 방법 CloudTrail
  1. Lake Formation 콘솔(https://console.aws.amazon.com/lakeformation/)을 엽니다.

    Administrator 사용자 또는 Administrator Access IAM 정책이 있는 사용자로 로그인합니다.

  2. 탐색 창에서 설정을 선택합니다.

  3. 데이터 카탈로그 설정 페이지의 기본 권한 AWS CloudTrail 섹션, 리소스 소유자에 대해 하나 이상의 AWS 리소스 소유자 계정 ID를 입력합니다.

    각 계정 ID를 입력한 후에 Enter 키를 누릅니다.

  4. 저장을 선택합니다.

    이제 공유 리소스 수신자와 리소스 소유자 모두의 로그에 저장된 교차 계정 CloudTrail 이벤트에 기본 ARN이 포함됩니다.

Amazon S3 계정 간 CloudTrail 액세스에 대한 로그 쿼리

공유 리소스 소유자는 S3 CloudTrail 로그를 쿼리하여 Amazon S3 버킷에 액세스한 계정을 확인할 수 있습니다 (Amazon S3에서 객체 수준 로깅을 활성화한 경우). 이는 Lake Formation에 등록한 S3 위치에만 적용됩니다. 공유 리소스 소비자가 Lake Formation CloudTrail 로그에 주 Rans를 포함하도록 선택한 경우 버킷에 액세스한 역할 또는 사용자를 확인할 수 있습니다.

를 사용하여 Amazon Athena쿼리를 실행하는 경우 세션 이름 속성에서 Lake CloudTrail Formation 이벤트 및 S3 CloudTrail 이벤트를 조인할 수 있습니다. 쿼리를 통해 Lake Formation 이벤트는 eventName="GetDataAccess"에서, S3 이벤트는 eventName="Get Object" 또는 eventName="Put Object"에서 필터링할 수도 있습니다.

다음은 등록된 S3 위치의 데이터에 액세스한 Lake Formation 크로스 어카운트 CloudTrail 이벤트에서 발췌한 내용입니다.

{ "eventSource": "lakeformation.amazonaws.com", "eventName": "GetDataAccess", .............. .............. "additionalEventData": { "requesterService": "GLUE_JOB", "lakeFormationPrincipal": "arn:aws:iam::111122223333:role/ETL-Glue-Role", "lakeFormationRoleSessionName": "AWSLF-00-GL-111122223333-B8JSAjo5QA" } }

lakeFormationRoleSessionNameAWSLF-00-GL-111122223333-B8JSAjo5QA 값인 을 S3 이벤트 principalId 키의 세션 이름과 결합할 수 있습니다. CloudTrail 다음은 S3 CloudTrail 이벤트에서 발췌한 내용입니다. 세션 이름의 위치를 보여줍니다.

{ "eventSource": "s3.amazonaws.com", "eventName": "Get Object" .............. .............. "principalId": "AROAQSOX5XXUR7D6RMYLR:AWSLF-00-GL-111122223333-B8JSAjo5QA", "arn": "arn:aws:sets::111122223333:assumed-role/Deformationally/AWSLF-00-GL-111122223333-B8JSAjo5QA", "session Context": { "session Issuer": { "type": "Role", "principalId": "AROAQSOX5XXUR7D6RMYLR", "arn": "arn:aws:iam::111122223333:role/aws-service-role/lakeformation.amazonaws.com/Deformationally", "accountId": "111122223333", "user Name": "Deformationally" }, .............. .............. }

세션 이름은 다음 형식입니다.

AWSLF-<version-number>-<query-engine-code>-<account-id->-<suffix>
version-number

이 형식의 버전은 현재 00입니다. 세션 이름 형식이 변경되면 다음 버전은 01이 됩니다.

query-engine-code

데이터에 액세스한 엔터티를 나타냅니다. 현재 값은 다음과 같습니다.

GL AWS Glue ETL 작업
AT Athena
RE Amazon Redshift Spectrum
account-id

Lake Formation에 자격 증명을 요청한 AWS 계정 ID.

suffix

무작위로 생성된 문자열입니다.