Google SecOps와 SAP ERP 통합

이 문서에서는 SAP ERP를 Google Security Operations와 통합하는 방법을 설명합니다.

SAP ERP 통합은 Cloud Run 게이트웨이 서비스를 통해 Google SecOps를 SAP ERP 환경에 연결합니다. Google SecOps에서 SAP 환경을 모니터링하고 보호하는 방법에 대한 자세한 내용은 Google SecOps로 SAP 애플리케이션 보호를 참조하세요.

사용 사례

SAP ERP 통합은 Google SecOps 기능을 사용하여 다음 사용 사례를 지원합니다.

  • 손상된 SAP 사용자 계정 격리: 의심스러운 활동, 사용자 인증 정보 악용 또는 무단 권한 에스컬레이션이 감지되면 자동 사고 대응 플레이북 중에 SAP 사용자 계정을 즉시 잠급니다.

  • 활성 사용자 세션 종료: 계정 침해 또는 정책 위반 후 진행 중인 액세스를 취소하기 위해 대상 사용자 이름 및 클라이언트의 활성 SAP 세션을 종료합니다.

  • 보안 감사 로깅 적용: 대상 SAP 인스턴스 및 클라이언트에서 SAP 보안 감사 로그를 원격으로 활성화하여 중요한 애플리케이션 보안 이벤트가 기록되도록 합니다.

  • 게이트웨이 연결 검증: Google SecOps와 Cloud Run 게이트웨이 서비스 간의 Google Cloud 인증 및 네트워크 연결을 확인합니다.

시작하기 전에

Google SecOps에서 SAP ERP 통합을 구성하기 전에 다음 기본 요건 단계를 완료하세요.

  1. Cloud Run SAP RFC 게이트웨이를 배포하고 구성하여 작업을 SAP ERP 인스턴스로 전달합니다.

  2. 워크로드 아이덴티티 또는 서비스 계정 JSON 키를 사용하여 Google Cloud 인증 및 IAM 권한을 구성합니다.

  3. 대상 SAP 클라이언트에서 게이트웨이 통신 사용자에 대해 SAP 권한을 구성합니다.

  4. Google SecOps, Cloud Run 서비스, SAP ERP 인스턴스 간의 네트워크 연결을 확인합니다.

Cloud Run SAP RFC 게이트웨이 배포 및 구성

SAP ERP 통합은 Cloud Run SAP RFC 게이트웨이 서비스를 통해 SAP 시스템과 통신합니다. 이 서비스는 Google SecOps의 작업을 대상 SAP 인스턴스로 안전하게 전달합니다.

Cloud Run 게이트웨이 서비스가 배포되고 각 대상 SAP 인스턴스(SAP Instance Name) 및 세 자리 SAP 클라이언트 (SAP Client Number)의 연결 세부정보로 구성되어 있는지 확인합니다. Cloud Run Service URL 통합 매개변수에 대한 Cloud Run 서비스의 HTTPS URL을 기록합니다.

Google Cloud 인증 및 IAM 권한 구성

Cloud Run 게이트웨이 서비스에 대한 요청을 인증하려면 다음 방법 중 하나를 사용하여 Google Cloud 서비스 계정을 구성합니다.

  • 워크로드 아이덴티티 (권장): 정적 JSON 키를 다운로드하거나 관리할 필요가 없도록 서비스 계정 가장을 사용합니다.
  • 서비스 계정 JSON 키: 다운로드한 JSON 키 파일을 사용합니다. 워크로드 아이덴티티를 구성할 수 없는 경우에만 이 방법을 사용하세요. Service Account JSON 및 Workload Identity Email를 모두 제공하면 통합에서 Service Account JSON를 사용합니다.

IAM 역할을 할당할 때 최소 권한의 원칙을 따릅니다. Google Cloudroles/owner 또는 roles/editor과 같은 광범위한 관리 역할을 부여하지 마세요. 다음 표에 나열된 최소 역할만 부여합니다.

주 구성원 대상 리소스 필요한 IAM 역할 목적
서비스 계정(Workload Identity Email 또는 Service Account JSON에서 구성됨) Cloud Run SAP RFC 게이트웨이 서비스 Cloud Run 호출자(roles/run.invoker) 서비스 계정이 Cloud Run 게이트웨이 서비스를 호출할 수 있도록 허용합니다.
Google SecOps 인스턴스 ID(Workload Identity Email를 사용하는 경우에만 해당) Workload Identity Email에 지정된 서비스 계정 서비스 계정 토큰 생성자(roles/iam.serviceAccountTokenCreator) Google SecOps 인스턴스가 게이트웨이를 호출할 때 서비스 계정을 가장할 수 있도록 허용합니다.

