GCP(Google Cloud Platform) 자산 인벤토리 검색
ServiceNow 디스커버리 애플리케이션은 GCP(Google Cloud Platform) 자산 인벤토리 패턴을 사용하여 GCP 자원 및 정책을 찾습니다. 이러한 자원을 검색하려면 디스커버리 및 서비스 매핑 패턴 에서 애플리케이션을 ServiceNow Store업데이트해야 합니다.
이 패턴은 Asset Inventory API에서 지원되는 서비스에 대한 가시성을 제공하며 배포된 GCP 서비스에서 인벤토리 데이터를 수집하고 CMDB를 업데이트합니다.
이 패턴은 모든 GCP 지원 자원이나 사전 구성된 자원 포함 목록에 대한 인벤토리 데이터를 수집합니다. 클라우드 인벤토리 자원 포함 목록에는 GCP 클라우드 자산 인벤토리에서 지원하는 모든 자원 유형이 포함됩니다(컴퓨팅 엔진 자원 및 IAM 정책 제외). 요구 사항에 따라 자원 유형을 추가하여 포함 목록을 확장할 수 있습니다. Google Cloud 자산에 관한 자세한 내용은 https://cloud.google.com/resource-manager/docs/cloud-asset-inventory/overview 문서를 참조하십시오.
스토어에서 앱 요청
ServiceNow Store 웹 사이트를 방문하면 사용 가능한 모든 앱을 확인하고 스토어에 요청을 제출하는 방법에 대한 정보를 참조할 수 있습니다. 출시된 모든 앱의 누적 릴리스 정보는 ServiceNow Store 버전 기록 릴리스 정보를 참조하십시오.
디스커버리 및 서비스 매핑 패턴 버전 1.18.1부터 두 가지 디스커버리 유형(서버리스 및 클라우드 디스커버리)으로 GCP 스토리지를 디스커버리할 수 있습니다. 클라우드 디스커버리 일정을 실행하면 별도의 일정을 수동으로 구성하지 않고도 모든 GCP 프로젝트당 하나의 일정을 실행할 수 있습니다. 이전과 같이 서버리스 디스커버리를 계속 사용할 수도 있습니다.
-
디스커버리 패턴 시작 관리자 매개변수가 구성된 경우 패턴은 서버리스 디스커버리 일정을 트리거합니다.
-
이전 쿼리에 결과가 없는 경우 mid.gcp_resource_inventory_bucketpath MID 서버 속성이 구성되면 패턴이 쿼리를 계속 수행합니다. 이 경우 패턴은 클라우드 계정별로 클라우드 디스커버리 일정을 실행합니다.
-
이전 쿼리에 결과가 없는 경우 mid.gcp_resource_inventory_bucketpath.default MID 서버 속성이 구성되면 패턴이 쿼리를 계속 수행합니다. 이 경우 패턴은 기본 클라우드 디스커버리 일정을 트리거합니다.
- 이러한 속성이 전혀 구성되지 않은 경우에는 패턴이 적절하게 종료됩니다.
필요 조건
- 스토어 앱이 최신 버전인지 확인
-
- 디스커버리 및 서비스 매핑 패턴
- 가시성 컨텐츠
- 클라우드 자산 API를 사용하도록 디스커버리에 대한 GCP 인증
-
- API 엔드포인트: https://cloudasset.googleapis.com/v1/projects/<account_id>:exportAssets
- 지정된 자원 상위에 대해 다음 IAM 권한 중 하나 이상이 필요합니다.
- cloudasset.assets.exportResource
- cloudasset.assets.exportIamPolicy
- 클라우드 스토리지 API의 서비스 계정 사용자
- ServiceNow 클라우드 서비스 계정이 GCP에서 API 엔드포인트 - https://www.googleapis.com/storage/v1에 액세스하려면 읽기 전용 권한이 필요합니다.주:암호화 페이지의 헤더를 사용하여 다음을 수행할 수 있습니다.
- 고객이 제공한 암호화 키로 암호화된 객체를 다운로드합니다.
- 콘텐츠 해시를 사용하여 객체 메타데이터를 가져옵니다.
- 클라우드 스토리지 버킷을 읽고 쓸 수 있는 권한
-
- 스토리지 객체 작성자
- 스토리지 객체 뷰어
- 스토리지 객체 관리자
- Google Cloud 콘솔을 사용하여 클라우드 스토리지 버킷 생성
-
- Google 클라우드 콘솔로 이동합니다.
- 탐색 메뉴에서 .
- 새 버킷을 만들려면 + 만들기를 선택합니다.
- 버킷 생성 페이지에서 버킷 정보를 입력합니다.
필드 설명 버킷 이름 지정 버킷에 전역적으로 고유한 이름을 입력합니다. 데이터 저장 위치 선택 버킷 데이터가 영구적으로 저장될 위치 유형 및 위치를 선택합니다. - 위치 유형: 다중 지역, 글로벌 스토리지용(예: 미국, EU, 아시아).
- 위치: 데이터를 저장하는 데 사용할 수 있는 클라우드 스토리지 위치 목록입니다.
데이터에 대한 스토리지 클래스 선택 요구 사항에 적합한 스토리지 클래스(예: Standard, Nearline, Coldline 또는 Archive)를 선택합니다. 객체에 대한 접근을 제어하는 방법 선택 버킷이 퍼블릭 액세스 방지를 적용할지 여부를 선택합니다. 객체 데이터를 보호하는 방법 선택 필요한 경우 보호 도구를 구성합니다. - 생성을 선택합니다.주:자세한 내용은 Google 클라우드 스토리지 설명서를 참조하십시오.
- 스토리지 버킷의 보존 정책
- 스토리지 버킷의 보존 정책이 활성 상태가 아니어야 합니다. 보존 정책이 활성 상태이면 자동 생성된 인벤토리 데이터 파일을 패턴으로 삭제할 수 없습니다.
- 서버리스 디스커버리 일정 생성
-
GCP 자산 인벤토리의 지정된 디스커버리를 수행할 디스커버리 일정을 생성합니다.
- 다음으로 이동 .
- 새로 만들기를 클릭하고 양식을 작성합니다.
표 1. 디스커버리 일정 양식 필드 설명 이름 디스커버리 일정의 이름입니다. (예: GCP 자산 인벤토리 검색) 검색 검색 유형입니다. 서버리스를 선택합니다.
MID 서버 MID 서버의 이름입니다. 실행 다음 검색을 실행할 시기를 선택하는 옵션입니다. - 디스커버리 일정 양식의 헤더를 마우스 오른쪽 버튼으로 클릭하고 저장을 선택합니다.
- 서버리스 실행 패턴 탭을 클릭하고 새로 만들기를 클릭한 다음 양식을 작성합니다.
표 2. 서버리스 실행 패턴 양식 필드 설명 이름 이 서버리스 실행 패턴의 이름입니다. (예: GCP 자산 인벤토리 검색) 패턴 GCP(Google Cloud Platform) 자원 인벤토리 패턴을 선택합니다. 프록시 호스트 프록시 서버를 설치할 컴퓨터의 전체 주소 도메인 이름입니다. 전역을 지정합니다. 활성 검색에 이 일정을 사용하도록 설정하는 옵션입니다. 검색을 사용하려면 이 확인란을 선택합니다. - 제출을 선택합니다.
- 디스커버리 패턴 시작 관리자 매개변수 탭에서 해당 값을 사용하여 다음 매개변수를 구성합니다.
매개변수 값 cloud_account_id GCP 내 프로젝트 ID full_path_file 스토리지 버킷의 전체 파일 경로입니다. 예: gs://<bucketname>. cloud_cred_id GCP 자격 증명 sysid cloud_datacenter_type cmdb_ci_google_datacenter
- MID 서버 속성이 있는 스토리지 디스커버리 구성
-
-
mid.gcp_resource_inventory_bucketpath 속성을 구성합니다.
- 다음으로 이동 mid.gcp로 시작하는 이름을 기준으로 목록을 필터링합니다.
- mid.gcp_resource_inventory_bucketpath 매개변수를 선택합니다.
- 양식을 작성합니다.
- mid.gcp_resource_inventory_bucketpath.<Cloud Account Id>와 같이 계정 ID 를 포함하도록 속성 이름 필드를 구성합니다.
- 버킷 URI(스토리지 버킷의 전체 파일 경로)로 값 필드를 채웁니다. 예: gs://<bucketname>.
- MID 서버 필드에 모든 MID 서버에 영향을 주는 MID 서버 속성을 설정하려면 이 필드를 비워 둡니다. 특정 MID 서버에 대한 MID 서버 속성을 설정하려면 기본 서버를 선택합니다.
- 업데이트를 선택합니다.
-
mid.gcp_resource_inventory_bucketpath.default 속성을 구성합니다.
- 다음으로 이동 mid.gcp로 시작하는 이름을 기준으로 목록을 필터링합니다.
- mid.gcp_resource_inventory_bucketpath.default 매개변수를 선택합니다.
- 버킷 URI(스토리지 버킷의 전체 파일 경로)로 값 필드를 채웁니다. 예: gs://<bucketname>.
- 업데이트를 선택합니다.
자세한 내용은 한 프로젝트에서 다른 프로젝트로 자산 메타데이터 익스포트를 참조하십시오.
-
- 클라우드 인벤토리 자원 포함 목록
-
- GCP 지원 자원에 대한 인벤토리 데이터를 수집하기 위해 Now Platform에서 클라우드 인벤토리 자원 포함 목록으로 이동하여 모든 GCP 테이블 기록을 지우십시오.
그림 1. 클라우드 인벤토리 자원 포함 목록
- 클라우드 인벤토리 자원 포함 목록을 사용하여 GCP 자원 검색을 세부적으로 조정합니다.
배포에 GCP 검색을 위한 사용자 지정 패턴이 있는 경우 GCP 자원을 두 번 검색하지 않도록 하십시오.
- 애플리케이션 범위가 검색 및 서비스 매핑 패턴인지 확인하십시오.
- 다음으로 이동 .
- 애플리케이션 목록에서 검색 및 서비스 매핑 패턴을 선택합니다.
- 다음으로 이동 .
- 클라우드 인벤토리 자원 포함 목록 [sa_cloud_inventory_resource_whitelist] 테이블을 엽니다.
- 관련 링크에서 목록 표시를 클릭합니다.
- 사용자 지정 패턴이 있는 자원 유형을 선택하고 선택한 행에 대해 수행할 작업 목록에서 삭제를 선택합니다.
클라우드 인벤토리 자원 포함 목록은 공통 서비스로 미리 정의되어 있습니다. 다음과 같이 패턴에서 검색하려는 자원 유형을 추가하여 목록을 확장할 수 있습니다.주:기본 시스템에 제공된 목록을 수정하면 애플리케이션 업데이트 시 해당 목록이 더 이상 자동으로 업데이트 되지 않습니다. 사용자 지정 목록을 직접 유지 관리해야 합니다.- 클라우드 인벤토리 자원 포함 목록 [sa_cloud_inventory_resource_whitelist] 테이블을 엽니다.
- 새로 만들기를 클릭합니다.
- 양식을 작성한 다음 제출을 클릭합니다.주:추가적인 자원 유형의 이름은 적절한 벤더 명명 규칙을 따라야 합니다.
필드 설명 클라우드 벤더 자원 유형의 벤더(GCP)입니다. 자원 유형 GCP 자원 유형 값입니다. 애플리케이션 애플리케이션 범위가 검색 및 서비스 매핑 패턴입니다.
변경 내용은 다음에 패턴을 실행할 때 적용됩니다.
- 애플리케이션 범위가 검색 및 서비스 매핑 패턴인지 확인하십시오.
- GCP 지원 자원에 대한 인벤토리 데이터를 수집하기 위해 Now Platform에서 클라우드 인벤토리 자원 포함 목록으로 이동하여 모든 GCP 테이블 기록을 지우십시오.
가로 검색 중 검색에서 수집하는 데이터
이 패턴은 조직의 모든 GCP 서비스에 대한 가시성을 제공하는 데이터를 검색합니다. 검색된 데이터에는 다음과 같은 테이블과 필드가 포함됩니다.
| 테이블 및 필드 | 설명 |
|---|---|
| 메인 CI [cmdb_ci_cmp_resource] | |
| object_id | 항목의 ID입니다. 이 URL을 사용하여 항목에 접근합니다. |
| 이름 | 자원의 이름입니다. |
| resource_type | JSON 파일의 데이터에 따른 자산 자원 유형입니다. |
| 키 값 [cmdb_key_value] | |
| 키 | GCP 태그 키 이름입니다. |
| 값 | GCP 태그 값 이름입니다. |
의존성 뷰 맵에는 조직에서 디스커버리된 구성 항목(CI)과 해당 CI 간의 관계가 표시됩니다. 여기에서 CI 간의 의미 있는 관계는 디스커버리에서 CI를 식별하는 데 도움이 되는 관계뿐입니다.
각 GCP 인벤토리 CI는 논리 데이터센터(LDC) CI나 클라우드 서비스 계정 CI와 관련되어 있습니다. 이 예시에서는 인벤토리 CI가 클라우드 서비스 계정 CI와 관련되어 있습니다.
CI 관계
GCP 자산 인벤토리 검색을 지원하기 위해 생성되는 관계입니다.
| CI | 관계 | CI |
|---|---|---|
| 전역 자원의 경우 | ||
| 메인 CI [cmdb_ci_cmp_resource] | Contained by::Contains | 클라우드 서비스 계정 |
| 지역별 자원의 경우 | ||
| 메인 CI [cmdb_ci_cmp_resource] | HostedOn::Hosts | 논리 데이터센터(LDC) |