GCP 감사 로그를 Fluentd를 통해 S3로 전달하기
다음을 사용하는 것을 고려하세요 Fluent Bit 로그를 Panther로 전달하기 위해 Fluentd 대신 Fluent Bit을 사용하세요. Fluent Bit은 설정이 더 쉽고 Fluentd보다 자원 소모가 적습니다.
목표
이 레시피의 목적은 Google Cloud 프로젝트 감사 로그를 Panther로 스트리밍하는 것입니다. 많은 기업이 여러 클라우드 제공업체를 사용하며, 이 단계들은 GCP 계정에서 발생하는 API 호출을 Panther로 수집할 수 있도록 합니다.
우리는 GCP와 AWS 전반의 여러 기본 구성요소를 조합하여 이를 구현할 것입니다.
솔루션 요약
높은 수준에서 다음 흐름을 구현할 것입니다:
감사 로그가 GCP에서 생성되어 Pub/Sub로 라우팅됩니다
Fluentd가 Pub/Sub를 폴링하고 S3 버킷으로 전달합니다
S3 버킷이 정규화, 탐지 및 장기 저장을 위해 Panther에 온보드됩니다
단계
1단계: 새로운 Pub/Sub 생성

GCP에서 Pub/Sub 콘솔을 엽니다
새 토픽을 생성하고 이름을 Panther-Audit로 지정합니다
'기본 구독 추가'의 선택을 해제합니다
CREATE TOPIC을 선택합니다
Subscriptions > Create subscription을 클릭합니다
구독 ID로 Panther-Audit을 입력합니다
Panther-Audit 토픽을 선택합니다
다른 옵션은 그대로 두거나(원하는 지출/예산에 따라) 만료/보존을 조정합니다
CREATE를 클릭합니다
토픽 이름(projects/<project-name>/topics/Panther-Audit)과 토픽 구독(Panther-Audit)을 적어두세요—나중에 사용합니다.
2단계: 로그 라우터 생성

참고: 프로젝트 싱크 대신 집계된 조직 로그 싱크를 선택적으로 생성할 수 있습니다. 집계된 싱크 생성에 대해 자세히 알아보려면 Google 문서.
Logging 콘솔을 엽니다
Logs Router를 클릭합니다
CREATE SINK를 클릭합니다
이름을 Panther-Audit로 설정합니다
Sink 대상지를 설정합니다
Cloud Pub/Sub 토픽
Panther-Audit 토픽을 선택합니다
CREATE SINK를 클릭합니다
이 파이프라인이 작동하는지 확인하려면 Pub/Sub로 가서 Panther-Audit의 토픽 ID를 클릭하고 ACTIVITY를 확인하여 감사 이벤트를 확인할 수 있습니다.

3단계: 서비스 계정 생성
IAM 및 관리자(IAM & Admin)를 엽니다
Service Accounts를 클릭합니다
CREATE SERVICE ACCOUNT를 클릭합니다
서비스 계정 이름을 Panther-Audit로 설정합니다. 원하면 설명을 추가하세요.
Create and Continue를 클릭합니다
아래의 이 서비스 계정에 프로젝트 접근 권한을 부여합니다 , 서비스 계정 접근 역할을 다음으로 설정합니다 Pub/Sub Viewer 및 Pub/Sub Subscriber
Continue를 클릭합니다
Done을 클릭합니다
Service accounts -> Actions 아래에서 Manage keys를 클릭하고, ADD KEY, Create new key를 선택한 다음 JSON을 선택하고 CREATE를 눌러 자격증명 파일을 다운로드합니다.
이 자격증명 파일을 안전하게 보관하세요! 곧 사용합니다.

4단계: AWS 인프라 구성
다음 Fluentd 온보딩 가이드 , 검토하고 배포할 Firehose & S3 스택.
5단계: AWS에서 인스턴스 실행
AWS EC2 콘솔(위에서 스택을 시작한 것과 동일한 리전)으로 이동하여 Ubuntu 인스턴스를 실행합니다.
Launch Instance를 클릭합니다
선택하세요 Ubuntu Server 20.04 LTS
선택하세요 t2.medium (또는 원하면 더 강력한 인스턴스 유형)
IAM 역할 섹션에서, 4단계에서 복사한 InstanceProfileName 값을 선택합니다(형식: “<stack-name>-FirehoseInstanceProfile-<random-string>”).
Add Storage를 클릭하고 64GiB 용량의 드라이브를 추가합니다
원하는 대로 보안 그룹, 키 페어 및 기타 환경설정을 설정합니다
Launch를 클릭합니다
6단계: Fluentd 설치 및 구성
키페어를 ssh 에이전트에 추가합니다
ssh-add <path-to-keypair>
3단계에서 다운로드한 GCP 자격증명 파일을 인스턴스로 SCP합니다
scp <path-to-gcp-cred-file> ubuntu@<public-ip>:/home/ubuntu/
새로 시작한 EC2 인스턴스에 SSH로 접속합니다
ssh ubuntu@<public-ip>
Ubuntu Focal에 대한 지침을 따르세요
다음 플러그인을 설치합니다 공식 AWS Kinesis 플러그인
sudo td-agent-gem install fluent-plugin-kinesis
GCP 플러그인을 설치합니다
sudo td-agent-gem install fluent-plugin-gcloud-pubsub-custom
기본 fluentd 구성을 다음 위치에 덮어씁니다
/etc/td-agent/td-agent.conf:재시작
td-agentsudo systemctl restart td-agent
7단계: 데이터를 Panther로 온보드
다음 때문에 GCP 감사 로그 은 기본적으로 지원되므로, S3 버킷을 데이터 전송으로 구성하여 Panther를 통해 로그 수집을 시작할 수 있습니다.
문제 해결
참고: CloudFormation 템플릿 내의
IntervalInSeconds및SizeInMBs파라미터 때문에 로그가 S3 버킷에 표시되는 데 ~5분 정도 걸릴 수 있습니다.td-agent 로그에서 오류가 있는지 모니터링하세요
sudo tail -f /var/log/td-agent/td-agent.log
더 자세한 로깅이 필요하면 다음을 실행하세요:
td-agent -vv
Last updated
Was this helpful?