워크로드 아이덴티티로 인증 (권장)

워크로드 아이덴티티를 사용하여 인증하려면 서비스 계정을 만들고, Cloud Run 서비스를 호출할 수 있는 액세스 권한을 부여하고, Google SecOps 인스턴스가 해당 서비스 계정을 가장하도록 승인합니다.

서비스 계정 만들기 및 Cloud Run 액세스 권한 부여
  1. Google Cloud 콘솔에서 IAM 및 관리자 > 서비스 계정으로 이동합니다.

  2. 서비스 계정 만들기를 클릭하고 서비스 계정 이름을 입력한 후 만들고 계속하기를 클릭합니다.

  3. 완료를 클릭하여 서비스 계정 만들기를 완료하고 이메일 주소를 복사합니다.

  4. Google Cloud 콘솔에서 Cloud Run으로 이동하여 SAP RFC 게이트웨이 서비스를 선택합니다.

  5. 보안 또는 권한 탭으로 이동하여 주 구성원 추가를 클릭합니다.

  6. 새 주 구성원 필드에 서비스 계정 이메일 주소를 붙여넣습니다.

  7. 역할 선택 메뉴에서 Cloud Run 호출자(roles/run.invoker)를 선택하고 저장을 클릭합니다.

Google SecOps 인스턴스에 가장 권한 부여
  1. Google SecOps에서 콘텐츠 허브 > 응답 통합으로 이동합니다.

  2. SAP ERP 통합을 선택하고 Cloud Run Service URL를 입력한 후 Workload Identity Email에 서비스 계정 이메일을 입력합니다.

  3. 저장 > 테스트를 클릭합니다. 가장 권한을 부여하기 전에는 테스트가 실패할 것으로 예상됩니다.

  4. 테스트 옆에 있는 close_small을 클릭하고 오류 메시지에서 Google SecOps 인스턴스 서비스 계정 이메일(gke-init-python@PROJECT.iam.gserviceaccount.com 또는 soar-python@TENANT_PROJECT.iam.gserviceaccount.com 형식)을 찾습니다. 이 이메일 주소를 복사합니다.

  5. Google Cloud 콘솔에서 IAM 및 관리자 > 서비스 계정으로 이동하여 서비스 계정을 선택합니다.

  6. 권한 > 액세스 권한 부여로 이동합니다.

  7. 새 주 구성원에 복사한 Google SecOps 인스턴스 이메일 주소를 붙여넣습니다.

  8. 역할 할당에서 서비스 계정 토큰 생성자(roles/iam.serviceAccountTokenCreator)를 선택하고 저장을 클릭합니다.

서비스 계정 JSON 키로 인증

워크로드 아이덴티티를 사용할 수 없는 경우 서비스 계정을 만들고 JSON 키 파일을 추출합니다.

  1. Google Cloud 콘솔에서 IAM 및 관리자 > 서비스 계정으로 이동합니다.

  2. 기존 서비스 계정을 선택하거나 서비스 계정 만들기를 클릭하여 전용 계정을 만듭니다.

  3. 서비스 계정에 Cloud Run SAP RFC 게이트웨이 서비스에 대한 Cloud Run 호출자(roles/run.invoker) 역할이 있는지 확인합니다.

  4. 서비스 계정을 선택하고 키 > 키 추가 > 새 키 만들기로 이동합니다.

  5. 키 유형으로 JSON을 선택하고 만들기를 클릭합니다. JSON 키 파일이 컴퓨터에 다운로드됩니다.

  6. 텍스트 편집기에서 다운로드한 파일을 열고 전체 JSON 콘텐츠를 복사하여 Google SecOps의 Service Account JSON 매개변수에 붙여넣습니다.

SAP 권한 구성

각 대상 SAP 클라이언트에서 Cloud Run 게이트웨이에 구성된 SAP 통신 사용자에게 실행하려는 작업에 필요한 최소 권한만 부여합니다.

