Google Cloud Storage
이 문서에서는 Cloud Storage를 Google Security Operations의 SOAR 모듈과 통합하는 방법을 안내합니다.
이 통합은 오픈소스 구성요소를 하나 이상 사용합니다. Cloud Storage 버킷에서 이 통합의 소스 코드 사본을 다운로드할 수 있습니다.
사용 사례
Google SecOps SOAR 플랫폼에서 Google Cloud Storage 통합은 다음 사용 사례를 해결합니다.
사고 증거 저장소: 플레이북은 로그, 멀웨어 샘플과 같은 사고 관련 증거를 Cloud Storage 버킷에 자동으로 수집하고 저장하여 증거 보존을 위한 변조 방지 저장소를 제공할 수 있습니다.
위협 인텔리전스 공유: 보안팀은 Cloud Storage를 사용하여 악성 IP 주소 및 도메인 목록과 같은 위협 인텔리전스 피드를 다른 팀 또는 조직과 안전하게 공유할 수 있습니다. 피드를 공유하면 공동 위협 방어와 더 빠른 대응이 가능합니다.
멀웨어 분석 샌드박스 통합: 플레이북은 침해 사고의 의심스러운 파일을 클라우드 기반 멀웨어 분석 샌드박스에 자동으로 제출할 수 있습니다. 검토 및 추가 조치를 위해 분석 결과를 Cloud Storage에 저장하여 효율적이고 확장 가능한 멀웨어 분석을 제공할 수 있습니다.
보안 구성 백업: Google SecOps의 SOAR 기능을 사용하여 방화벽 규칙, 침입 감지 시스템 서명과 같은 중요한 보안 구성을 Cloud Storage에 정기적으로 백업합니다. 백업을 자동화하면 실수로 또는 악의적으로 변경된 경우 비즈니스 연속성을 제공하고 더 빠르게 복구할 수 있습니다.
피싱 캠페인 아티팩트 저장소: Google SecOps의 SOAR 기능을 사용하여 피싱 캠페인을 조사하는 동안 피싱 이메일, 첨부파일, 기타 아티팩트를 Cloud Storage에 저장합니다. 아티팩트 스토리지를 사용하면 잠재적인 법적 조치를 위해 증거를 중앙에서 분석하고 보존할 수 있습니다.
시작하기 전에
Google SecOps에서 Cloud Storage 통합을 구성하기 전에 다음 필수 단계를 완료하세요.
서비스 계정 만들기
서비스 계정을 만들려면 다음 단계를 완료하세요.
Google Cloud 콘솔에서 사용자 인증 정보로 이동합니다. 사용자 인증 정보로 이동
사용자 인증 정보 만들기 메뉴에서 서비스 계정을 선택합니다.
서비스 계정 이름 필드에 이름을 입력하고 만들고 계속하기를 클릭합니다.
계속 > 완료를 클릭하여 선택적인 역할 할당 및 주 구성원 액세스 화면을 건너뜁니다.
서비스 계정에 역할 부여
통합에서 스토리지 버킷과 객체에 액세스하고 이를 관리하도록 하려면 서비스 계정에 필요한 역할을 부여하세요.
Google Cloud 콘솔에서 IAM 및 관리자 > IAM으로 이동합니다.
서비스 계정을 찾아 수정주 구성원 수정을 클릭합니다.
다른 역할 추가를 클릭하고 다음을 선택합니다.
스토리지 관리자: 버킷과 객체를 관리할 수 있는 전체 권한을 제공합니다.
서비스 사용량 소비자: 결제 목적으로
Quota Project ID를 사용하는 경우에만 필요합니다.
저장을 클릭합니다.
인증 방법 선택 및 구성
워크로드 아이덴티티는 정적 보안 비밀 대신 수명이 짧은 토큰을 사용하므로 권장되는 인증 방법입니다.
JSON 키: 정적 보안 비밀 키 파일을 사용합니다.
워크로드 아이덴티티 (권장): 임시 액세스 토큰을 사용합니다.
JSON 키 구성
다음 절차에 따라 JSON 형식으로 서비스 계정 키 파일을 생성합니다.
Google Cloud 콘솔에서 서비스 계정을 선택하고 키로 이동합니다.
키 추가 > 새 키 만들기를 클릭합니다.
JSON을 선택하고 만들기를 클릭합니다. 키 파일이 컴퓨터에 다운로드됩니다.
워크로드 아이덴티티 사용자 인증 정보 구성
워크로드 아이덴티티를 사용하면 Google SecOps에서 서비스 계정을 안전하게 가장할 수 있습니다. 다음 단계에 따라 워크로드 아이덴티티를 구성합니다.
통합 인스턴스 구성
ID 검색 프로세스를 트리거하려면 먼저 Google SecOps에서 기본 연결 매개변수를 구성해야 합니다.
콘텐츠 허브 > 응답 통합으로 이동합니다.
Google Cloud Storage 통합을 검색하여 선택합니다.
다음 필수 매개변수를 구성합니다.
API 루트: 기준 URL (예:
https://storage.googleapis.com)을 입력합니다.워크로드 아이덴티티 이메일: 이전에 만든 서비스 계정의 이메일 주소를 입력합니다.
SSL 확인: 사용 설정되어 있는지 확인합니다.
사용자의 서비스 계정 (JSON) 필드는 비워 둡니다.
저장을 클릭합니다.
고유 ID 이메일 식별
Google SecOps는 특정 내부 주 구성원을 사용하여 Google Cloud 리소스와 통신하므로 특정 ID 주소를 식별하려면 연결 테스트를 트리거해야 합니다. 이 단계를 통해 올바른 백엔드 주 구성원에게 권한을 부여할 수 있습니다.
테스트를 클릭합니다. 테스트가 실패할 것으로 예상됩니다.
테스트 옆에 있는 close_small 버튼을 클릭합니다.
오류 메시지에서
gke-init-python@...또는soar-python@...로 시작하는 이메일 주소를 검색합니다. 이 고유한 이메일을 복사합니다.
가장 권한 부여
신뢰 관계를 설정하려면 서비스 계정을 대신하여 작업할 수 있는 권한을 고유 ID에 부여해야 합니다. 이 마지막 단계에서는 통합이 임시 단기 토큰을 사용하여 리소스에 액세스할 수 있는 보안 브리지를 설정합니다.
Google Cloud 콘솔에서 IAM 및 관리자 > 서비스 계정으로 이동합니다.
타겟 서비스 계정을 선택하고 권한으로 이동합니다.
액세스 권한 부여를 클릭합니다.
새 주 구성원 필드에 Google SecOps에서 복사한 고유 ID 이메일을 붙여넣습니다.
역할 할당 필드에서
Service Account Token Creator(roles/iam.serviceAccountTokenCreator) 역할을 선택합니다.저장을 클릭합니다.
Cloud Storage와 Google SecOps 통합
통합에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 |
|---|---|
Service Account |
선택사항
서비스 계정 JSON 키 파일의 전체 콘텐츠입니다. |
Workload Identity Email |
선택사항.
워크로드 아이덴티티 명의 도용에 사용되는 서비스 계정의 클라이언트 이메일 주소입니다. |
Project ID |
선택사항 Cloud Storage 통합에 사용할 프로젝트 ID입니다. 이 매개변수의 값을 설정하지 않으면 |
Quota Project ID |
선택사항 Google Cloud API 및 결제에 사용하는 Google Cloud 프로젝트 ID입니다. 이 매개변수를 사용하려면 서비스 계정에 값이 제공되지 않으면 프로젝트 ID가 |
Google SecOps에서 통합을 구성하는 방법에 대한 안내는 통합 구성을 참고하세요.
필요한 경우 이후 단계에서 변경할 수 있습니다. 통합 인스턴스를 구성한 후 플레이북에서 사용할 수 있습니다. 여러 인스턴스를 구성하고 지원하는 방법에 관한 자세한 내용은 여러 인스턴스 지원을 참고하세요.
작업
작업에 대한 자세한 내용은 내 Workdesk에서 대기 중인 작업에 응답 및 직접 조치 실행을 참고하세요.
버킷에서 객체 다운로드
이 작업을 사용하여 Cloud Storage 버킷에서 특정 객체 (파일)를 다운로드합니다.
이 작업은 항목에서 실행되지 않습니다.
작업 입력
버킷에서 객체 다운로드 작업에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 |
|---|---|
Bucket Name |
필수 다운로드할 객체가 포함된 Cloud Storage 버킷의 이름입니다. |
Object Name |
필수 다운로드할 객체의 전체 이름입니다. 객체가 버킷의 폴더 내에 있는 경우 폴더 경로(예: |
Download Path |
필수 다운로드된 객체의 절대 경로입니다. 기존 디렉터리로 연결됩니다(예: |
작업 출력
버킷에서 객체 다운로드 작업은 다음 출력을 제공합니다.
| 작업 출력 유형 | 가용성 |
|---|---|
| 케이스 월 연결 | 사용 불가 |
| 케이스 월 링크 | 사용 불가 |
| 케이스 월 테이블 | 사용 불가 |
| 보강 테이블 | 사용 불가 |
| JSON 결과 | 사용 가능 |
| 출력 메시지 | 사용 가능 |
| 스크립트 결과 | 사용 가능 |
JSON 결과
다음 예에서는 버킷에서 객체 다운로드 작업을 사용할 때 수신되는 JSON 결과 출력을 설명합니다.
{
"object_name": "123.txt"
"download_path": "/usr/bin/share/download.txt"
}
출력 메시지
케이스 월에서 버킷에서 객체 다운로드 작업은 다음 출력 메시지를 제공합니다.
| 출력 메시지 | 메시지 설명 |
|---|---|
|
작업이 완료되었습니다. |
Error executing action "Download an Object From a Bucket".
Reason: ERROR_REASON |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에서는 버킷에서 객체 다운로드 작업을 사용할 때 스크립트 결과 출력의 값을 설명합니다.
| 스크립트 결과 이름 | 값 |
|---|---|
is_success |
True 또는 False |
버킷의 액세스 제어 목록 가져오기
버킷의 액세스 제어 목록 가져오기 작업을 사용하여 지정된 Cloud Storage 버킷의 ACL을 가져와 표시합니다.
이 작업은 항목에서 실행되지 않습니다.
작업 입력
버킷의 액세스 제어 목록 가져오기 작업에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 |
|---|---|
Bucket Name |
필수 ACL을 가져오려는 Cloud Storage 버킷의 이름입니다. 여러 버킷의 ACL을 가져오려면 버킷 이름을 쉼표로 구분된 문자열로 입력합니다(예: |
작업 출력
버킷의 액세스 제어 목록 가져오기 작업은 다음과 같은 출력을 제공합니다.
| 작업 출력 유형 | 가용성 |
|---|---|
| 케이스 월 연결 | 사용 불가 |
| 케이스 월 링크 | 사용 불가 |
| 케이스 월 테이블 | 사용 불가 |
| 보강 테이블 | 사용 불가 |
| JSON 결과 | 사용 불가 |
| 출력 메시지 | 사용 가능 |
| 스크립트 결과 | 사용 가능 |
JSON 결과
[
{"BucketName": "ziv",
"BucketACLs": [
{"Entity": "project-owners-ID",
"Role": "OWNER"}
]
}
]
출력 메시지
케이스 월에서 버킷의 액세스 제어 목록 가져오기 작업은 다음 출력 메시지를 제공합니다.
| 출력 메시지 | 메시지 설명 |
|---|---|
|
작업이 완료되었습니다. |
Error executing action "Get a Bucket's Access Control List".
Reason:
ERROR_REASON |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에서는 '버킷의 액세스 제어 목록 가져오기' 작업을 사용할 때 스크립트 결과 출력의 값을 설명합니다.
| 스크립트 결과 이름 | 값 |
|---|---|
is_success |
True 또는 False |
버킷 객체 나열
버킷 객체 나열 작업을 사용하여 Cloud Storage 버킷에 저장된 객체를 나열합니다.
이 작업은 항목에서 실행되지 않습니다.
작업 입력
버킷 객체 나열 작업에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 |
|---|---|
Bucket Name |
필수 객체를 가져올 버킷의 이름입니다. |
Max Objects to Return |
선택사항 반환할 객체 수입니다. 기본적으로 작업은 작업 실행마다 50개의 객체를 반환합니다. |
Retrieves the Access Control List of an object |
선택사항 선택하면 작업이 객체 ACL을 가져옵니다. 기본적으로 선택되지 않습니다. |
작업 출력
버킷 객체 나열 작업은 다음 출력을 제공합니다.
| 작업 출력 유형 | 가용성 |
|---|---|
| 케이스 월 연결 | 사용 불가 |
| 케이스 월 링크 | 사용 불가 |
| 케이스 월 테이블 | 사용 불가 |
| 보강 테이블 | 사용 불가 |
| JSON 결과 | 사용 가능 |
| 출력 메시지 | 사용 가능 |
| 스크립트 결과 | 사용 가능 |
JSON 결과
다음 예에서는 버킷 객체 나열 작업을 사용할 때 수신되는 JSON 결과 출력을 설명합니다.
Retrieves the Access Control List of an object매개변수를 선택하지 않은 경우:{ "Objects": [ { "ObjectName": "test.txt", "Bucket": "ContentType": "TimeCreated": " ", "TimeUpdated": " ", "Size": 18, "MD5": "7CjVfQ+Oz/C0pI08IKRdvQ==", "Owner": "", "CR32c": "RQEqxA==", "id": "siemplify-tip/test.txt/1604926667310271" } ] }Retrieves the Access Control List of an object매개변수를 선택한 경우:{ "Objects": [ { "ObjectName": "test.txt", "Bucket": "BUCKET_NAME", "ContentType": "text/plain" "TimeCreated": " ", "TimeUpdated": " ", "Size": 18, "MD5": "7CjVfQ+Oz/C0pI08IKRdvQ==", "Owner": "", "CR32c": "RQEqxA==", "id": "BUCKET_NAME/test.txt/1604926667310271", "ObjectACL": [ { "entity": "user@example.com", "role": "OWNER" }] }, ] }
출력 메시지
케이스 월에서 버킷 객체 나열 작업은 다음 출력 메시지를 제공합니다.
| 출력 메시지 | 메시지 설명 |
|---|---|
|
작업이 완료되었습니다. |
Error executing action "List Bucket Objects". Reason:
ERROR_REASON |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에서는 버킷 객체 나열 작업을 사용할 때 스크립트 결과 출력의 값을 설명합니다.
| 스크립트 결과 이름 | 값 |
|---|---|
is_success |
True 또는 False |
버킷 나열
버킷 나열 작업을 사용하여 Cloud Storage에서 버킷 목록을 가져옵니다.
이 작업은 항목에서 실행되지 않습니다.
작업 입력
버킷 나열 작업에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 |
|---|---|
Max Results |
선택사항 반환할 최대 버킷 수입니다. 기본적으로 이 작업은 50개의 버킷을 반환합니다. |
작업 출력
버킷 나열 작업은 다음 출력을 제공합니다.
| 작업 출력 유형 | 가용성 |
|---|---|
| 케이스 월 연결 | 사용 불가 |
| 케이스 월 링크 | 사용 불가 |
| 케이스 월 테이블 | 사용 불가 |
| 보강 테이블 | 사용 불가 |
| JSON 결과 | 사용 가능 |
| 출력 메시지 | 사용 가능 |
| 스크립트 결과 | 사용 가능 |
JSON 결과
다음 예시는 버킷 나열 작업을 사용할 때 수신되는 JSON 결과 출력을 설명합니다.
{
"Buckets": [
{
"CreationDate": "2020-11-09T12:57:03.981Z",
"ModificationDate": "2020-11-09T12:57:03.981Z",
"Name": "testexample",
"Owner": "testexample"
}]
}
출력 메시지
케이스 월에서 목록 버킷 작업은 다음 출력 메시지를 제공합니다.
| 출력 메시지 | 메시지 설명 |
|---|---|
|
작업이 완료되었습니다. |
Error executing action "List Buckets". Reason:
ERROR_REASON |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에서는 버킷 나열 작업을 사용할 때 스크립트 결과 출력의 값을 설명합니다.
| 스크립트 결과 이름 | 값 |
|---|---|
is_success |
True 또는 False |
핑
핑 작업을 사용하여 Cloud Storage와의 연결을 테스트합니다.
이 작업은 항목에서 실행되지 않습니다.
작업 입력
없음
작업 출력
이 작업은 다음 출력을 제공합니다.
| 작업 출력 유형 | 가용성 |
|---|---|
| 케이스 월 연결 | 사용 불가 |
| 케이스 월 링크 | 사용 불가 |
| 케이스 월 테이블 | 사용 불가 |
| 보강 테이블 | 사용 불가 |
| JSON 결과 | 사용 불가 |
| 출력 메시지 | 사용 가능 |
| 스크립트 결과 | 사용 가능 |
출력 메시지
케이스 월에서 핑 작업은 다음과 같은 출력 메시지를 제공합니다.
| 출력 메시지 | 메시지 설명 |
|---|---|
Successfully connected to the Google Cloud Storage server with
the provided connection parameters! |
작업이 완료되었습니다. |
Failed to connect to the Google Cloud Storage server! Error is
ERROR_REASON |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에서는 Ping 작업을 사용할 때 스크립트 결과 출력의 값을 설명합니다.
| 스크립트 결과 이름 | 값 |
|---|---|
is_success |
True 또는 False |
버킷에서 공개 액세스 삭제
버킷에서 공개 액세스 삭제 작업을 사용하여 Cloud Storage 버킷에서 공개 액세스를 삭제합니다.
이 작업을 수행하려면 통합에서 사용하는 서비스 계정에 Storage Admin 역할을 부여해야 합니다.
이 작업은 항목에서 실행되지 않습니다.
작업 입력
버킷에서 공개 액세스 삭제 작업에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 |
|---|---|
Resource Name |
필수 버킷의 리소스 이름입니다. |
Prevent Public Access From Bucket |
필수 선택하면 작업에서 가능한 공개 액세스를 방지하도록 버킷을 구성합니다. |
작업 출력
버킷에서 공개 액세스 삭제 작업은 다음 출력을 제공합니다.
| 작업 출력 유형 | 가용성 |
|---|---|
| 케이스 월 연결 | 사용 불가 |
| 케이스 월 링크 | 사용 불가 |
| 케이스 월 테이블 | 사용 불가 |
| 보강 테이블 | 사용 불가 |
| JSON 결과 | 사용 불가 |
| 출력 메시지 | 사용 가능 |
| 스크립트 결과 | 사용 가능 |
출력 메시지
케이스 월에서 버킷에서 공개 액세스 삭제 작업은 다음 출력 메시지를 제공합니다.
| 출력 메시지 | 메시지 설명 |
|---|---|
Successfully removed public access from bucket using Google
Cloud Storage: RESOURCE_NAME
|
작업이 완료되었습니다. |
Error executing action "Remove Public Access From Bucket".
Reason: ERROR_REASON |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에서는 버킷에서 공개 액세스 권한 삭제 작업을 사용할 때 스크립트 결과 출력의 값을 설명합니다.
| 스크립트 결과 이름 | 값 |
|---|---|
is_success |
True 또는 False |
버킷의 ACL 항목 업데이트
버킷의 ACL 항목 업데이트 작업을 사용하여 지정된 Cloud Storage 버킷의 ACL 항목을 업데이트합니다.
작업 입력
버킷의 ACL 항목 업데이트 작업에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 |
|---|---|
Bucket Name |
필수 ACL을 수정할 버킷의 이름입니다. |
Entity |
필수 권한을 보유한 항목입니다. 가능한 값은 다음과 같습니다.
엔티티에 관한 자세한 내용은 리소스 표현을 참고하세요. |
Role |
필수 엔티티에 필요한 액세스 권한입니다. 다음 값이 가능합니다.
|
작업 출력
버킷의 ACL 항목 업데이트 작업은 다음과 같은 출력을 제공합니다.
| 작업 출력 유형 | 가용성 |
|---|---|
| 케이스 월 연결 | 사용 불가 |
| 케이스 월 링크 | 사용 불가 |
| 케이스 월 테이블 | 사용 불가 |
| 보강 테이블 | 사용 불가 |
| JSON 결과 | 사용 불가 |
| 출력 메시지 | 사용 가능 |
| 스크립트 결과 | 사용 가능 |
출력 메시지
케이스 월에서 버킷의 ACL 항목 업데이트 작업은 다음과 같은 출력 메시지를 제공합니다.
| 출력 메시지 | 메시지 설명 |
|---|---|
|
작업이 완료되었습니다. 기존 역할이 Role 파라미터 값과 일치하지 않습니다. Role 파라미터 값을 확인합니다. |
Successfully updated ACL entity:
ENTITY to role:
ROLE in bucket
BUCKET_NAME. |
작업이 완료되었습니다. |
|
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에서는 버킷의 ACL 항목 업데이트 작업을 사용할 때 스크립트 결과 출력의 값을 설명합니다.
| 스크립트 결과 이름 | 값 |
|---|---|
is_success |
True 또는 False |
버킷에 객체 업로드
버킷에 객체 업로드 작업을 사용하여 Cloud Storage 버킷에 객체를 업로드합니다.
이 작업은 항목에서 실행되지 않습니다.
작업 입력
버킷에 객체 업로드 작업에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 |
|---|---|
Bucket Name |
필수 객체를 업로드할 버킷의 이름입니다. |
Source File Path |
필수 업로드할 파일의 절대 경로입니다(예: |
Object Name |
필수 버킷에 업로드된 객체의 이름입니다. |
작업 출력
버킷에 객체 업로드 작업은 다음 출력을 제공합니다.
| 작업 출력 유형 | 가용성 |
|---|---|
| 케이스 월 연결 | 사용 불가 |
| 케이스 월 링크 | 사용 불가 |
| 케이스 월 테이블 | 사용 불가 |
| 보강 테이블 | 사용 불가 |
| JSON 결과 | 사용 가능 |
| 출력 메시지 | 사용 가능 |
| 스크립트 결과 | 사용 가능 |
JSON 결과
{
"object_id":"BUCKET_NAME/errorlog.txt/1610616919132517",
"Object_name":"errorlog.txt",
"md5_hash":"PTdL8D6pBwIKyMfIXR/H9A==",
"object_path":"/b/BUCKET_NAME/o/errorlog.txt"
}
출력 메시지
케이스 월에서 버킷에 객체 업로드 작업은 다음과 같은 출력 메시지를 제공합니다.
| 출력 메시지 | 메시지 설명 |
|---|---|
|
작업이 완료되었습니다. |
Error executing action "Upload an Object To a Bucket". Reason:
ERROR_REASON |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에서는 버킷에 객체 업로드 작업을 사용할 때 스크립트 결과 출력의 값을 설명합니다.
| 스크립트 결과 이름 | 값 |
|---|---|
is_success |
True 또는 False |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.