교차 계정 CloudTrail 로깅 - AWS Lake Formation

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

교차 계정 CloudTrail 로깅

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

CloudTrail Data Catalog 리소스에서 교차 계정 작업을 위한 이벤트도 유사하게 복사됩니다.

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

교차 계정 CloudTrail 로그에 보안 주체 자격 증명 포함

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

중요

공유 리소스 수신자는 자신의 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" }, ... }
교차 계정 CloudTrail 로그ARNs에 보안 주체를 포함하도록 옵트인하려면
  1. 에서 Lake Formation 콘솔을 엽니다https://console.aws.amazon.com/lakeformation/.

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

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

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

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

  4. 저장(Save)을 선택합니다.

    이제 공유 리소스 수신자와 리소스 소유자 모두에 대해 로그에 저장된 교차 계정 CloudTrail 이벤트에 보안 주체 가 포함됩니다ARN.

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

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

를 사용하여 쿼리를 실행할 때 세션 이름 속성에서 Lake Formation CloudTrail 이벤트 및 S3 CloudTrail events에 조인할 Amazon Athena수 있습니다. 쿼리를 통해 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" } }

lakeFormationRoleSessionName 키 값인 는 S3 CloudTrail event principalId 키의 세션 이름과 조인할 AWSLF-00-GL-111122223333-B8JSAjo5QA수 있습니다. 다음은 S3 CloudTrail event의 발췌문입니다. 세션 이름의 위치를 보여줍니다.

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

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