작업 필수 SAP 권한
감사 로그 활성화 대상 SAP 클라이언트에서 SAP 보안 감사 로그를 원격으로 활성화할 수 있는 권한입니다.
사용자 세션 삭제 대상 SAP 클라이언트에서 활성 사용자 세션을 종료하기 위해 TH_DELETE_USER 함수 모듈을 실행할 수 있는 권한입니다.
SAP 사용자 잠금 대상 SAP 클라이언트에서 사용자 계정을 잠글 수 있는 권한입니다.

네트워크 연결 확인

환경이 다음 네트워크 요구사항을 충족하는지 확인합니다.

  • Google SecOps (또는 원격 에이전트)가 HTTPS (포트 443)를 통해 Cloud Run SAP RFC 게이트웨이 URL에 연결할 수 있습니다.
  • Cloud Run SAP RFC 게이트웨이 서비스에 대상 SAP ERP 인스턴스에 대한 네트워크 연결이 있습니다.

통합 매개변수

SAP ERP 통합에는 다음 매개변수가 필요합니다.

매개변수 설명
Cloud Run Service URL

필수 입력란입니다.

SAP ERP 인스턴스에 연결되는 Cloud Run 게이트웨이 서비스의 HTTPS URL입니다.

Service Account JSON

(선택사항)

Cloud Run 게이트웨이 서비스로 인증하는 데 사용되는 서비스 계정 JSON 키입니다.

Service Account JSON 및 Workload Identity Email가 모두 제공되면 통합에서 Service Account JSON를 사용합니다.

Workload Identity Email

(선택사항)

워크로드 아이덴티티 인증에 사용되는 서비스 계정 이메일 주소입니다(권장).

Service Account JSON가 비어 있을 때 사용됩니다.

Verify SSL

(선택사항)

선택하면 통합에서 Cloud Run 게이트웨이 서버에 연결할 때 SSL 인증서를 검증합니다.

기본적으로 사용 설정됩니다.

Google SecOps에서 통합을 구성하는 방법에 대한 안내는 통합 구성을 참조하세요.

필요한 경우 이후 단계에서 변경할 수 있습니다. 통합 인스턴스를 구성한 후 플레이북에서 사용할 수 있습니다. 여러 인스턴스를 구성하고 지원하는 방법에 관한 자세한 내용은 다중 인스턴스 지원을 참고하세요.

작업

작업에 대한 자세한 내용은 Workdesk의 대기 중인 작업에 응답 및 케이스에서 수동 작업 실행을 참고하세요.

감사 로그 활성화

감사 로그 활성화 작업을 사용하여 Cloud Run SAP RFC 게이트웨이를 통해 대상 SAP 인스턴스 및 클라이언트에서 SAP 보안 감사 로그를 활성화합니다.

이 작업은 Google SecOps 항목에서 실행되지 않습니다.

작업 입력

감사 로그 활성화 작업에는 다음 매개변수가 필요합니다.

매개변수 설명
SAP Client Number

필수 입력란입니다.

3자리 숫자 SAP 클라이언트 번호입니다.

SAP Instance Name

필수 입력란입니다.

Cloud Run SAP RFC 게이트웨이에 구성된 대상 SAP 인스턴스의 이름입니다.

작업 출력

감사 로그 활성화 작업은 다음 출력을 제공합니다.

작업 출력 유형 가용성
케이스 월 연결 사용 불가
케이스 월 링크 사용 불가
케이스 월 테이블 사용 불가
보강 테이블 사용 불가
JSON 결과 사용 가능
출력 메시지 사용 가능
스크립트 결과 사용 가능
JSON 결과

다음 예시에서는 감사 로그 활성화 작업을 사용할 때 수신되는 JSON 결과 출력을 보여줍니다.

{
  "status": "SUCCESS",
  "functionId": "ACTIVATE_AUDIT_LOG",
  "sap_instance": "PRD",
  "client": "100",
  "return": [
    {
      "type": "S",
      "message": "Security Audit Log activated successfully."
    }
  ]
}
출력 메시지

감사 로그 활성화 작업은 다음 출력 메시지를 반환할 수 있습니다.

출력 메시지 메시지 설명
Successfully activated SAP audit log. 작업이 완료되었습니다.
Error executing action - "Activate Audit Log". Reason: Failed to activate audit log. SAP Error: ERROR_SUMMARY

SAP 시스템에서 오류를 반환하여 작업이 실패했습니다.

대상 SAP 인스턴스 및 클라이언트에 연결할 수 있고 게이트웨이 통신 사용자에게 보안 감사 로그를 활성화할 권한이 있는지 확인합니다.

