Google Cloud Platform (GCP) 資産インベントリの検出

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:12分
  • ServiceNow ディスカバリー アプリケーションでは、Google Cloud Platform (GCP) 資産インベントリパターンを使用して、GCP のリソースおよびポリシーを検出します。 これらのリソースを検出するには、ServiceNow Store から ディスカバリーとサービスマッピングパターン アプリケーションをアップデートする必要があります。

    このパターンでは Asset Inventory API によってサポートされるサービスを可視化して、展開済み GCP サービスのインベントリデータを収集して CMDB を更新します。

    このパターンは、GCP でサポートされているすべてのリソース、またはリソースの包含リスト (事前設定済み) のいずれかのインベントリデータを収集します。クラウドインベントリリソース包含リストには、GCP Cloud Asset Inventory でサポートされているリソースタイプのうち、Compute Engine リソースと IAM ポリシーを除いたすべてが含まれます。要件に応じて、追加のリソースタイプを使用して包含リストを拡張できます。Google Cloud アセットの詳細については、https://cloud.google.com/resource-manager/docs/cloud-asset-inventory/overview を参照してください。

    ストアでアプリを要求する

    ServiceNow Store Web サイトにアクセスして利用可能なすべてのアプリを表示し、ストアにリクエストを送信する方法について確認してください。リリースされたすべてのアプリのリリースノート情報については、「ServiceNow Storeバージョン履歴のリリースノート」を参照してください。

    ディスカバリーとサービスマッピングパターンバージョン 1.18.1 以降では、サーバーレスとクラウドディスカバリーの 2 種類のディスカバリーでGCPストレージを検出できます。クラウドディスカバリーのスケジュールを実行すると、個別のスケジュールを手動で構成することなく、すべての GCP プロジェクトごとに 1 つのスケジュールを実行できます。以前と同様にサーバーなしディスカバリーを引き続き使用することもできます。

    拡張 Google Cloud Platform (GCP) 資産インベントリパターンは、クエリを実行してシステムの構成を確認し、構成に従ってディスカバリーをトリガーします。順序別のクエリ:
    1. ディスカバリーパターンランチャーパラメーターが構成されている場合、パターンによってサーバーなしディスカバリースケジュールがトリガーされます。

    2. 前のクエリーで結果が返されない場合、 mid.gcp_resource_inventory_bucketpath MID サーバー プロパティが構成されていれば、パターンはクエリを続行します。実行すると、パターンはクラウドアカウント別にクラウドディスカバリースケジュールを実行します。

    3. 前のクエリーで結果が返されない場合、 mid.gcp_resource_inventory_bucketpath.default MID サーバー プロパティが構成されていれば、パターンはクエリを続行します。これを行うと、パターンによってデフォルトのクラウドディスカバリースケジュールがトリガーされます。

    4. これらのプロパティのいずれも設定されていない場合、パターンは正常に終了します。

    前提条件

    ストアアプリが最新であることを確認する
    • ディスカバリーとサービスマッピングパターン
    • ヴィジビリティコンテンツ
    GCP クラウド資産 API を使用するためのディスカバリーの許可
    • API エンドポイント: https://cloudasset.googleapis.com/v1/projects/<account_id>:exportAssets
    • 指定されたリソースの親に対して、次の IAM 権限の 1 つ以上が必要です。
      • cloudasset.assets.exportResource
      • cloudasset.assets.exportIamPolicy
    クラウドストレージ API のサービスアカウントユーザー
    ServiceNow クラウドサービスアカウントには、API エンドポイント (https://www.googleapis.com/storage/v1) にアクセスするために、GCP からの読み取り専用権限が必要です。
    注:
    暗号化ページのヘッダーを使用して、次の作業を行えます。
    • お客様提供の暗号化キーで暗号化されたオブジェクトをダウンロードする。
    • コンテンツハッシュを使用してオブジェクトメタデータを取得する。
    Cloud Storage バケットの読み取りと書き込みの権限
    • ストレージオブジェクトクリエーター
    • ストレージオブジェクトビューア
    • ストレージオブジェクトアドミン
    Google Cloud コンソールを使用したクラウドストレージバケットの作成
    1. Google Cloud コンソールに移動します。
    2. ナビゲーションメニューからクラウドストレージ > バケット.
    3. 新しいバケットを作成するには、[+ 作成] を選択します。
    4. [バケットを作成 (Create a bucket)] ページで、バケット情報を入力します。
      フィールド 説明
      バケットに名前を付ける (Name your bucket) グローバルに一意のバケット名を入力します。
      データの保存場所を選択 (Choose where to store your data) バケットデータを永続的に保存する場所タイプと場所を選択します。
      • 場所タイプ (Location type):グローバルストレージ用のマルチリージョン (us、eu、asia など)。
      • 場所 (Location):データの保存に使用できる Cloud Storage の場所のリスト。
      データのストレージクラスを選択 (Choose a storage class for your data) ニーズに合った適切なストレージクラス (Standard、Nearline、Coldline、Archive など) を選択します。
      オブジェクトへのアクセスを制御する方法を選択 (Choose how to control access to objects) バケットでパブリックアクセス防止を適用するかどうかを選択します。
      オブジェクトデータの保護方法を選択 (Choose how to protect object data) 必要に応じて、保護ツールを構成します。
    5. [Create] を選択します。
      注:
      詳細については、『Google Cloud Storage ドキュメント』を参照してください。
    ストレージバケットの保持ポリシー
    ストレージバケットの保持ポリシーがアクティブになっていないことを確認します。保持ポリシーがアクティブな場合、自動生成されたインベントリデータファイルをパターンで削除することはできません。
    サーバーレスディスカバリースケジュールの作成

    GCP 資産インベントリのターゲット検出を実行するための検出スケジュールを作成します。

    1. 移動先 ディスカバリー > ディスカバリースケジュール.
    2. [新規] をクリックし、フォームに入力します。サーバーなし検出
      表 : 1. ディスカバリースケジュールフォーム
      フィールド 説明
      名前 ディスカバリー スケジュールの名前。たとえば、Discover GCP Asset Inventory などです。
      検出 検出タイプ。

      [サーバーなし] を選択します。

      MID サーバー MID サーバー の名前。
      実行 次の検出をいつ実行するかを選択するオプション。
    3. ディスカバリースケジュールフォームのヘッダーを右クリックし、[保存] を選択します。
    4. [サーバーなし実行パターン] タブをクリックし、[新規] をクリックして、フォームに入力します。サーバーなし実行パターン
      表 : 2. サーバーなし実行パターンフォーム
      フィールド 説明
      名前 このサーバーなし実行パターンの名前。たとえば、Discover GCP Asset Inventory などです。
      パターン Google Cloud Platform (GCP) リソースインベントリパターンを選択します。
      プロキシーホスト プロキシー サーバーをインストールするマシンの完全修飾ドメイン名。[グローバル] を指定します。
      アクティブ このスケジュールを検出で有効にするためのオプション。検出を有効にするには、このチェックボックスをオンにします。
    5. [送信] を選択します。
    6. [ ディスカバリーパターンランチャーパラメーター (Discovery Pattern Launcher Parameters )] タブで、関連する値を使用して次のパラメーターを構成します。
      パラメーター
      cloud_account_id GCP 内のプロジェクト ID。
      full_path_file ストレージバケットの完全なファイルパス。例:gs://<bucketname>
      cloud_cred_id GCP 認証情報の sysid。
      cloud_datacenter_type cmdb_ci_google_datacenter
    MID サーバープロパティを持つストレージディスカバリー構成
    1. mid.gcp_resource_inventory_bucketpath プロパティを設定します。
      1. 移動先 すべて > MID サーバー > プロパティ をクリックし、 mid.gcp で始まる名前でリストをフィルタリングします。
      2. [mid.gcp_resource_inventory_bucketpath] を選択します。
      3. フォームに入力します。
        1. アカウント ID を含めるようにプロパティ の [名前] フィールドを mid.gcp_resource_inventory_bucketpath.<クラウドアカウント ID> として構成します。
        2. [ ] フィールドに、ストレージバケットの完全なファイルパスであるバケット URI を入力します。例:gs://<bucketname>
        3. [MID サーバー] フィールドで空白のままにして、すべての MID サーバーに影響するMID サーバープロパティを設定します。特定のMID サーバーMID サーバープロパティを設定するには、優先サーバーを選択します。
        4. [更新] を選択します。
    2. mid.gcp_resource_inventory_bucketpath.default プロパティを設定します。
      1. 移動先 すべて > MID サーバー > プロパティ をクリックし、 mid.gcp で始まる名前でリストをフィルタリングします。
      2. [mid.gcp_resource_inventory_bucketpath.default] を選択します。
      3. [ ] フィールドに、ストレージバケットの完全なファイルパスであるバケット URI を入力します。例:gs://<bucketname>
      4. [更新] を選択します。

    詳しくは、あるプロジェクトから別のプロジェクトへのアセットメタデータの書き出しを参照してください

    クラウドインベントリリソース包含リスト
    • GCP でサポートされているリソースのインベントリデータを収集するには、Now Platform で、[クラウドインベントリリソース包含リスト (Cloud Inventory Resource Inclusion List)] に移動し、すべての GCP テーブルレコードをクリアします。
      図 : 1. クラウドインベントリリソース包含リスト

      GCP 包含リスト
    • クラウドインベントリリソース包含リストを使用して、GCP リソースのディスカバリーを微調整します。

      展開に GCP ディスカバリーのカスタムパターンが含まれている場合は、GCP リソースが 2 回検出されないようにします。

      1. アプリケーションスコープがディスカバリーとサービスマッピングパターンであることを確認します。
        1. 移動先 設定 > 開発者.
        2. [ディスカバリーとサービスマッピングパターン][アプリケーション] リストから選択します。
      2. 移動先 システム定義 > テーブル.
      3. クラウドインベントリリソース包含リスト [sa_cloud_inventory_resource_whitelist] テーブルを開きます。
      4. [関連リンク] の下の [リストを表示] をクリックします。
      5. カスタムパターンを持つリソースタイプを選択し、[選択した行のアクション] リストから [削除] を選択します。
      クラウドインベントリリソース包含リストは、共通サービスで事前定義されています。次で示すように、パターンで検出するリソースタイプを追加して、包含リストを拡張できます。
      注:
      ベースシステムで提供されているリストに変更を加えると、アプリケーションの更新時に自動的に更新されなくなります。カスタマイズしたリストは、自分で管理する必要があります。
      1. クラウドインベントリリソース包含リスト [sa_cloud_inventory_resource_whitelist] テーブルを開きます。
      2. [新規] をクリックします。
      3. フォームに入力し、[送信] をクリックします。
        注:
        追加のリソースタイプの名前は、適切なベンダー命名規則に準拠する必要があります。
        フィールド 説明
        クラウドベンダー リソースタイプのベンダー:GCP。
        リソースタイプ GCP リソースタイプ値。
        アプリケーション アプリケーションスコープ:ディスカバリーとサービスマッピングパターン。

      変更は、次にパターンを実行するときに適用されます。

    水平ディスカバリー中にディスカバリーによって収集されるデータ

    このパターンでは、組織内のすべての GCP サービスを可視化するデータを検出します。検出されるデータには、次のテーブルとフィールドが含まれています。

    テーブルとフィールド 説明
    メイン CI [cmdb_ci_cmp_resource]
    object_id アイテムの ID。この URL を使用してアイテムにアクセスします。
    name リソースの名前。
    resource_type JSON ファイルのデータに基づいた資産リソースタイプ。
    キー値 [cmdb_key_value]
    キー GCP タグキー名。
    GCP タグ値の名前。

    依存関係ビューマップには、組織内で検出された構成アイテム (CI) とそれらの関係が表示されます。ここで、CI 間の意味のある関係だけが、ディスカバリー で CI を識別するときに役立ちます。

    GCP インベントリ CI は、論理データセンター (LDC) CI またはクラウドサービスアカウント CI のいずれかに関連付けられています。この例では、インベントリ CI はクラウドサービスアカウント CI に関連付けられています。

    図 : 2. クラウドサービスアカウント CI を示す依存関係ビューマップ

    依存関係ビューマップ上の CI および接続

    CI 関係

    以下の関係は、GCP 資産インベントリディスカバリーをサポートするために作成されています。

    CI 関係 CI
    グローバルリソースの場合:
    メイン CI [cmdb_ci_cmp_resource] Contained by::Contains クラウドサービスアカウント
    リージョンリソースの場合:
    メイン CI [cmdb_ci_cmp_resource] HostedOn::Hosts 論理データセンター (LDC)