ローカルマシンでの Cloud Asset API の呼び出し

このページでは、ローカルマシンから Cloud Asset API を呼び出す方法について説明します。

始める前に

  1. ローカルマシンに oauth2l をインストールして、Google OAuth システムとやり取りできるようにします。
  2. Unix curl コマンドにアクセスできることを確認します。プロジェクト、フォルダ、または組織に次の役割のいずれかを適用します。
    • roles/owner
    • roles/cloudasset.viewer
  3. エクスポートされたスナップショットを保存するための Cloud Storage バケットを設定します。

認証情報ファイルのダウンロード

Cloud Asset API を呼び出すには JSON 認証情報ファイルが必要です。以下の手順に従ってファイルをダウンロードしてください。

  1. [認証情報] ページに移動します。

  2. [認証情報の作成] プルダウンを開き、[OAuth クライアント ID] を選択します。

  3. 新しいプロジェクト用のクライアント ID を作成する場合、OAuth 同意画面を設定する必要があります。同意画面は、クライアント ID を使用するアプリケーションが限定公開データへのアクセスをリクエストするときに、常に表示されます。プロンプトが表示されたら、次の操作を行います。

    1. [同意画面の構成] をクリックして、同意画面に必要な情報を入力します。

    2. 変更内容を保存して、クライアント ID の作成に戻ります。

  4. [クライアント ID の作成] ページの [アプリケーションの種類] で、[その他] をクリックします。

  5. 認証情報の名前を入力し、[作成] をクリックします。確認ダイアログが開き、クライアント ID とクライアント シークレットが表示されます。

  6. 確認ダイアログを閉じ、右側の [ダウンロード] アイコンをクリックして、新しいクライアント ID JSON ファイルを保存します。

  7. パスが ~/credentials.json になるように、ダウンロードした JSON ファイルに名前を付けて移動します。

環境の準備

以下の手順に従って、Cloud Asset API を呼び出す環境を準備します。

  1. 次のコマンドを使用して、初期設定を確認します。

    oauth2l header --json ~/credentials.json cloud-platform
    

    出力は次のようになります。

    Authorization: Bearer y29.xxxxxxx
    
  2. 次のコマンドを使用して、Google REST API を呼び出すためのシェル エイリアスを定義します。

    alias gcurl='curl -H "$(oauth2l header --json ~/credentials.json \
    cloud-platform)" -H "Content-Type: application/json" '
    

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

エクスポートするスナップショットに必要な詳細のレベルをサポートするコマンドを選択します。次のコマンドは、エクスポートしたスナップショットを、gs://YOUR_BUCKET/NEW_FILE にある Cloud Storage バケットに保存します。

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

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

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

gcurl -d '{"outputConfig":{"gcsDestination": \
          {"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
           https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets

プロジェクト内のすべてのリソース メタデータをエクスポートする

gcurl -d '{"contentType":"RESOURCE", "outputConfig":{"gcsDestination": \
          {"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
           https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets

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

gcurl -d '{"contentType":"IAM_POLICY", "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. 次のコマンドにオペレーション番号を入力します。

    gcurl https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_NUMBER

次のようなレスポンスが返されます。

{
  "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"
      }
    }
  }
}

フォルダまたは組織全体の ExportAssets を呼び出すこともできます。詳細については、Cloud Asset API リファレンスをご覧ください。

アセットの履歴の取得

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

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

  1. 環境を準備して Cloud Asset API を呼び出せるようにします。
  2. 履歴を検索するアセットの完全なリソース名を確認します。次の例では、//compute.googleapis.com/projects/my_project_id/global/firewalls/default-firewall を使用します。
  3. 期間の開始時間と終了時間(RFC 3339 UTC 形式)を決定します。開始時間のみが必須です。詳細については、TimeWindow をご覧ください。
  4. レスポンスに必要な詳細のレベルをサポートするコマンドを選択します。

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

gcurl -d '{"contentType":"RESOURCE", \
           "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

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

gcurl -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 ポリシーの履歴を取得する

gcurl -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

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

{
  "assets": [
    {
      "window": {
        "startTime": 
このページは役立ちましたか?評価をお願いいたします。

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

Resource Manager のドキュメント