GCP 감사 로그를 Fluentd로 S3에 전송하기
다음 사용을 고려하세요 Fluent Bit Fluentd 대신 Panther로 로그를 전달하기 위해. 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을 클릭합니다
Subscription ID로 Panther-Audit을 입력합니다
Panther-Audit 토픽을 선택합니다
나머지 옵션은 그대로 두거나(원하는 지출/예산에 따라) 만료/보존을 조정합니다
CREATE를 클릭합니다
토픽 이름(projects/<project-name>/topics/Panther-Audit)과 토픽 구독(Panther-Audit)을 적어두세요—나중에 사용합니다.
2단계: 로그 라우터 생성

참고: 프로젝트 싱크 대신 조직 전체의 집계된 로그 싱크를 선택적으로 생성할 수 있습니다. 집계된 싱크 생성에 대해 자세히 알아보려면 Google 문서.
로깅 콘솔을 엽니다
Logs Router를 클릭합니다
CREATE SINK를 클릭합니다
이름을 Panther-Audit으로 설정합니다
Sink 대상(Sink Destination)을 설정합니다
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 역할 섹션에서 Step 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
마지막 업데이트
도움이 되었나요?

