Cloud Asset Inventory のクイックスタート

このガイドでは、Compute Engine 仮想マシン(VM)インスタンスと Cloud Asset API を使用してスナップショットをエクスポートする方法とプロジェクト内のアセットの履歴を取得する方法について説明します。Cloud Asset API を呼び出して、フォルダや組織全体をエクスポートしたり、組織内のアセットの履歴を取得したりすることもできます。

詳細については、Cloud Asset Inventory の概要をご覧ください。

始める前に

  1. プロジェクトで Cloud Asset API を有効にします

  2. プロジェクト内に既存のサービス アカウントがない場合は、新しいサービス アカウントを作成します

  3. プロジェクトに対する owner または cloudasset.viewer 役割をサービス アカウントに付与して、Cloud Asset API を有効にします。

    上記の役割のいずれかを含む役割でもアクセス権が付与されます。役割と権限について詳しくは、役割についてをご覧ください。

インスタンスの設定

  1. エクスポートしたデータを保存できる Cloud Storage バケットがプロジェクトに存在しない場合は、新しいバケットを作成します。
  2. [インスタンスの作成] ページに移動してサービス アカウントを選択することにより、新しい Compute Engine VM インスタンスを設定します。

    [インスタンスの作成] ページに移動

  3. [アクセス スコープ] で [すべての Cloud API に完全アクセス権を許可] を選択します。
  4. [作成] をクリックして、インスタンスを起動します。

アセット スナップショットのエクスポート

Cloud Asset API を使用してプロジェクトのすべてのアセット メタデータをエクスポートするには、以下の手順を実施します。

組織のアセット メタデータをエクスポートするには、curl コマンドで https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_NUMBER:exportAssets REST メソッドを使用します。

フォルダのアセット メタデータをエクスポートするには、https://cloudasset.googleapis.com/v1/folders/FOLDER_NUMBER:exportAssets REST メソッドを使用します。

  1. [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. インスタンス リストの横にある [SSH] ボタンをクリックして、インスタンスに接続されたウェブ SSH クライアントを開きます。
  3. ウェブ SSH クライアントで、次の呼び出しを使用して、サービス アカウント用の認証トークンを生成します。

    TOKEN=$(gcloud auth application-default print-access-token)
    
  4. 次の curl コマンドを使用して、プロジェクトのすべてのアセット メタデータをエクスポートします。

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
         -d '{"contentType":"RESOURCE", "outputConfig":{"gcsDestination":{"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
            https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets
    

また、次のコマンドを使用して、よりきめ細かなレベルでアセット メタデータをエクスポートすることもできます。

プロジェクト内の Cloud IAM ポリシーをエクスポートする

curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
     -d '{"contentType":"IAM_POLICY", "outputConfig":{"gcsDestination":{"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
        https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets

プロジェクト内のメタデータを含まないすべてのアセット名をエクスポートする

curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
     -d '{"outputConfig":{"gcsDestination":{"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
        https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets

アセット スナップショットの表示

エクスポートしたアセットを表示するには、Cloud Storage ブラウザページに移動して、新しく作成されたファイルを開きます。エクスポートは、アセットとそのリソース名の一覧を表示します。

エクスポートのステータスの確認

アセットのエクスポートは時間のかかるプロセスであり、ほとんどのプロジェクト、フォルダ、組織では数秒を要します。多数のプロジェクトやアセットを含む大規模なフォルダと組織では、もっと時間がかかることもあります。エクスポートのオペレーション番号を使用して、エクスポート リクエストのステータスを確認できます。

エクスポートのステータスを確認するには:

  1. レスポンスの name フィールドからオペレーション番号を取得します。

    "name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_NUMBER"
    
  2. インスタンス用のウェブ SSH クライアントを開き、次の curl コマンドを入力します。

    curl -H "Authorization: Bearer $TOKEN" \
         -H "Content-Type: application/json" \
            https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_NUMBER
    

次のようなレスポンスが返されます。エクスポート プロセスが完了すると、done フィールドが true に設定されます。

{
  "name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_NUMBER",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.asset.v1.ExportAssetsRequest",
    "parent": "projects/PROJECT_NUMBER",
    "outputConfig": {
      "gcsDestination": {
        "uri": "gs://YOUR_BUCKET/NEW_FILE"
      }
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.asset.v1.ExportAssetsResponse",
    "readTime": [timestamp],
    "outputConfig": {
      "gcsDestination": {
        "uri": "gs://YOUR_BUCKET/NEW_FILE"
      }
    }
  }
}

アセットの履歴の取得

Cloud Asset API を使用して、プロジェクト内の指定したアセットの特定期間内の作成履歴、削除履歴、更新履歴を取得するには、以下の手順に従います。

組織内のアセットの履歴を取得するには、curl コマンドで https://cloudasset.googleapis.com/v1/projects/ORGANIZATION_NUMBER:batchGetAssetsHistory REST メソッドを使用します。

  1. [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. インスタンス リストの横にある [SSH] ボタンをクリックして、インスタンスに接続されたウェブ SSH クライアントを開きます。
  3. ウェブ SSH クライアントで、次の呼び出しを使用して、サービス アカウント用の認証トークンを生成します。

    TOKEN=$(gcloud auth application-default print-access-token)
    
  4. 履歴を検索するアセットの完全なリソース名を確認します。次の例では、//compute.googleapis.com/projects/PROJECT_ID/global/firewalls/default-firewall を使用します。

  5. 期間の開始時間と終了時間(RFC 3339 UTC 形式)を決定します。開始時間のみが必須です。詳細については、TimeWindow をご覧ください。

  6. すべてのリソース メタデータを含む、プロジェクト内の指定したアセットの履歴を取得します。

    curl -X POST -H "X-HTTP-Method-Override: GET" \
                 -H "Authorization: Bearer $TOKEN" \
                 -H "Content-Type: application/json" \
                 -d '{"contentType":"RESOURCE", \
                      "assetNames": \
                        "//compute.googleapis.com/projects/PROJECT_ID/global/firewalls/default-firewall", \
                      "readTimeWindow": {"startTime": "2014-10-02T15:01:23.045123456Z"}}' \
                 https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory

履歴は次の形式で返されます。

{
  "assets": [
    {
      "window": {
        "startTime": 

次のコマンドを使用して、よりきめ細かなレベルでアセット メタデータ履歴をエクスポートできます。

リソース メタデータを含まない、プロジェクト内の指定したアセットの履歴を取得する

curl -X POST -H "X-HTTP-Method-Override: GET" \
             -H "Authorization: Bearer $TOKEN" \
             -H "Content-Type: application/json" \
             -d '{"assetNames": \
                    "//compute.googleapis.com/projects/my_project_id/global/firewalls/default-firewall", \
                "readTimeWindow": {"startTime": "2014-10-02T15:01:23.045123456Z"}}' \
             https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory

プロジェクト内の指定したアセットのすべての Cloud IAM ポリシーの履歴を取得する

curl -X POST -H "X-HTTP-Method-Override: GET" \
             -H "Authorization: Bearer $TOKEN" \
             -H "Content-Type: application/json" \
             -d '{"contentType":"IAM_POLICY", \
                  "assetNames": \
                    "//compute.googleapis.com/projects/my_project_id/global/firewalls/default-firewall", \
                  "readTimeWindow": {"startTime": "2014-10-02T15:01:23.045123456Z"}}' \
             https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Resource Manager のドキュメント