このページでは、Cloud Asset Inventory アセットリスト サービスの使用方法を説明します。Cloud Asset Inventory API を使用すると、特定のタイムスタンプにおけるアセットのリストをページ分けして表示できます。
始める前に
gcloud
gcloud
コマンドライン ツールを使用して Cloud Asset Inventory にアクセスする前に、Cloud Asset API を有効にします。API は Cloud Asset API コマンドを実行するプロジェクトでのみ有効にする必要があるのでご注意ください。
Cloud Asset Inventory API を有効にする- ローカル クライアントに Cloud SDK をインストールします。
API
- ローカルマシンに oauth2l をインストールして、Google OAuth システムとやり取りできるようにします。
- Unix
curl
コマンドにアクセスできるかを確認します。 - アセットを一覧表示するプロジェクトまたは組織で、次のいずれかのロールがアカウント割り当てられていることを確認します。
roles/cloudasset.viewer
roles/cloudasset.owner
アカウントを構成する
Cloud Asset API を呼び出すには、リソースを一覧表示するための cloudasset.assets.listResource
権限またはルート(親)リソース(一覧表示するアセットを含むプロジェクトまたは組織)の IAM ポリシーを一覧表示するための cloudasset.assets.listIamPolicy
権限が付与されている必要があります。
アカウントに Cloud Asset 閲覧者(roles/cloudasset.viewer
)のロール、Cloud Asset オーナー(roles/cloudasset.owner
)のロール、またはリソースルートに対するオーナー(roles/owner
)の基本ロールが付与されている場合、アカウントには、Cloud Asset API を呼び出すための十分な権限が付与されていることになります。それ以外の場合は、権限の構成ページの手順に従ってください。
アセットの一覧表示
Cloud Asset API を使用してプロジェクト内のアセットの一覧を任意の期間内に一覧表示するには、次の手順に従います。
gcloud
このセクションに記載のコマンドを実行すると、プロジェクト内のアセットが一覧表示されます。組織内のアセットを一覧表示するには、コマンドで --organization=ORGANIZATION_ID
フラグを使用します。
次の例では、プロジェクト内のアセットを一覧表示します。
なお、指定可能な最近の start-time
は、現在の時刻から 35 日間を引いた値(両端を含む)です。
- アカウントを構成するの手順に沿って、Cloud Asset API を呼び出せるようにします。
- 一覧表示するアセットのリソースタイプを決定します。これは、下記の例の asset-types 変数です。
- アセットを一覧表示する時間を決定します。これは、gcloud コマンドの snapshot-time(RFC 3339 UTC 形式)です。
尚、--billing-project
フラグを使用すると、課金プロジェクトを指定できます。これは、リクエストの送信に使用するプロジェクトです。プロジェクトからアセットを一覧表示するときに、フラグ --project
を使用して一覧表示するターゲット プロジェクトを指定できます。
フラグとオプションの全一覧を表示するには、gcloud alpha asset list
--help
を実行します。
すべてのリソース メタデータを含め、プロジェクト内のアセットを一覧表示します。
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud beta asset list --project='PROJECT_ID' \ --billing-project='BILLING_PROJECT_ID' \ --asset-types='compute.googleapis.com/Instance' \ --snapshot-time=$NOW \ --content-type='resource'
リソース メタデータを含めない形で、プロジェクト内のアセットを一覧表示します。
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud beta asset list --project='PROJECT_ID' \ --billing-project='BILLING_PROJECT_ID' \ --asset-types='compute.googleapis.com/Instance' \ --snapshot-time=$NOW
API
このセクションに記載のコマンドを実行すると、プロジェクトのアセットが一覧表示されます。組織のアセットを一覧表示するには、gcurl
コマンドで https://cloudasset.googleapis.com/v1p5beta1/organizations/ORGANIZATION_NUMBER/assets
REST メソッドを使用します。
- アカウントを構成するの手順に沿って、Cloud Asset API を呼び出せるようにします。
- アセットを一覧表示する時間を決定します。これは、以下のコマンドにおける RFC 3339 UTC 形式の readTime パラメータです。
- 一覧表示するアセットのリソースタイプを決定します。次の例では、
compute.googleapis.com/Instance
を使用しています。
Token
変数を設定する
アクセス トークンを取得するには、~/credentials.json
ファイルで次のコマンドを実行します。
oauth2l header --json ~/credentials.json cloud-platform
次のような出力が表示されます。y29.xxxxxx
はアクセス トークンです。
Authorization: Bearer y29.xxxxxxx
Token
変数をアクセス トークンに設定します。
Token=y29.xxxxxxx
すべてのリソース メタデータを含め、プロジェクト内のアセットを一覧表示します
最初のページに対して pageToken
パラメータを設定せず、前のページ リクエストに応じてページトークン値に設定する必要があります。なお、pageToken
は上記の Token
とは異なります。
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") curl -X POST -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $Token" -H "Content-Type: application/json" \ -d '{"contentType":"RESOURCE", \ "assetTypes": "compute.googleapis.com/Instance", \ "readTime": "'$NOW'", \ "pageToken": "PAGE_TOKEN_FROM_PREVIOUS_PAGE_RESPONSE"}' \ https://cloudasset.googleapis.com/v1p5beta1/projects/PROJECT_NUMBER/assets
リソース メタデータを含めない形で、プロジェクト内のアセットを一覧表示します
最初のページに対して pageToken パラメータを設定せず、前のページ リクエストに応じてページトークン値に設定する必要があります。
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") curl -X POST -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $Token" -H "Content-Type: application/json" \ -d '{"assetTypes": "compute.googleapis.com/Instance", \ "readTime": "'$NOW'", \ "pageToken": "PAGE_TOKEN_FROM_PREVIOUS_PAGE_RESPONSE"}' \ https://cloudasset.googleapis.com/v1p5beta1/projects/PROJECT_NUMBER/assets