Error executing action - "Activate Audit Log". Reason: SAP Client Number must be a 3-digit numeric string (got 'SAP_CLIENT_NUMBER').

작업의 매개변수 유효성 검사에 실패했습니다.

SAP Client Number에 유효한 세 자리 숫자 문자열(예: 100)을 제공합니다.

Error executing action - "Activate Audit Log". Reason: Proxy request failed (HTTP STATUS_CODE): ERROR_DETAIL

Cloud Run SAP RFC 게이트웨이에 대한 요청이 실패했습니다.

Cloud Run Service URL, 서비스 계정 권한, 게이트웨이 로그를 확인합니다.

스크립트 결과

다음 표에는 감사 로그 활성화 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.

스크립트 결과 이름 값
is_success true 또는 false

사용자 세션 삭제

사용자 세션 삭제 작업을 사용하여 Cloud Run SAP RFC 게이트웨이를 통해 SAP에서 사용자의 활성 세션을 종료합니다.

이 작업은 Google SecOps 항목에서 실행되지 않습니다.

작업 입력

사용자 세션 삭제 작업에는 다음 매개변수가 필요합니다.

매개변수 설명
SAP Username

필수 입력란입니다.

활성 세션을 종료하려는 SAP 사용자 이름입니다.

SAP Client Number

필수 입력란입니다.

3자리 숫자 SAP 클라이언트 번호입니다.

SAP Instance Name

필수 입력란입니다.

Cloud Run SAP RFC 게이트웨이에 구성된 대상 SAP 인스턴스의 이름입니다.

작업 출력

사용자 세션 삭제 작업은 다음 출력을 제공합니다.

작업 출력 유형 가용성
케이스 월 연결 사용 불가
케이스 월 링크 사용 불가
케이스 월 테이블 사용 불가
보강 테이블 사용 불가
JSON 결과 사용 가능
출력 메시지 사용 가능
스크립트 결과 사용 가능
JSON 결과

다음 예시는 사용자 세션 삭제 작업을 사용할 때 수신되는 JSON 결과 출력을 보여줍니다.

{
  "status": "SUCCESS",
  "functionId": "DELETE_USER_SESSION",
  "sap_instance": "PRD",
  "client": "100",
  "return": [
    {
      "type": "S",
      "message": "User session terminated."
    }
  ]
}
출력 메시지

사용자 세션 삭제 작업은 다음 출력 메시지를 반환할 수 있습니다.

출력 메시지 메시지 설명
Successfully deleted user session for SAP_USERNAME. 작업이 완료되었습니다.
Error executing action - "Delete User Session". Reason: Failed to delete user session for SAP_USERNAME. SAP Error: ERROR_SUMMARY

SAP 시스템에서 오류를 반환하여 작업이 실패했습니다.

지정된 SAP 클라이언트에 사용자 이름이 있고 게이트웨이 통신 사용자에게 TH_DELETE_USER를 실행할 권한이 있는지 확인합니다.

Error executing action - "Delete User Session". Reason: SAP Client Number must be a 3-digit numeric string (got 'SAP_CLIENT_NUMBER').

작업의 매개변수 유효성 검사에 실패했습니다.

SAP Client Number에 유효한 세 자리 숫자 문자열(예: 100)을 제공합니다.

Error executing action - "Delete User Session". Reason: Proxy request failed (HTTP STATUS_CODE): ERROR_DETAIL

Cloud Run SAP RFC 게이트웨이에 대한 요청이 실패했습니다.

Cloud Run Service URL, 서비스 계정 권한, 게이트웨이 로그를 확인합니다.

스크립트 결과

다음 표에는 사용자 세션 삭제 작업을 사용할 때의 스크립트 결과 출력 값이 나와 있습니다.

스크립트 결과 이름 값
is_success true 또는 false

SAP 사용자 잠금

SAP 사용자 잠금 작업을 사용하여 Cloud Run SAP RFC 게이트웨이를 통해 SAP에서 지정된 사용자 계정을 잠급니다.

이 작업은 Google SecOps 항목에서 실행되지 않습니다.

작업 입력

SAP 사용자 잠금 작업에는 다음 매개변수가 필요합니다.

매개변수 설명
SAP Username

필수 입력란입니다.

잠글 계정의 SAP 사용자 이름입니다.

SAP Client Number

