View a markdown version of this page

에서 감사 로그 액세스 AWS CloudTrail - Amazon Managed Workflows for Apache Airflow

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

에서 감사 로그 액세스 AWS CloudTrail

AWS CloudTrail 는를 생성할 AWS 계정 때에서 활성화됩니다. CloudTrail은 IAM 엔터티 또는 Amazon Managed Workflows for Apache Airflow와 같은 AWS 서비스가 수행한 활동을 로깅하며, 이는 CloudTrail 이벤트로 기록됩니다. CloudTrail 콘솔에서 지난 90일 동안의 이벤트 기록을 확인, 검색 및 다운로드할 수 있습니다. CloudTrail은 Amazon MWAA 콘솔의 모든 이벤트와 Amazon MWAA API에 대한 모든 직접 호출을 캡처합니다. GetEnvironment 또는 PublishMetrics 작업과 같은 읽기 전용 작업은 캡처하지 않습니다. 이 페이지에서는 CloudTrail을 사용하여 Amazon MWAA에 대한 이벤트를 모니터링하는 방법을 설명합니다.

CloudTrail에서의 추적 생성

Amazon MWAA 이벤트를 AWS 계정포함하여에서 진행 중인 이벤트 레코드에 액세스하려면 추적을 생성해야 합니다. CloudTrail은 추적을 사용하여 Amazon S3 버킷으로 로그 파일을 전송할 수 있습니다. 추적을 생성하지 않은 경우에도 CloudTrail 콘솔에서 사용 가능한 이벤트 기록을 액세스할 수 있습니다. 예를 들면, CloudTrail에서 수집한 정보를 사용하여 Amazon MWAA에 제기된 요청, 요청이 제기된 IP 주소, 요청한 사람, 요청 시간 및 추가 세부 정보를 확인할 수 있습니다. 자세한 내용은 AWS 계정에 대한 추적 생성을 참조하세요.

데이터 영역 이벤트 로깅

데이터 영역 이벤트는 InvokeRestApi, CreateWebLoginToken및 Amazon MWAA API 작업입니다CreateCliToken. 관리 이벤트와 달리 AWS CloudTrail 는 기본적으로 데이터 이벤트를 로깅하지 않으며 CloudTrail 이벤트 기록에 표시되지 않습니다. 데이터 이벤트를 명시적으로 포함하는 추적을 구성해야 합니다. 추가 요금이 발생합니다. 자세한 내용은 AWS CloudTrail 사용 설명서의 데이터 이벤트 로깅을 참조하세요.

데이터 영역 이벤트를 로깅하려면
  1. CloudTrail 콘솔을 엽니다.

  2. 탐색 창에서 추적을 선택한 다음 추적 생성을 선택합니다.

  3. 추적 이름을 입력하고 로그 파일에 대한 Amazon S3 버킷을 구성합니다.

  4. 로그 이벤트 선택 페이지에서 데이터 이벤트를 선택합니다.

  5. 데이터 이벤트 유형에서 관리형 Apache Airflow를 선택합니다.

  6. 설정을 검토하고 추적 생성을 선택합니다.

추적이 활성화되면 CloudTrail은 약 15분 이내에 CreateWebLoginToken, 및 InvokeRestApi와 같은 데이터 영역 이벤트를 Amazon S3 버킷CreateCliToken에 전달합니다. Amazon CloudWatch Logs를 구성한 경우 다음 필터 패턴을 사용하여 이러한 이벤트를 찾습니다.

{ ($.eventName = "InvokeRestApi") || ($.eventName = "CreateWebLoginToken") || ($.eventName = "CreateCliToken") }
응답 페이로드가 로깅되지 않음

CloudTrail은 로그 항목의 RestApiResponse 필드를 수정합니다. CloudTrail은 호출과 상태 코드를 기록하지만 응답 페이로드를 기록하지 않습니다.

CloudTrail 이벤트 기록에서 이벤트 액세스

CloudTrail 콘솔에서 이벤트 기록을 확인하여 지난 90일 동안의 운영 및 보안 인시던트 문제를 해결할 수 있습니다. 예를 들어 리전 AWS 계정 별로에서 리소스(예: IAM 사용자 또는 기타 AWS 리소스)의 생성, 수정 또는 삭제와 관련된 이벤트에 액세스할 수 있습니다. 자세한 내용은 CloudTrail 이벤트 기록을 사용하여 이벤트 액세스를 참조하세요.

  1. CloudTrail 콘솔을 엽니다.

  2. 이벤트 기록을 선택합니다.

  3. 보고자 하는 이벤트를 선택한 다음, 이벤트 세부 정보 비교를 선택합니다.

