Azure Resource Graph とは

Azure Resource Graph は Azure サービスであり、Azure Resource Management を拡張するよう設計されています。特定のサブスクリプションのセット全体で大規模なクエリを実行する機能を使用して、効率的でパフォーマンスの高いリソース探索を提供することで、環境を効果的に管理できます。 これらのクエリでは、次の機能を提供します。

  • 複雑なフィルター処理、グループ化、およびリソースのプロパティでの並べ替えによりリソースのクエリを行う機能。
  • ガバナンスの要件に基づいてリソースを繰り返し探索する機能。
  • 広大なクラウド環境にポリシーを適用することの影響を評価する機能。
  • リソース プロパティに加えられたクエリの変更

このドキュメントでは、それぞれの機能について詳しく確認します。

Note

Azure Resource Graph は、Azure portal の検索バー、新しい "すべてのリソース" 参照エクスペリエンス、Azure Policy の変更履歴の "差分表示" を強化します。 大規模な環境を管理するお客様をサポートするために設計されています。

注意

このサービスは Azure Lighthouse をサポートしているため、サービス プロバイダーは各自のテナントにサインインして、顧客から委任されたサブスクリプションやリソース グループを管理することができます。

Resource Graph が Azure Resource Manager をどのように補完するか

Azure Resource Manager は現在、基本的なリソース フィールドのクエリをサポートしています。具体的には次のとおりです。

  • リソース名
  • id
  • Type
  • リソース グループ
  • サブスクリプション
  • 場所

Azure Resource Manager には、一度に 1 つのリソースについて詳細なプロパティを得るために、個別のリソース プロバイダーを呼び出す機能も用意されています。

Azure Resource Graph を使用することにより、各リソースプロバイダーへの個別の呼び出しを行う必要なく、リソースプロバイダーが返すこれらのプロパティにアクセスすることができます。 サポートされるリソースの種類の一覧については、テーブルとリソースの種類のリファレンスに関するページを確認してください。 サポートされるリソースの種類は、Azure Resource Graph エクスプローラーのスキーマ ブラウザーを使用して確認することもできます。

Azure Resource Graph では、次のことができます。

  • 各リソース プロバイダーへの個別の呼び出しを行う必要なく、リソース プロバイダーから返されるプロパティにアクセスする。
  • 過去 14 日間のリソース構成変更を表示して、どのプロパティがいつ変更されたかを確認する。

Note

"プレビュー" 機能として、一部の type オブジェクトは、Resource Manager 以外の追加のプロパティを備えています。 詳細については、「拡張プロパティ」を参照してください。

Resource Graph が最新の状態に保たれるしくみ

Azure リソースが更新されると、Azure Resource Manager は Azure Resource Graph に変更を通知します。 その後、Azure Resource Graph によってそのデータベースが更新されます。 Azure Resource Graph では、定期的な "フル スキャン" も行われます。 このスキャンにより、通知が届かなかった場合、またはリソースが Azure Resource Manager の外部で更新されたときにも、Azure Resource Graph が最新の状態に維持されます。

Note

Resource Graph では、各リソースプロバイダーの最新の非プレビュー API に対して GET を使用して、プロパティと値を収集します。 その結果、想定されるプロパティを取得できない場合があります。 場合によっては、使用される API バージョンがオーバーライドされ、最新のプロパティまたは広く使用されているプロパティが結果に提供されます。 ご使用の環境での完全な一覧については、各リソースの種類の API バージョンを表示する方法に関するサンプルを参照してください。

クエリ言語

これで Azure Resource Graph についてはよく理解したので、クエリを作成する方法に進みましょう。

Azure Resource Graph のクエリ言語が Azure Data Explorer で使用される Kusto 照会言語 (KQL) に基づくことを理解することが重要です。

最初に、Azure Resource Graph と共に使用することができる操作および機能の詳細については、Resource Graph のクエリ言語を参照してください。 リソースをブラウズするためには、リソースを探索するを参照してください。

Azure Resource Graph でのアクセス許可

