Cloud ID를 Google SecOps와 통합
이 문서에서는 Cloud Identity를 Google Security Operations와 통합하는 방법을 설명합니다.
사용 사례
Cloud ID 통합은 Google SecOps 기능을 사용하여 다음 사용 사례를 지원합니다.
- 액세스 제어 관리: 조사 플레이북에서 직접 IAM 구성을 만들고 업데이트합니다.
- 감사 정책 정의: 액세스 변형을 추적하는 데 사용할 수 있는 정책에 관한 정보를 나열합니다.
- 감지기 목록 속성 유지: 모니터링을 위해 특정 감지기 URL 목록에 항목과 표시기를 추가합니다.
시작하기 전에
Google SecOps 플랫폼에서 Cloud ID 통합을 구성하기 전에 다음 단계에 따라 환경을 구성했는지 확인하세요.
- 서비스 계정을 만듭니다.
- 서비스 계정에 도메인 전체 권한 위임
- 프로젝트에 필요한 API를 사용 설정합니다.
- 다음 인증 방법 중 하나를 선택하고 구성합니다.
- 옵션 1: JSON 키: 이 방법은 정적이고 수명이 긴 보안 비밀 키 파일을 사용합니다. 사용자 환경에서 워크로드 아이덴티티를 사용할 수 없는 경우에만 이 방법을 사용하세요.
- 옵션 2: 워크로드 아이덴티티 (권장): 이 방법은 서비스 계정 가장을 사용하여 단기 임시 액세스 토큰을 사용하므로 보안 비밀을 저장할 필요가 없습니다.
서비스 계정 만들기
통합을 위한 서비스 계정을 만들려면 다음 단계를 완료하세요.
Google Cloud 콘솔에서 IAM 및 관리자 > 서비스 계정으로 이동하여 프로젝트를 선택합니다.
서비스 계정 만들기를 클릭합니다.
이름과 설명을 입력하고 완료를 클릭하여 계정을 만듭니다.
서비스 계정에 도메인 전체 권한 위임
- 도메인의 Google 관리 콘솔에서 기본 메뉴 > 보안 > 액세스 및 데이터 컨트롤 > API 컨트롤로 이동합니다.
- 도메인 전체 위임 창에서 도메인 전체 위임 관리를 선택합니다.
- 새로 추가를 클릭합니다.
- 클라이언트 ID 필드에 서비스 계정 만들기 섹션에서 가져온 클라이언트 ID를 입력합니다.
OAuth 범위 필드에 애플리케이션에 필요한 범위를 쉼표로 구분하여 입력합니다.
https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/cloud-identity.policies, https://www.googleapis.com/auth/admin.directory.orgunit승인을 클릭합니다.
이제 서비스 계정이 지정된 범위를 사용하여 도메인 전체의 데이터에 액세스할 수 있도록 승인되었습니다.
프로젝트에 필요한 API 사용 설정
Google Cloud 콘솔에서 API 및 서비스로 이동합니다.
API 및 서비스 사용 설정을 클릭합니다.
프로젝트에서 다음 API를 검색하여 사용 설정합니다.
- Admin SDK API (
admin.googleapis.com) - Cloud ID API (
cloudidentity.googleapis.com)
- Admin SDK API (
JSON 키 구성
정적 JSON 키 파일 또는 워크로드 아이덴티티 제휴를 사용하여 통합을 인증할 수 있습니다. 환경 보안을 극대화하려면 워크로드 아이덴티티 방법을 사용하세요. 정적 키는 수동으로 순환해야 하고 사용자 인증 정보 노출 위험을 높이므로 인프라에서 워크로드 아이덴티티가 지원되지 않는 경우에만 JSON 키 메서드를 사용하세요.
통합을 인증하는 데 필요한 JSON 키 파일을 생성하려면 다음 단계를 완료하세요.
Google Cloud 콘솔에서 IAM 및 관리자 > 서비스 계정으로 이동하여 생성한 서비스 계정을 선택합니다.
키 탭으로 이동합니다.
키 추가를 클릭합니다.
새 키 만들기를 선택합니다.
키 유형으로 JSON을 선택하고 만들기를 클릭합니다. JSON 파일이 컴퓨터에 다운로드됩니다.
이 파일의 전체 콘텐츠를 복사하여 통합 구성 중에
User's Service Account JSON에 붙여넣습니다.
Cloud ID 권한 구성
통합에서 조직 리소스를 관리하는 데 필요한 관리 권한을 정의하려면 다음 절차를 따르세요.
- Google 관리 콘솔에서 계정 > 관리자 역할로 이동합니다.
- 새 역할 만들기를 클릭합니다.
- 새 맞춤 역할의 이름을 입력하고 계속을 클릭합니다.
- 권한 선택 페이지에서 Admin API 권한 섹션으로 이동합니다.
- Admin API 권한에서 다음 권한을 선택합니다.
Organization UnitsUsersGroups
- 계속을 클릭합니다.
- 새 맞춤 역할을 만들려면 역할 만들기를 클릭합니다.
사용자에게 맞춤 역할 할당
다음 절차를 사용하여 사용자 계정에 역할을 할당하여 통합이 사용자를 대신하여 작업을 실행하도록 승인합니다.
- 신규 사용자를 만들려면 디렉터리 > 사용자 페이지로 이동합니다.
- 서비스 계정과 연결된 신규 사용자를 추가합니다.
- 새로 만든 사용자의 설정을 엽니다. 사용자 계정 탭이 열립니다.
- '관리자 역할 및 권한'을 클릭합니다.
- edit 수정을 클릭합니다.
- 생성한 맞춤 역할을 선택합니다.
- 선택한 역할의 전환 버튼을 할당됨으로 전환합니다.
워크로드 아이덴티티 사용자 인증 정보 구성
통합을 인증하려면 이 방법 또는 JSON 키 방법을 선택하세요. 워크로드 아이덴티티는 서비스 계정 가장을 사용하여 단기 임시 액세스 토큰을 사용하므로 장기 보안 비밀 사용자 인증 정보 노출 위험을 최소화하여 권장되는 더 안전한 접근 방식입니다.
고유 인스턴스 ID 식별
워크로드 아이덴티티를 사용하려면 Google SecOps 인스턴스에 서비스 계정을 가장할 수 있는 권한을 부여해야 합니다. 이 단계를 통해 인스턴스가 Google Cloud 리소스에 안전하게 액세스할 수 있습니다.
- Google SecOps에서 콘텐츠 허브 > 응답 통합으로 이동합니다.
- 구성 중인 통합을 선택하고
Workload Identity Email필드에 서비스 계정 이메일을 입력합니다. Delegated Email필드에 통합에서 가장할 이메일을 입력합니다.- 저장 > 테스트를 클릭합니다. 테스트가 실패할 것으로 예상됩니다.
테스트 오른쪽에 있는 close_small을 클릭하고 오류 메시지에서
gke-init-python@...또는soar-python@...로 시작하는 ID 이메일을 검색합니다.이 고유한 이메일 주소를 복사합니다.
Google Cloud에서 인스턴스 ID 승인
Google SecOps 인스턴스의 고유 ID를 가져온 후에는 Google Cloud 리소스에 액세스할 수 있도록 승인해야 합니다. 이 단계를 통해 서비스 계정 가장이 사용 설정되므로 플랫폼에서 단기 토큰을 생성하고 정적 키 없이 사용자를 대신하여 작업을 실행할 수 있습니다.
Google Cloud 콘솔에서 IAM 및 관리자 > 서비스 계정으로 이동합니다.
타겟 서비스 계정을 선택하고 권한 > 액세스 권한 부여로 이동합니다.
고유 이메일 주소를 새 주 구성원 필드에 붙여넣고 서비스 계정 토큰 생성자 역할(
roles/iam.serviceAccountTokenCreator)을 할당합니다.
통합 매개변수
Cloud ID 통합에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 |
|---|---|
Service Account JSON File Content |
(선택사항) 서비스 계정 키 JSON 파일의 콘텐츠입니다. 이 매개변수 또는 워크로드 아이덴티티 이메일을 구성할 수 있습니다. 이 방법을 사용하려면 서비스 계정 생성 중에 다운로드한 키 파일의 전체 JSON 문자열을 붙여넣으세요. |
Workload Identity Email |
(선택사항) 서비스 계정의 클라이언트 이메일 주소입니다. 이 매개변수 또는 서비스 계정 JSON 파일 콘텐츠를 구성할 수 있습니다. 서비스 계정 가장에 이 메서드를 사용하려면 서비스 계정에서 Google SecOps 인스턴스 ID에 서비스 계정 토큰 생성자 역할을 부여해야 합니다. |
Delegated Email |
필수 항목입니다. 통합에서 작업을 실행하는 데 사용하는 이메일 주소입니다. 이 계정에 환경 내에서 필요한 통합 작업을 실행할 수 있는 적절한 위임된 권한이 있는지 확인합니다. |
Verify SSL |
(선택사항) 선택하면 통합에서 Cloud Identity 서버에 연결할 때 SSL 인증서를 검증합니다. 기본적으로 사용 설정됩니다. |
Google SecOps에서 통합을 구성하는 방법에 대한 안내는 통합 구성을 참고하세요.
필요한 경우 이후 단계에서 변경할 수 있습니다. 통합 인스턴스를 구성한 후 플레이북에서 사용할 수 있습니다. 여러 인스턴스를 구성하고 지원하는 방법에 관한 자세한 내용은 여러 인스턴스 지원을 참고하세요.
작업
작업에 대한 자세한 내용은 Workdesk에서 대기 중인 작업에 응답 및 직접 조치 실행을 참고하세요.
핑
Ping 작업을 사용하여 Cloud ID와의 연결을 테스트합니다.
이 작업은 Google SecOps 항목에서 실행되지 않습니다.
작업 입력
이 작업에 필요한 입력 매개변수는 없습니다.
작업 출력
Ping 작업은 다음 출력을 제공합니다.
| 작업 출력 유형 | 가용성 |
|---|---|
| 케이스 월 연결 | 사용 불가 |
| 케이스 월 링크 | 사용 불가 |
| 케이스 월 테이블 | 사용 불가 |
| 보강 테이블 | 사용 불가 |
| JSON 결과 | 사용 불가 |
| 출력 메시지 | 사용 가능 |
| 스크립트 결과 | 사용 가능 |
출력 메시지
Ping 작업은 다음 출력 메시지를 반환할 수 있습니다.
| 출력 메시지 | 메시지 설명 |
|---|---|
|
작업이 완료되었습니다. |
Failed to connect to the Cloud Identity server! Error is ERROR_REASON |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에는 Ping 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.
| 스크립트 결과 이름 | 값 |
|---|---|
is_success |
true 또는 false |
감지기 URL 목록에 항목 추가
감지기 URL 목록에 항목 추가 작업을 사용하여 Cloud Identity 정책 감지 목록에 항목을 추가합니다.
이 작업은 다음 Google SecOps 항목에서 실행됩니다.
- URL
- 도메인
작업 입력
감지기 URL 목록에 항목 추가 작업에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 |
|---|---|
Detector Policy ID |
필수 항목입니다. 업데이트할 감지기 정책의 고유 식별자입니다. |
URL |
(선택사항) 감지기 목록에 추가할 URL의 쉼표로 구분된 목록입니다. |
Domain |
(선택사항) 감지기 목록에 추가할 도메인의 쉼표로 구분된 목록입니다. |
작업 출력
감지기 URL 목록에 항목 추가 작업은 다음 출력을 제공합니다.
| 작업 출력 유형 | 가용성 |
|---|---|
| 케이스 월 연결 | 사용 불가 |
| 케이스 월 링크 | 사용 불가 |
| 케이스 월 테이블 | 사용 불가 |
| 보강 테이블 | 사용 불가 |
| JSON 결과 | 사용 가능 |
| 출력 메시지 | 사용 가능 |
| 스크립트 결과 | 사용 가능 |
JSON 결과
다음 예는 감지기 URL 목록에 항목 추가 작업을 사용할 때 수신되는 JSON 결과 출력을 보여줍니다.
{
"type": "ADMIN",
"customer": "customers/<CUSTOMER_ID>",
"policyQuery": {
"query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('<ORG_UNIT_ID>'))",
"orgUnit": "orgUnits/<ORG_UNIT_ID>"
},
"setting": {
"type": "settings/detector.url_list",
"value": {
"displayName": "test_url_list_detector",
"description": "test_url_list_detector desc",
"urlList": {
"urls": [
"[http://example.com](http://example.com)",
"example.org",
"bad_entity.com"
]
}
}
}
}
출력 메시지
감지기 URL 목록에 항목 추가 작업은 다음 출력 메시지를 반환할 수 있습니다.
| 출력 메시지 | 메시지 설명 |
|---|---|
|
작업이 완료되었습니다. |
Error executing action "Add Entity To Detector URL List". Reason: ERROR_REASON |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에는 감지기 URL 목록에 엔티티 추가 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.
| 스크립트 결과 이름 | 값 |
|---|---|
is_success |
true 또는 false |
정책 만들기
정책 만들기 작업을 사용하여 Cloud ID 내에 새 정책 항목을 만듭니다.
이 작업은 Google SecOps 항목에서 실행되지 않습니다.
작업 입력
정책 만들기 작업에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 |
|---|---|
Policy Entry |
필수 항목입니다. 추가할 정책 항목의 구성을 나타내는 JSON 객체입니다. |
정책 구성 예시
다음 예시 구성에서는 Policy Entry 매개변수를 구조화하는 방법을 보여줍니다.
예 1: URL 목록 감지기
{
"type": "ADMIN",
"customer": "customers/<CUSTOMER_ID>",
"policyQuery": {
"orgUnit": "orgUnits/<ORG_UNIT_ID>",
"sortOrder": 1
},
"setting": {
"type": "settings/detector.url_list",
"value": {
"displayName": "BlockUrlDetector",
"description": "Blocked urls for security reasons",
"urlList": {
"urls": [
"www.medium.com",
"medium.com",
"wikipedia.org"
]
}
}
}
}
예 2: DLP 규칙
{
"type": "ADMIN",
"customer": "customers/<CUSTOMER_ID>",
"policyQuery": {
"query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('<ORG_UNIT_ID>'))",
"orgUnit": "orgUnits/<ORG_UNIT_ID>",
"sortOrder": 1
},
"setting": {
"type": "settings/rule.dlp",
"value": {
"display_name": "TestRule",
"description": "GoogleSecOps URL Blocklist Rule. Keeps state of blocked URLs. Manual modification is not advised",
"triggers": [
"google.workspace.chrome.url.v1.navigation"
],
"condition": {
"contentCondition": "url.matches_url_list('policies/<DETECTOR_POLICY_ID>')"
},
"action": {
"chromeAction": {
"blockContent": {
"actionParams": {
"customEndUserMessage": {
"unsafeHtmlMessageBody": "(EQ)🚫 BlockedAccess denied."
}
}
}
}
},
"state": "ACTIVE"
}
}
}
작업 출력
정책 만들기 작업은 다음 출력을 제공합니다.
| 작업 출력 유형 | 가용성 |
|---|---|
| 케이스 월 연결 | 사용 불가 |
| 케이스 월 링크 | 사용 불가 |
| 케이스 월 테이블 | 사용 불가 |
| 보강 테이블 | 사용 불가 |
| JSON 결과 | 사용 가능 |
| 출력 메시지 | 사용 가능 |
| 스크립트 결과 | 사용 가능 |
JSON 결과
다음 예는 정책 만들기 작업을 사용할 때 수신되는 JSON 결과 출력을 보여줍니다.
{
"type": "ADMIN",
"customer": "customers/<CUSTOMER_ID>",
"policyQuery": {
"query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('<ORG_UNIT_ID>'))",
"orgUnit": "orgUnits/<ORG_UNIT_ID>"
},
"setting": {
"type": "settings/rule.dlp",
"value": {
"display_name": "test_create_rule",
"triggers": [
"google.workspace.chrome.file.v1.download"
],
"state": "ACTIVE",
"action": {
"chromeAction": {
"warnUser": {}
}
}
}
}
}
출력 메시지
정책 만들기 작업은 다음 출력 메시지를 반환할 수 있습니다.
| 출력 메시지 | 메시지 설명 |
|---|---|
|
작업이 완료되었습니다. |
Error executing action "Create Policy". Reason: ERROR_REASON |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에는 정책 만들기 작업을 사용할 때 스크립트 결과 출력의 값이 나와 있습니다.
| 스크립트 결과 이름 | 값 |
|---|---|
is_success |
true 또는 false |
정책 나열
정책 나열 작업을 사용하여 Cloud ID에서 기존 정책 목록을 가져옵니다.
이 작업은 Google SecOps 항목에서 실행되지 않습니다.
작업 입력
정책 나열 작업에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 |
|---|---|
Organization Unit Name |
필수 항목입니다. 정책을 나열할 조직 단위의 이름입니다. |
Policy Type Filter |
(선택사항) 목록을 필터링하는 데 사용된 정책 유형입니다. 가능한 값: 기본값은 |
Settings Type Filter |
(선택사항) 설정 유형별로 정책을 필터링하는 데 사용되는 정규 표현식 패턴입니다. 이 필터는 API 요청에 직접 적용됩니다. |
Settings Display Name Filter |
(선택사항) 정책 설정을 필터링하는 데 사용되는 표시 이름의 쉼표로 구분된 목록입니다. |
Max Results To Return |
(선택사항) 작업 실행에 대해 반환할 최대 결과 수입니다. 기본값은 |
작업 출력
정책 나열 작업은 다음 출력을 제공합니다.
| 작업 출력 유형 | 가용성 |
|---|---|
| 케이스 월 연결 | 사용 불가 |
| 케이스 월 링크 | 사용 불가 |
| 케이스 월 테이블 | 사용 불가 |
| 보강 테이블 | 사용 불가 |
| JSON 결과 | 사용 가능 |
| 출력 메시지 | 사용 가능 |
| 스크립트 결과 | 사용 가능 |
JSON 결과
다음 예시는 정책 목록 작업을 사용할 때 수신되는 JSON 결과 출력을 보여줍니다.
[
{
"name": "policies/123",
"customer": "customers/123",
"type": "ADMIN",
"policy_query": {
"query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('12345'))",
"orgUnit": "orgUnits/12345",
"sortOrder": 1
},
"setting": {
"type": "settings/rule.dlp",
"value": {
"display_name": "Test DLP Rule"
}
}
}
]
출력 메시지
정책 나열 작업은 다음 출력 메시지를 반환할 수 있습니다.
| 출력 메시지 | 메시지 설명 |
|---|---|
|
|
작업이 완료되었습니다. |
Error executing action "List Policies". Reason: ERROR_REASON |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에는 정책 나열 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.
| 스크립트 결과 이름 | 값 |
|---|---|
is_success |
true 또는 false |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.