CreateEnvironment의 트레일 예시

트레일이란 지정한 S3 버킷에 이벤트를 로그 파일로 입력할 수 있게 하는 구성입니다.

CloudTrail 로그 파일에는 하나 이상의 로그 항목이 포함될 수 있습니다. 이벤트는 모든 소스로부터의 단일 요청을 나타내며, 작업 날짜와 시간, 요청 파라미터 등 요청 작업에 관한 정보가 포함되어 있습니다. CloudTrail 로그 파일은 퍼블릭 API 호출에 대해 순서가 지정된 스택 추적이 아니며 특정 순서로 나열되지 않습니다. 다음 예는 권한 부족으로 인해 거부된 CreateEnvironment 작업에 대한 로그 항목입니다. AirflowConfigurationOptions의 값은 개인 정보 보호를 위해 수정된 것입니다.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "00123456ABC7DEF8HIJK", "arn": "arn:aws:sts::012345678901:assumed-role/root/myuser", "accountId": "012345678901", "accessKeyId": "", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "00123456ABC7DEF8HIJK", "arn": "arn:aws:iam::012345678901:role/user", "accountId": "012345678901", "userName": "user" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2020-10-07T15:51:52Z" } } }, "eventTime": "2020-10-07T15:52:58Z", "eventSource": "airflow.amazonaws.com", "eventName": "CreateEnvironment", "awsRegion": "us-west-2", "sourceIPAddress": "205.251.233.178", "userAgent": "PostmanRuntime/7.26.5", "errorCode": "AccessDenied", "requestParameters": { "SourceBucketArn": "arn:aws:s3:::my-bucket", "ExecutionRoleArn": "arn:aws:iam::012345678901:role/AirflowTaskRole", "AirflowConfigurationOptions": "***", "DagS3Path": "sample_dag.py", "NetworkConfiguration": { "SecurityGroupIds": [ "sg-01234567890123456" ], "SubnetIds": [ "subnet-01234567890123456", "subnet-65432112345665431" ] }, "Name": "test-cloudtrail" }, "responseElements": { "message": "Access denied." }, "requestID": "RequestID", "eventID": "EventID", "readOnly": false, "eventType": "AwsApiCall", "recipientAccountId": "012345678901" }

InvokeRestApi 로그 항목 예제

다음은 InvokeRestApi 작업에 대한 전체 로그 항목 예제입니다. CloudTrail은 RestApiResponse 필드를 수정합니다.

프로덕션 환경에서 임시 자격 증명 사용

이 예제는 권장되는 접근 방식인 수임된 역할의 임시 자격 증명을 보여줍니다. 프로덕션 워크로드의 경우 장기 액세스 키 대신 또는 AWS Security Token Service (AWS STS)의 임시 자격 증명을 사용합니다.

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "00123456ABC7DEF8HIJK:MySession", "arn": "arn:aws:sts::012345678901:assumed-role/MyRole/MySession", "accountId": "012345678901", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "00123456ABC7DEF8HIJK", "arn": "arn:aws:iam::012345678901:role/MyRole", "accountId": "012345678901", "userName": "MyRole" }, "attributes": { "creationDate": "2024-01-20T12:00:00Z", "mfaAuthenticated": "false" } } }, "eventTime": "2024-01-20T12:15:00Z", "eventSource": "airflow.amazonaws.com", "eventName": "InvokeRestApi", "awsRegion": "us-west-2", "sourceIPAddress": "203.0.113.10", "userAgent": "Boto3/1.28.0 Python/3.11.0", "requestParameters": { "Name": "MyAirflowEnvironment", "Path": "/dags", "Method": "GET" }, "responseElements": { "RestApiStatusCode": 200, "RestApiResponse": "***" }, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "readOnly": false, "resources": [ { "accountId": "012345678901", "type": "AWS::MWAA::Environment", "ARN": "arn:aws:airflow:us-west-2:012345678901:environment/MyAirflowEnvironment" } ], "eventType": "AwsApiCall", "managementEvent": false, "recipientAccountId": "012345678901", "eventCategory": "Data" }

다음 단계

  • CloudTrail 지원 AWS 서비스 및 통합의 CloudTrail 로그에서 수집된 이벤트 데이터에 대해 다른 서비스를 구성하는 방법을 알아봅니다. CloudTrail

  • CloudTrail이 Amazon S3 버킷에 새 로그 파일을 게시할 때 이에 대한 알림을 받는 방법을 CloudTrail에 대한 Amazon SNS 알림 구성에서 알아봅니다.