필수 입력란입니다.

3자리 숫자 SAP 클라이언트 번호입니다.

SAP Instance Name

필수 입력란입니다.

Cloud Run SAP RFC 게이트웨이에 구성된 대상 SAP 인스턴스의 이름입니다.

작업 출력

SAP 사용자 잠금 작업은 다음 출력을 제공합니다.

작업 출력 유형 가용성
케이스 월 연결 사용 불가
케이스 월 링크 사용 불가
케이스 월 테이블 사용 불가
보강 테이블 사용 불가
JSON 결과 사용 가능
출력 메시지 사용 가능
스크립트 결과 사용 가능
JSON 결과

다음 예시는 SAP 사용자 잠금 작업을 사용할 때 수신되는 JSON 결과 출력을 보여줍니다.

{
  "status": "SUCCESS",
  "functionId": "USER_LOCK",
  "sap_instance": "PRD",
  "client": "100",
  "return": [
    {
      "type": "S",
      "message": "User locked successfully."
    }
  ]
}
출력 메시지

SAP 사용자 잠금 작업은 다음 출력 메시지를 반환할 수 있습니다.

출력 메시지 메시지 설명
Successfully locked user SAP_USERNAME. 작업이 완료되었습니다.
Error executing action - "Lock SAP User". Reason: Failed to lock user SAP_USERNAME. SAP Error: ERROR_SUMMARY

SAP 시스템에서 오류를 반환하여 작업이 실패했습니다.

지정된 SAP 클라이언트에 사용자 이름이 있고 게이트웨이 통신 사용자에게 사용자 계정을 잠글 수 있는 권한이 있는지 확인합니다.

Error executing action - "Lock SAP User". Reason: SAP Client Number must be a 3-digit numeric string (got 'SAP_CLIENT_NUMBER').

작업의 매개변수 유효성 검사에 실패했습니다.

SAP Client Number에 유효한 세 자리 숫자 문자열(예: 100)을 제공합니다.

Error executing action - "Lock SAP User". Reason: Proxy request failed (HTTP STATUS_CODE): ERROR_DETAIL

Cloud Run SAP RFC 게이트웨이에 대한 요청이 실패했습니다.

Cloud Run Service URL, 서비스 계정 권한, 게이트웨이 로그를 확인합니다.

스크립트 결과

다음 표에는 SAP 사용자 잠금 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.

스크립트 결과 이름 값
is_success true 또는 false

핑

Ping 작업을 사용하여 SAP ERP Cloud Run 게이트웨이 서비스에 대한 인증 및 네트워크 연결을 테스트합니다.

이 작업은 Google SecOps 항목에서 실행되지 않습니다.

작업 입력

없음

작업 출력

핑 작업은 다음 출력을 제공합니다.

작업 출력 유형 가용성
케이스 월 연결 사용 불가
케이스 월 링크 사용 불가
케이스 월 테이블 사용 불가
보강 테이블 사용 불가
JSON 결과 사용 불가
출력 메시지 사용 가능
스크립트 결과 사용 가능
출력 메시지

Ping 작업은 다음 출력 메시지를 반환할 수 있습니다.

출력 메시지 메시지 설명
Successfully connected to the SAP ERP server with the provided connection parameters! 작업이 완료되었습니다.
Failed to connect to the SAP ERP server! Error is Failed to generate Google Cloud authentication token. Verify service account credentials and permissions.

작업에서 Google Cloud 인증 토큰을 생성하지 못했습니다.

Service Account JSON 또는 Workload Identity Email 구성을 확인합니다.

Failed to connect to the SAP ERP server! Error is Authentication to Cloud Run failed (HTTP STATUS_CODE). Verify the caller has roles/run.invoker on the service.

Cloud Run 게이트웨이가 인증 요청을 거부했습니다.

서비스 계정에 Cloud Run 서비스에 대한 Cloud Run 호출자(roles/run.invoker) 역할이 있는지 확인합니다.

Failed to connect to the SAP ERP server! Error is Cloud Run service returned unexpected HTTP STATUS_CODE: ERROR_DETAIL

Cloud Run 게이트웨이에서 예상치 못한 HTTP 상태 코드를 반환했습니다.

Cloud Run Service URL를 확인하고 Cloud Run 서비스 로그를 검사합니다.

스크립트 결과

다음 표에는 핑 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.

스크립트 결과 이름 값
is_success true 또는 false

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.