💽

Cloud Asset Inventoryとは

2023/10/13に公開

what

  • Google Cloud のCloud Asset Inventoryについて調べてわかったことの個人まとめ

Cloud Asset Inventoryとは

https://cloud.google.com/asset-inventory/docs/overview?hl=ja

Cloud Asset Inventory は、時系列データベースに基づいてインベントリ サービスを提供します。
このデータベースは、Google Cloud のアセット メタデータの 35 日間分の履歴を保持します。
過去 35 日間変更がない既存のアセットの場合、Cloud Asset Inventory はアセットの最新ステータスを保持します。

GoogleCloud上のアセットを管理できるサービス。
(AWSで言うとAWSConfigに近いらしい)

アセットとは、大きく以下を指す。

  • リソース: GoogleCloudのリソースのメタデータ
    • 例)
    • Compute Engine 仮想マシン(VM)
    • Cloud Storage バケット
    • App Engineのインスタンス 等
  • ポリシー: GoogleCloudリソースに対して設定されたいずれかのポリシーのメタデータ
    • 例)
    • IAM ポリシー
    • 組織のポリシー
    • Access Context Manager のポリシー
  • ランタイム情報: Google Cloud リソースに設定されているランタイム情報のメタデータ

利用用途

  • アセット履歴やメタデータをエクスポートする
  • アセット変更のモニタリング
    • リアルタイムで通知されるリソースやポリシーの変更をモニタリングすることが可能

料金

  • 基本無料
  • アセットデータをエクスポートする際は、転送先となるGCSやBigQueryのストレージ料金が別途かかる点に注意

使い方

GoogleCloudコンソール、gcloudコマンド両方から利用ができる

GoogleCloudコンソール

  • 他サービスと同じように利用可能
  • フィルタを掛けてリソースごとに絞り込んだり、リソースの詳細を見ることが可能

gcloudコマンド

  • gcloud asset ~ でコマンド実行することで利用することが出来る
  • 公式ドキュメントに利用用途別のコマンド集があるのでこちらも参照

https://cloud.google.com/asset-inventory/docs/samples?hl=ja

  • コマンドを利用することで、特定のアセットをBQ,GCSへ転送することも可能

https://cloud.google.com/asset-inventory/docs/samples/asset-quickstart-export-assets?hl=ja

軽く触ってみる

特定のサービスアカウントに紐づいている権限一覧を調べてみる

※プロジェクト名やサービスアカウント名、実行ID等はダミー

コマンド

$ gcloud asset search-all-iam-policies \
  --project=<project_id>\
  --query=policy:test-user@<project_id>.iam.gserviceaccount.com

結果

assetType: cloudresourcemanager.googleapis.com/Project
folders:
- folders/123456789
- folders/987654321
- folders/5678901234
organization: organizations/1234567890
policy:
  bindings:
  - members:
    - deleted:serviceAccount:test-user@<project_id>.iam.gserviceaccount.com?uid=1234567890
    - serviceAccount:test-d-user@<project_id>.iam.gserviceaccount.com
    - serviceAccount:test-a-user@<project_id>.iam.gserviceaccount.com
    - serviceAccount:test-b-user@<project_id>.iam.gserviceaccount.com
   ・・・

Workflowsのメタデータを取得する

Workflowsのメタデータを取得→データをGCSへ出力をしてみる

コマンド

※プロジェクト名や実行ID等はダミー

$ gcloud asset export --project=<project_id> --billing-project=<project_id> --asset-types=workflows.googleapis.com.* --content-type=resource   --output-path="gs://<bucket_name>/<filename>.yaml"

結果

コマンド実行が成功するとデータのエクスポートが始まる
進捗状況は提示されているコマンドを実行することによって確認ができる

Export in progress for root asset [projects/<bucket_name>].
Use [gcloud asset operations describe projects/1234567890/operations/ExportAssets/RESOURCE/f123456af1234567890bfc0858c369cd8] to check the status of the operation.

Discussion