Oracle Cloud Infrastructure 감사 로그 수집
이 문서에서는 Amazon S3를 사용하여 Oracle Cloud Infrastructure 감사 로그를 Google Security Operations로 수집하는 방법을 설명합니다.
시작하기 전에
다음 기본 요건이 충족되었는지 확인합니다.
- Google SecOps 인스턴스
- 다음 항목을 만들고 관리할 수 있는 권한이 있는 Oracle Cloud Infrastructure 계정
- Service Connector Hub
- Oracle Functions
- 보관소 및 보안 비밀
- 동적 그룹 및 IAM 정책
- 로깅
- 다음 항목을 만들고 관리할 수 있는 권한이 있는 AWS 계정
- S3 버킷
- IAM 사용자 및 정책
Amazon S3 버킷 만들기
- AWS 관리 콘솔에 로그인합니다.
- S3 > 버킷 만들기로 이동합니다.
- 다음 구성 세부정보를 제공합니다.
- 버킷 이름: 고유한 이름 (예:
oci-audit-logs-bucket)을 입력합니다. - AWS 리전: 리전을 선택합니다 (예:
us-east-1). - 다른 옵션은 기본 설정을 유지합니다.
- 버킷 이름: 고유한 이름 (예:
- 버킷 만들기를 클릭합니다.
- 나중에 사용할 수 있도록 버킷 이름과 리전을 저장합니다.
OCI Functions용 AWS에서 IAM 사용자 만들기
- AWS 관리 콘솔에 로그인합니다.
- IAM > 사용자 > 사용자 추가로 이동합니다.
- 다음 구성 세부정보를 제공합니다.
- 사용자 이름: 사용자 이름을 입력합니다 (예:
oci-functions-s3-user). - 액세스 유형: 액세스 키 - 프로그래매틱 액세스를 선택합니다.
- 사용자 이름: 사용자 이름을 입력합니다 (예:
- 다음: 권한을 클릭합니다.
- 기존 정책 직접 연결을 클릭합니다.
- AmazonS3FullAccess 정책을 검색하여 선택합니다.
- 다음: 태그를 클릭합니다.
- 다음: 검토를 클릭합니다.
- 사용자 만들기를 클릭합니다.
- 중요: 성공 페이지에서 다음 사용자 인증 정보를 복사하여 저장합니다.
- 액세스 키 ID
- 보안 비밀 액세스 키
OCI Vault에 AWS 사용자 인증 정보 저장
AWS 사용자 인증 정보를 안전하게 저장하려면 함수 코드에 하드코딩하는 대신 Oracle Cloud Infrastructure Vault를 사용해야 합니다.
보관함 및 마스터 암호화 키 만들기
- Oracle Cloud Console에 로그인합니다.
- ID 및 보안 > 볼트로 이동합니다.
- Vault가 없으면 Vault 만들기를 클릭합니다.
- 다음 구성 세부정보를 제공합니다.
- Create in Compartment(구획에서 만들기): 구획을 선택합니다.
- 이름: 이름을 입력합니다 (예:
oci-functions-vault).
- 보관 파일 만들기를 클릭합니다.
- 보관소를 만든 후 보관소 이름을 클릭하여 엽니다.
- 마스터 암호화 키에서 키 만들기를 클릭합니다.
- 다음 구성 세부정보를 제공합니다.
- 보호 모드: 소프트웨어
- 이름: 이름을 입력합니다 (예:
oci-functions-key). - 키 모양: 알고리즘: AES
- 키 모양: 길이: 256비트
- 키 만들기를 클릭합니다.
AWS 사용자 인증 정보의 보안 비밀 만들기
- 보관함의 보안 비밀에서 보안 비밀 만들기를 클릭합니다.
- AWS 액세스 키에 대해 다음 구성 세부정보를 제공합니다.
- Create in Compartment(구획에서 만들기): 구획을 선택합니다.
- 이름:
aws-access-key - 설명: S3용 AWS 액세스 키
- 암호화 키: 생성한 마스터 암호화 키를 선택합니다.
- 보안 비밀 유형 콘텐츠: 일반 텍스트
- Secret Contents(보안 비밀 콘텐츠): AWS 액세스 키 ID를 붙여넣습니다.
- 보안 비밀 만들기를 클릭합니다.
- 이 보안 비밀의 OCID를 복사하여 저장합니다 (
ocid1.vaultsecret.oc1...와 유사함). - 보안 비밀 만들기를 다시 클릭하여 두 번째 보안 비밀을 만듭니다.
- AWS 보안 비밀 키에 대한 다음 구성 세부정보를 제공합니다.
- Create in Compartment(구획에서 만들기): 구획을 선택합니다.
- 이름:
aws-secret-key - 설명: S3용 AWS 보안 키
- 암호화 키: 동일한 마스터 암호화 키를 선택합니다.
- Secret Type Contents: Plain-Text
- Secret Contents(보안 비밀 콘텐츠): AWS 보안 비밀 액세스 키를 붙여넣습니다.
- 보안 비밀 만들기를 클릭합니다.
- 이 보안 비밀의 OCID를 복사하여 저장합니다.
OCI 함수용 동적 그룹 만들기
- Oracle Cloud Console에 로그인합니다.
- ID 및 보안 > ID > 동적 그룹으로 이동합니다.
- 동적 그룹 만들기를 클릭합니다.
다음 구성 세부정보를 제공합니다.
- 이름:
oci-functions-dynamic-group - 설명: OCI 함수가 Vault 보안 비밀에 액세스하는 데 사용되는 동적 그룹
일치 규칙: 다음 규칙을 입력합니다 (
<your_compartment_ocid>을 컴파트먼트 OCID로 바꿈).ALL {resource.type = 'fnfunc', resource.compartment.id = '<your_compartment_ocid>'}
- 이름:
만들기를 클릭합니다.
Vault 액세스를 위한 IAM 정책 만들기
- Oracle Cloud Console에 로그인합니다.
- ID 및 보안 > ID > 정책으로 이동합니다.
- 정책을 만들 컴파트먼트를 선택합니다.
- 정책 만들기를 클릭합니다.
다음 구성 세부정보를 제공합니다.
- 이름:
oci-functions-vault-access-policy - 설명: OCI Functions가 Vault에서 보안 비밀을 읽도록 허용
- 정책 빌더: 수동 편집기 표시를 전환합니다.
정책 설명문: 다음을 입력합니다 (
<compartment_name>을 컴파트먼트 이름으로 바꿈).allow dynamic-group oci-functions-dynamic-group to manage secret-family in compartment <compartment_name>
- 이름:
만들기를 클릭합니다.
OCI 함수 애플리케이션 만들기
- Oracle Cloud Console에 로그인합니다.
- 개발자 서비스 > 애플리케이션 (함수 아래)으로 이동합니다.
- 애플리케이션 만들기를 클릭합니다.
- 다음 구성 세부정보를 제공합니다.
- 이름: 이름을 입력합니다 (예:
oci-logs-to-s3-app). - VCN: 컴파트먼트에서 VCN을 선택합니다.
- 서브넷: 하나 이상의 서브넷을 선택합니다.
- 이름: 이름을 입력합니다 (예:
- 만들기를 클릭합니다.
OCI 함수 만들기 및 배포
Cloud Shell 설정 (권장)
- Oracle Cloud 콘솔의 오른쪽 상단에 있는 Cloud Shell 아이콘을 클릭합니다.
- Cloud Shell이 초기화될 때까지 기다립니다.
함수 만들기
Cloud Shell에서 함수를 위한 새 디렉터리를 만듭니다.
mkdir pushlogs cd pushlogs새 Python 함수를 초기화합니다.
fn init --runtime python이렇게 하면
func.py,func.yaml,requirements.txt의 세 파일이 생성됩니다.
func.py 업데이트
func.py의 내용을 다음 코드로 바꿉니다.import io import json import logging import boto3 import oci import base64 import os from fdk import response def handler(ctx, data: io.BytesIO = None): """ OCI Function to push audit logs from OCI Logging to AWS S3 """ try: # Parse incoming log data from Service Connector funDataStr = data.read().decode('utf-8') funData = json.loads(funDataStr) logging.getLogger().info(f"Received {len(funData)} log entries") # Replace these with your actual OCI Vault secret OCIDs secret_key_id = "ocid1.vaultsecret.oc1..<your_secret_key_ocid>" access_key_id = "ocid1.vaultsecret.oc1..<your_access_key_ocid>" # Replace with your S3 bucket name s3_bucket_name = "oci-audit-logs-bucket" # Use Resource Principals for OCI authentication signer = oci.auth.signers.get_resource_principals_signer() secret_client = oci.secrets.SecretsClient({}, signer=signer) def read_secret_value(secret_client, secret_id): """Retrieve and decode secret value from OCI Vault""" response = secret_client.get_secret_bundle(secret_id) base64_secret_content = response.data.secret_bundle_content.content base64_secret_bytes = base64_secret_content.encode('ascii') base64_message_bytes = base64.b64decode(base64_secret_bytes) secret_content = base64_message_bytes.decode('ascii') return secret_content # Retrieve AWS credentials from OCI Vault awsaccesskey = read_secret_value(secret_client, access_key_id) awssecretkey = read_secret_value(secret_client, secret_key_id) # Initialize boto3 session with AWS credentials session = boto3.Session( aws_access_key_id=awsaccesskey, aws_secret_access_key=awssecretkey ) s3 = session.resource('s3') # Process each log entry for i in range(0, len(funData)): # Use timestamp as filename filename = funData[i].get('time', f'log_{i}') # Remove special characters from filename filename = filename.replace(':', '-').replace('.', '-') logging.getLogger().info(f"Processing log entry: {filename}") # Write log entry to temporary file temp_file = f'/tmp/{filename}.json' with open(temp_file, 'w', encoding='utf-8') as f: json.dump(funData[i], f, ensure_ascii=False, indent=4) # Upload to S3 s3_key = f'{filename}.json' s3.meta.client.upload_file( Filename=temp_file, Bucket=s3_bucket_name, Key=s3_key ) logging.getLogger().info(f"Uploaded {s3_key} to S3 bucket {s3_bucket_name}") # Clean up temporary file os.remove(temp_file) return response.Response( ctx, response_data=json.dumps({ "status": "success", "processed_logs": len(funData) }), headers={"Content-Type": "application/json"} ) except Exception as e: logging.getLogger().error(f"Error processing logs: {str(e)}") return response.Response( ctx, response_data=json.dumps({ "status": "error", "message": str(e) }), headers={"Content-Type": "application/json"}, status_code=500 )secret_key_id를 AWS 보안 비밀 키의 실제 볼트 보안 비밀 OCID로 바꿉니다.access_key_id를 AWS 액세스 키의 실제 볼트 보안 비밀 OCID로 바꿉니다.s3_bucket_name을 실제 S3 버킷 이름으로 바꿉니다.
func.yaml 업데이트
func.yaml의 내용을 다음으로 바꿉니다.
schema_version: 20180708
name: pushlogs
version: 0.0.1
runtime: python
build_image: fnproject/python:3.9-dev
run_image: fnproject/python:3.9
entrypoint: /python/bin/fdk /function/func.py handler
memory: 256
requirements.txt 업데이트
requirements.txt의 내용을 다음으로 바꿉니다.fdk>=0.1.56 boto3 oci
함수 배포하기
애플리케이션을 사용하도록 Fn 컨텍스트를 설정합니다.
fn use context <region-context> fn update context oracle.compartment-id <compartment-ocid>함수를 배포합니다.
fn -v deploy --app oci-logs-to-s3-app배포가 완료될 때까지 기다립니다. 함수가 성공적으로 배포되었음을 나타내는 출력이 표시됩니다.
함수가 생성되었는지 확인합니다.
fn list functions oci-logs-to-s3-app
OCI 감사 로그를 함수로 전송하는 서비스 커넥터 만들기
- Oracle Cloud Console에 로그인합니다.
- 분석 및 AI > 메시지 > 서비스 커넥터 허브로 이동합니다.
- 서비스 커넥터를 만들려는 컴파트먼트를 선택합니다.
- 서비스 커넥터 만들기를 클릭합니다.
서비스 커넥터 세부정보 구성
- 다음 구성 세부정보를 제공합니다.
서비스 커넥터 정보:
* 커넥터 이름: 설명이 포함된 이름을 입력합니다 (예: audit-logs-to-s3-connector).
* 설명: 선택사항 설명 (예: 'OCI 감사 로그를 AWS S3로 전달')
* 리소스 컴파트먼트: 컴파트먼트를 선택합니다.
소스 구성
- 소스 구성에서 다음 단계를 따르세요.
- 소스: 로깅을 선택합니다.
- 컴파트먼트: 감사 로그가 포함된 컴파트먼트를 선택합니다.
- 로그 그룹:
_Audit를 선택합니다 (감사 로그의 기본 로그 그룹임). - 로그: + 다른 로그를 클릭합니다.
- 구획의 감사 로그를 선택합니다 (예:
_Audit_Include_Subcompartment).
타겟 구성
- 타겟 구성에서 다음을 수행합니다.
- 타겟: 함수를 선택합니다.
- Compartment: 함수 애플리케이션이 포함된 컴파트먼트를 선택합니다.
- 함수 애플리케이션:
oci-logs-to-s3-app(이전에 만든 애플리케이션)을 선택합니다. - 함수:
pushlogs(배포한 함수)를 선택합니다.
정책 구성
정책 구성에서 다음을 수행합니다.
- 표시된 필수 IAM 정책 문을 검토합니다.
- 만들기를 클릭하여 필수 정책을 자동으로 만듭니다.
만들기를 클릭하여 서비스 커넥터를 만듭니다.
서비스 커넥터가 생성되고 활성화될 때까지 기다립니다. 상태가 활성으로 변경됩니다.
로그가 AWS S3로 푸시되는지 확인
- Oracle Cloud Console에 로그인합니다.
- 감사 로그를 생성하는 작업을 수행합니다 (예: 리소스 생성 또는 수정).
- 로그가 처리될 때까지 2~5분 정도 기다립니다.
- AWS 관리 콘솔에 로그인합니다.
- S3 > 버킷으로 이동합니다.
- 버킷 (예:
oci-audit-logs-bucket)을 클릭합니다. - JSON 로그 파일이 버킷에 표시되는지 확인합니다.
Google SecOps용 AWS S3 버킷 및 IAM 구성
Chronicle용 IAM 사용자 만들기
- AWS 관리 콘솔에 로그인합니다.
- IAM > 사용자 > 사용자 추가로 이동합니다.
- 다음 구성 세부정보를 제공합니다.
- 사용자 이름:
chronicle-s3-reader를 입력합니다. - 액세스 유형: 액세스 키 - 프로그래매틱 액세스를 선택합니다.
- 사용자 이름:
- 다음: 권한을 클릭합니다.
- 기존 정책 직접 연결을 클릭합니다.
- AmazonS3ReadOnlyAccess 정책을 검색하여 선택합니다.
- 다음: 태그를 클릭합니다.
- 다음: 검토를 클릭합니다.
- 사용자 만들기를 클릭합니다.
- CSV 파일 다운로드를 클릭하여 액세스 키 ID와 보안 비밀 액세스 키를 저장합니다.
- 닫기를 클릭합니다.
선택사항: 최소 권한 액세스를 위한 맞춤 IAM 정책 만들기
특정 버킷에 대한 액세스만 제한하려면 다음 단계를 따르세요.
- IAM > 정책 > 정책 만들기로 이동합니다.
- JSON 탭을 클릭합니다.
다음 정책을 입력합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::oci-audit-logs-bucket", "arn:aws:s3:::oci-audit-logs-bucket/*" ] } ] }- 여기에서
oci-audit-logs-bucket을 내 버킷 이름으로 바꿉니다.
- 여기에서
다음: 태그를 클릭합니다.
다음: 검토를 클릭합니다.
다음 구성 세부정보를 제공합니다.
- 이름:
chronicle-s3-read-policy - 설명: OCI 감사 로그 버킷에 대한 읽기 전용 액세스
- 이름:
정책 만들기를 클릭합니다.
IAM> 사용자로 돌아가
chronicle-s3-reader사용자를 선택합니다.권한 추가 > 정책 직접 연결을 클릭합니다.
chronicle-s3-read-policy을 검색하여 선택합니다.이전에 추가한 AmazonS3ReadOnlyAccess 정책을 삭제합니다.
권한 추가를 클릭합니다.
Oracle Cloud 감사 로그를 수집하도록 Google SecOps에서 피드 구성
- SIEM 설정> 피드로 이동합니다.
- 새 피드 추가를 클릭합니다.
- 다음 페이지에서 단일 피드 구성을 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다(예:
Oracle Cloud Audit Logs). - 소스 유형으로 Amazon S3 V2를 선택합니다.
- 로그 유형으로 Oracle Cloud Infrastructure를 선택합니다.
- 다음을 클릭합니다.
- 다음 입력 파라미터의 값을 지정합니다.
- S3 URI: S3 버킷 URI (예:
s3://oci-audit-logs-bucket/)를 입력합니다. - 소스 삭제 옵션: 환경설정에 따라 삭제 옵션을 선택합니다.
- 없음: 테스트 및 초기 설정에 권장됩니다.
- 전송된 파일 삭제: 수집이 완료되면 파일을 삭제합니다 (스토리지 비용을 관리하기 위해 프로덕션에 사용).
- 최대 파일 기간: 지난 일수 동안 수정된 파일을 포함합니다. 기본값은 180일입니다.
- 액세스 키 ID: 만든 Chronicle IAM 사용자의 액세스 키 ID를 입력합니다.
- 보안 비밀 액세스 키: 생성한 Chronicle IAM 사용자의 보안 비밀 액세스 키를 입력합니다.
- 애셋 네임스페이스: 애셋 네임스페이스입니다.
- 수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.
- S3 URI: S3 버킷 URI (예:
- 다음을 클릭합니다.
- 확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.
UDM 매핑 테이블
| 로그 필드 | UDM 매핑 | 논리 |
|---|---|---|
data.request.headers.authorization.0 |
event.idm.read_only_udm.additional.fields |
data.request.headers.authorization.0에서 가져온 값으로, 키가 'Request Headers Authorization'인 키-값 쌍으로 추가됩니다. |
data.compartmentId |
event.idm.read_only_udm.additional.fields |
data.compartmentId에서 가져온 값이 키가 'compartmentId'인 키-값 쌍으로 추가됩니다. |
data.compartmentName |
event.idm.read_only_udm.additional.fields |
data.compartmentName에서 가져온 값이 키가 'compartmentName'인 키-값 쌍으로 추가됩니다. |
data.response.headers.Content-Length.0 |
event.idm.read_only_udm.additional.fields |
data.response.headers.Content-Length.0에서 가져온 값으로, 키가 'Response Headers Content-Length'인 키-값 쌍으로 추가됩니다. |
data.response.headers.Content-Type.0 |
event.idm.read_only_udm.additional.fields |
data.response.headers.Content-Type.0에서 가져온 값이 키가 'Response Headers Content-Type'인 키-값 쌍으로 추가됩니다. |
data.eventGroupingId |
event.idm.read_only_udm.additional.fields |
data.eventGroupingId에서 가져온 값이 키가 'eventGroupingId'인 키-값 쌍으로 추가됩니다. |
oracle.tenantid, data.identity.tenantId |
event.idm.read_only_udm.additional.fields |
값이 있는 경우 oracle.tenantid에서 가져오고, 그렇지 않으면 data.identity.tenantId에서 가져옵니다. 키가 'tenantId'인 키-값 쌍으로 추가됩니다. |
data.message |
event.idm.read_only_udm.metadata.description |
data.message에서 가져온 값입니다. |
time |
event.idm.read_only_udm.metadata.event_timestamp |
time에서 가져온 값으로, ISO8601 타임스탬프로 파싱됩니다. |
event.idm.read_only_udm.metadata.event_type |
기본적으로 GENERIC_EVENT로 설정합니다. 주체 (IP 또는 호스트 이름)와 대상 IP가 있는 경우 NETWORK_CONNECTION로 설정됩니다. 주 구성원만 있는 경우 STATUS_UPDATE으로 설정됩니다. |
|
time |
event.idm.read_only_udm.metadata.ingested_timestamp |
oracle.ingestedtime이 비어 있지 않으면 값이 time 필드에서 가져와 ISO8601 타임스탬프로 파싱됩니다. |
oracle.tenantid |
event.idm.read_only_udm.metadata.product_deployment_id |
oracle.tenantid에서 가져온 값입니다. |
type |
event.idm.read_only_udm.metadata.product_event_type |
type에서 가져온 값입니다. |
oracle.logid |
event.idm.read_only_udm.metadata.product_log_id |
oracle.logid에서 가져온 값입니다. |
specversion |
event.idm.read_only_udm.metadata.product_version |
specversion에서 가져온 값입니다. |
data.request.action |
event.idm.read_only_udm.network.http.method |
data.request.action에서 가져온 값입니다. |
data.identity.userAgent |
event.idm.read_only_udm.network.http.parsed_user_agent |
data.identity.userAgent에서 가져와 파싱된 값입니다. |
data.response.status |
event.idm.read_only_udm.network.http.response_code |
data.response.status에서 가져와 정수로 변환된 값입니다. |
data.protocol |
event.idm.read_only_udm.network.ip_protocol |
data.protocol의 숫자 값이 문자열 표현으로 변환됩니다 (예: 6은 'TCP'가 되고 17은 'UDP'가 됩니다. |
data.bytesOut |
event.idm.read_only_udm.network.sent_bytes |
data.bytesOut에서 가져와 부호 없는 정수로 변환된 값입니다. |
data.packets |
event.idm.read_only_udm.network.sent_packets |
data.packets에서 가져와 정수로 변환된 값입니다. |
data.identity.consoleSessionId |
event.idm.read_only_udm.network.session_id |
data.identity.consoleSessionId에서 가져온 값입니다. |
id |
event.idm.read_only_udm.principal.asset.product_object_id |
id에서 가져온 값입니다. |
source |
event.idm.read_only_udm.principal.hostname |
source에서 가져온 값입니다. |
data.sourceAddress, data.identity.ipAddress |
event.idm.read_only_udm.principal.ip |
data.sourceAddress 및 data.identity.ipAddress의 값이 이 필드로 병합됩니다. |
data.sourcePort |
event.idm.read_only_udm.principal.port |
data.sourcePort에서 가져와 정수로 변환된 값입니다. |
data.request.headers.X-Forwarded-For.0 |
event.idm.read_only_udm.principal.resource.attribute.labels |
data.request.headers.X-Forwarded-For.0에서 가져온 값이 키가 'x forward'인 키-값 쌍으로 추가됩니다. |
oracle.compartmentid |
event.idm.read_only_udm.principal.resource.attribute.labels |
oracle.compartmentid에서 가져온 값이 키가 'compartmentid'인 키-값 쌍으로 추가됩니다. |
oracle.loggroupid |
event.idm.read_only_udm.principal.resource.attribute.labels |
oracle.loggroupid에서 가져온 값이 키가 'loggroupid'인 키-값 쌍으로 추가됩니다. |
oracle.vniccompartmentocid |
event.idm.read_only_udm.principal.resource.attribute.labels |
oracle.vniccompartmentocid에서 가져온 값으로, 키가 'vniccompartmentocid'인 키-값 쌍으로 추가됩니다. |
oracle.vnicocid |
event.idm.read_only_udm.principal.resource.attribute.labels |
oracle.vnicocid에서 가져온 값이 키가 'vnicocid'인 키-값 쌍으로 추가됩니다. |
oracle.vnicsubnetocid |
event.idm.read_only_udm.principal.resource.attribute.labels |
oracle.vnicsubnetocid에서 가져온 값이 키가 'vnicsubnetocid'인 키-값 쌍으로 추가됩니다. |
data.flowid |
event.idm.read_only_udm.principal.resource.product_object_id |
data.flowid에서 가져온 값입니다. |
data.identity.credentials |
event.idm.read_only_udm.principal.user.attribute.labels |
data.identity.credentials에서 가져온 값이 키가 'credentials'인 키-값 쌍으로 추가됩니다. |
data.identity.principalName |
event.idm.read_only_udm.principal.user.user_display_name |
data.identity.principalName에서 가져온 값입니다. |
data.identity.principalId |
event.idm.read_only_udm.principal.user.userid |
data.identity.principalId에서 가져온 값입니다. |
data.action |
event.idm.read_only_udm.security_result.action |
기본적으로 UNKNOWN_ACTION로 설정합니다. data.action이 'REJECT'인 경우 이 값이 BLOCK으로 설정됩니다. data.action가 'ACCEPT'인 경우 ALLOW로 설정됩니다. |
data.endTime |
event.idm.read_only_udm.security_result.detection_fields |
data.endTime에서 가져온 값으로, 키가 'endTime'인 키-값 쌍으로 추가됩니다. |
data.startTime |
event.idm.read_only_udm.security_result.detection_fields |
data.startTime에서 가져온 값으로, 키가 'startTime'인 키-값 쌍으로 추가됩니다. |
data.status |
event.idm.read_only_udm.security_result.detection_fields |
data.status에서 가져온 값이 키가 'status'인 키-값 쌍으로 추가됩니다. |
data.version |
event.idm.read_only_udm.security_result.detection_fields |
data.version에서 가져온 값이 키가 'version'인 키-값 쌍으로 추가됩니다. |
data.destinationAddress |
event.idm.read_only_udm.target.ip |
data.destinationAddress에서 가져온 값입니다. |
data.destinationPort |
event.idm.read_only_udm.target.port |
data.destinationPort에서 가져와 정수로 변환된 값입니다. |
data.request.path |
event.idm.read_only_udm.target.url |
data.request.path에서 가져온 값입니다. |
event.idm.read_only_udm.metadata.product_name |
'ORACLE CLOUD AUDIT'으로 설정합니다. | |
event.idm.read_only_udm.metadata.vendor_name |
'ORACLE'로 설정합니다. |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.