Resource Graph を使用するには、最低限、クエリを実行するリソースに対する read アクセス権を持つ、Azure ロールベースのアクセス制御 (Azure RBAC) の適切な権限が必要です。 少なくとも Azure オブジェクトまたはオブジェクト グループに対する read アクセス許可がない場合、結果は返されません。

Note

Resource Graph では、プリンシパルがログイン中に利用できるサブスクリプションが使用されます。 アクティブなセッション中に追加された新しいサブスクリプションのリソースを表示するには、プリンシパルがコンテキストを更新する必要があります。 ログアウトしてから再度ログインすると、このアクションが自動的に実行されます。

Azure CLI と Azure PowerShell はユーザーがアクセスできるサブスクリプションを使用します。 REST API を使用する場合、サブスクリプションの一覧がユーザーごとに提供されます。 一覧内のいずれかのサブスクリプションにユーザーがアクセスできる場合は、ユーザーがアクセス権を持っているサブスクリプションに対するクエリ結果が返されます。 この動作は、結果が部分的である可能性を示すことなく、アクセス可能なリソース グループが得られるため、Resource Groups - List を呼び出す場合と同じです。 ユーザーに適切な権限があるサブスクリプションがサブスクリプション一覧にない場合の応答は、403 (禁止) です。

注意

プレビュー REST API バージョン 2020-04-01-preview では、サブスクリプションのリストが省略されている場合があります。 subscriptionsmanagementGroupId の両方のプロパティが要求で定義されていない場合、"subscriptions" はテナントに設定されます。 詳しくは、クエリのスコープに関するページを参照してください。

Throttling

無料サービスとして、すべてのお客様に最適なエクスペリエンスと応答時間が提供されるよう、Resource Graph へのクエリはスロットルされます。 お客様の組織が大規模かつ頻繁なクエリに Resource Graph API を使用したい場合、 Resource Graph ポータル ページからポータルの "フィードバック" を使用してください。 ビジネス ケースを明記し、チームが連絡できるように [Microsoft からフィードバックについてメールをお送りする場合があります] チェック ボックスをオンにしてください。

Resource Graph では、ユーザー レベルでクエリのスロットルが行われます。 サービスの応答には、次の HTTP ヘッダーが含まれています。

  • x-ms-user-quota-remaining (int):ユーザーの残りリソース クォータ。 この値はクエリ カウントにマップされます。
  • x-ms-user-quota-resets-after (hh:mm:ss):ユーザーのクォータ消費量がリセットされるまでの期間

詳細については、調整された要求に関するガイダンスのページを参照してください。

最初のクエリを送信する

Azure Resource Graph エクスプローラーは Azure portal に組み込まれており、Resource Graph クエリを Azure portal 内から直接実行できます。 その結果を動的なグラフとしてピン留めすれば、ポータルのワークフローから動的な情報をリアルタイムで得ることができます。 詳細については、Azure Resource Graph Explorer を使った初めてのクエリに関するページを参照してください。

Resource Graph は、Azure CLI、Azure PowerShell、REST API もサポートしています。 どの言語も、クエリの構造は同じです。 以下、Resource Graph を有効にする方法を手段ごとに示します。

Log Analytics とのアラートの統合

Note

Azure Resource Graph アラートと Log Analytics の統合はパブリック プレビュー段階です。

Azure Resources Graph クエリを使用するか、Azure Monitor を通じて Log Analytics と Azure Resources Graph クエリを統合することで、アラート ルールを作成できます。 どちらの方法も、Azure リソースのアラートの作成に使用できます。 例については、「クイックスタート: Azure Resource Graph と Log Analytics を使用してアラートを作成する」を参照してください。

Power BI コネクタを使用してクエリを実行する

Note

Azure Resource Graph Power BI コネクタはパブリック プレビュー段階です。

Azure Resource Graph Power BI コネクタは、テナント レベルでクエリを実行しますが、サブスクリプションまたは管理グループにスコープを変更できます。 Power BI コネクタには、クエリ結果に 1,000 件を超えるレコードがある場合にすべてのレコードを返すオプション設定があります。 詳細については、「クイック スタート: Azure Resource Graph Power BI コネクタを使用してクエリを実行する」を参照してください。

次のステップ