Microsoft Defender for Cloud コスト計算ツールを使用すると、クラウド セキュリティのニーズに対する潜在的なコストを見積もるのに役立ちます。 プランと環境を構成し、適用可能な割引を含む詳細なコスト内訳を取得できます。
コスト計算ツールにアクセスする
Defender for Cloudコスト計算ツールを使用するには、Microsoft Defender for Cloud環境設定を開きます。 次に、コスト計算ツールを選択します。
Defender for Cloud プランと環境を構成する
計算ツールの最初のページで、[ 資産の追加 ] を選択して、コスト計算への資産の追加を開始します。 アセットは、次の 3 つの方法で追加できます。
- オンボード済みの環境から資産を追加する:推奨 - Defender for Cloud に既にオンボードされた環境から資産を追加します。 この方法は Azure のすべてのプランをカバーし、スクリプト オプションより速く処理されます。
- スクリプトを使用して資産を追加する: スクリプトをダウンロードして実行し、既存の資産を自動的に追加します。 まだAzureにオンボードされていないアマゾン ウェブ サービス (AWS) や Google Cloud Platform (GCP) プロジェクトなどの環境に推奨されます。
- カスタム資産を追加する: 自動化を使用せずに手動で資産を追加します。
注
コスト計算ツールでは、Defender for Cloud の予約プランは考慮されません。
オンボードされた環境から資産を追加する
ヒント
オンボーディング環境からアセットを追加することは、すべてのプランをカバーし、スクリプトよりも速い結果が得られるため、Azure環境で推奨されます。
Azure環境で、コスト計算に含めるオンボード環境を選択します。
注
計算ツールは、ユーザーがアクセス許可を持っているリソースを検出します。
プランを選択します。 この計算ツールは、選択内容と既存の割引に基づいてコストを見積もります。
スクリプトを使用して資産を追加する
注
Azureにまだオンボーディングされていない環境(AWSやGCPプロジェクトなど)では、スクリプトでアセットを追加することが推奨されます。
Environment type で、Azure、AWS、または GCP を選択し、スクリプトを新しい *.ps1 ファイルにコピーします。
注
スクリプトは、実行しているユーザーがアクセスできる情報のみを収集します。
特権ユーザー アカウントを使って、PowerShell 7.X 環境でスクリプトを実行します。 このスクリプトは、課金対象の資産に関する情報を収集して、CSV ファイルを作成します。 2 つの手順で情報を収集します。 最初に、課金対象資産の現在の数を収集します。通常、これは一定です。 2 つ目に、その月の間に大きな変更が発生する可能性がある課金対象資産に関する情報を収集します。 これらの資産については、過去 30 日間の使用状況を確認してコストを評価します。 最初の手順の後にスクリプトを停止できます。最初の手順は数秒かかります。 または、動的資産の過去 30 日間の使用状況を続けて収集することもできます。これは、大規模なアカウントでは時間がかかる場合があります。
スクリプトで生成されたCSVファイルを、スクリプトをダウンロードしたウィザードにアップロードしてください。
Defender for Cloudプランを選択します。 この計算ツールは、選択内容と既存の割引に基づいてコストを見積もります。
注
- Defender for Cloud の予約プランは考慮されません。
- Defender for APIs: 過去 30 日間の API 呼び出し数に基づいてコストを計算する際、お客様に最適な Defender for APIs プランが自動的に選択されます。 過去 30 日間に API 呼び出しがない場合は、計算のためにプランが自動的に無効になります。
スクリプトに必要なアクセス許可
以下の権限概要は、各クラウドプロバイダーのスクリプトを実行するために必要な権限を説明しています。
Azure
サブスクリプションごとにこのスクリプトを正常に実行するには、使用するアカウントに次の操作を許可するアクセス許可が必要です:
リソースの検出と一覧表示 (仮想マシン、ストレージ アカウント、Azure API Management (APIM) サービス、Azure Cosmos DB アカウント、その他のリソースを含む)。
Resource Graph のクエリを実行します (Search-AzGraph を使用します)。
メトリックを読み取ります (Get-AzMetric と Azure Monitor/Insights API を使用します)。
推奨される組み込みロール:
ほとんどの場合、サブスクリプション スコープでの閲覧者ロールで十分です。 閲覧者ロールでは、このスクリプトに必要な次の主要な機能が提供されます:
- すべてのリソースの種類を読み取ります (ストレージ アカウント、VM、Cosmos DB、APIM などを一覧表示して解析できます)。
- メトリックを読み取り (Microsoft.Insights/metrics/read)、Get-AzMetric への呼び出しまたは直接の Azure Monitor REST クエリが成功するようにします。
- Resource Graph のクエリは、少なくともサブスクリプション内のリソースへの読み取りアクセス権を持っている限り機能します。
注
必要なメトリック アクセス許可を持っていることを確認する必要がある場合は、監視閲覧者ロールを使用することもできます。ただし、標準の閲覧者ロールにはメトリックへの読み取りアクセスが既に含まれており、通常はこれで十分です。
共同作成者ロールまたは所有者ロールを既に持っている場合:
- サブスクリプションの共同作成者または所有者であれば十分です (これらのロールは閲覧者よりも高い特権を持ちます)。
- このスクリプトでは、リソースの作成または削除は実行されません。 そのため、データ収集の目的飲みに高レベルのロール (共同作成者や所有者など) を付与することは、最小限の特権の観点から見ると過剰な場合があります。
概要:
クエリを実行する各サブスクリプションで、ユーザーまたはサービス プリンシパルに閲覧者ロール (またはより高い特権を持つロール) を付与すると、スクリプトで次のことができます。
- サブスクリプションの一覧を取得します。
- 関連するすべてのリソース情報を列挙して読み取ります (REST または Az PowerShell を使用します)。
- 必要なメトリック (APIM の要求、Cosmos DB の RU 消費量、ストレージ アカウントのイングレスなど) をフェッチします。
- Resource Graph のクエリを問題なく実行します。
AWS
この AWS スクリプトでは、次の 2 つの検出フローがサポートされています。
- 単一アカウントの検出: 1 つの AWS アカウント内のリソースを検出します
- 組織の検出: AWS 組織内のすべてのメンバー アカウントでリソースを検出します
単一アカウントの検出
単一アカウントの検出の場合、次の概要では、AWS ID (ユーザーまたはロール) がこのスクリプトを正常に実行するために必要なアクセス許可について説明します。 このスクリプトでは、リソース (Amazon Elastic Compute Cloud (EC2)、Amazon Relational Database Service (RDS)、Amazon Elastic Kubernetes Service (EKS)、Amazon Simple Storage Service (S3)など) を列挙し、それらのリソースのメタデータをフェッチします。 リソースの作成、変更、削除は行わないため、ほとんどの場合は読み取り専用アクセスで十分です。
AWS マネージド ポリシー: ReadOnlyAccess または ViewOnlyAccess:
最も簡単な方法は、AWS の組み込みの読み取り専用ポリシーの 1 つを、このスクリプトを実行する IAM プリンシパル (ユーザーまたはロール) にアタッチすることです。 その例は次のとおりです。
arn:aws:iam::aws:policy/ReadOnlyAccessarn:aws:iam::aws:policy/job-function/ViewOnlyAccess
どちらのポリシーも、ほとんどの AWS サービスに対する describe と list のアクセス許可をカバーします。 環境のセキュリティ ポリシーで許可されている場合、ReadOnlyAccess は、列挙するすべての AWS リソースでスクリプトを確実に動作させる最も簡単な方法です。
主なサービスと必要なアクセス許可:
カスタム IAM ポリシーでさらにきめ細かいアプローチが必要な場合は、次のサービスとアクセス許可が必要です。
-
EC2
- ec2:DescribeInstances
- ec2:DescribeRegions
- ec2:DescribeInstanceTypes (vCPU/コア情報を取得するため)
-
RDS
- rds:DescribeDBInstances
-
EKS
- eks:ListClusters
- eks:DescribeCluster
- eks:ListNodegroups
- eks:DescribeNodegroup
-
Auto Scaling (基になるインスタンスの EKS ノード グループのため)
- autoscaling:DescribeAutoScalingGroups
-
S3
- s3:ListAllMyBuckets
-
AWS セキュリティ トークン サービス (STS)
- sts:GetCallerIdentity (AWS アカウント ID を取得するため)
さらに、スクリプトに表示されていない他のリソースを一覧表示する必要がある場合、またはスクリプトの機能を拡張する予定の場合は、必要に応じて適切な Describe*、List*、Get* アクションを付与するようにします。
組織の検出
組織全体の検出には、次のものが必要です。
管理アカウント: 組織内のすべてのアカウントを一覧表示するアクセス許可
organizations:ListAccounts
すべてのメンバー アカウント: 単一アカウント検出で説明したのと同じアクセス許可を持つロール (ReadOnlyAccess または上で示したカスタム アクセス許可)
組織の検出の設定:
- メンバー アカウントごとに、必要な読み取りアクセス許可 (単一アカウントの検出で説明したもの) を持つ IAM ロールを作成します
- 検出スクリプトを実行するプリンシパルを信頼するようにロールを構成します
- スクリプトを実行するプリンシパルに次のものがあることを確認します。
- 各メンバー アカウントでのロールに対応するアクセス許可
- 管理アカウントでの
organizations:ListAccountsアクセス許可
注
組織検出フローは、構成されたロールでアクセスできるすべてのメンバー アカウントを自動的に反復処理します。
概要:
- 最も簡単な方法は、AWS の組み込みの ReadOnlyAccess ポリシーをアタッチすることです。これには、EC2、RDS、EKS、S3、自動スケーリング リソースの一覧表示と説明およびアカウント情報を取得するための STS の呼び出しに必要なすべてのアクションが既に含まれています。
- 必要な特権のみを付与するには、EC2、RDS、EKS、自動スケーリング、S3、STS に対する上記の Describe*、List*、Get* アクションを含むカスタム読み取り専用ポリシーを作成します。
どちらの方法でも、次の操作を行うのに十分なアクセス許可をスクリプトに付与します:
- リージョンを一覧表示します。
- EC2 インスタンスのメタデータを取得します。
- RDS インスタンスを取得します。
- EKS クラスターとノード グループ (および基になる Auto Scaling グループ) を一覧表示して説明します。
- S3 バケットを一覧表示します。
- STS を使用して AWS アカウント ID を取得します。
このアクセス許可セットにより、スクリプトは何も作成、変更、削除することなく、リソースを検出して関連するメタデータをフェッチできます。
GCP
以下の概要では、GCP ユーザーまたはサービス アカウントがこのスクリプトを正常に実行するために必要なアクセス許可について説明します。 選択に応じて、このスクリプトを使って 1 つのプロジェクトまたは複数のプロジェクトでリソースを検出できます。 複数のプロジェクトのコストを見積もるには、含める各プロジェクトで必要なアクセス許可をアカウントが持っていることを確認します。 このスクリプトでは、選択したすべてのプロジェクトの VM インスタンス、クラウド SQL データベース、Google Kubernetes Engine (GKE) クラスター、Google Cloud Storage (GCS) バケットなどのリソースを一覧表示して説明します。
推奨される組み込みロール: プロジェクト ビューアー
これらすべてのリソースに読み取り専用アクセスできるようにする最も簡単な方法は、ユーザーまたはサービス アカウントにプロジェクト レベル ( で選択したのと同じプロジェクト) で gcloud config set project ロールを付与することです。
ロール/ビューアー ロールには、そのプロジェクト内のほとんどの GCP サービスへの読み取り専用アクセスが含まれます。これには、次に必要なアクセス許可が含まれます:
- コンピューティング エンジン (VM インスタンス、インスタンス テンプレート、マシンの種類などを一覧表示します)。
- クラウド SQL (SQL インスタンスを一覧表示します)。
- Kubernetes エンジン (クラスター、ノード プールなどを一覧表示します)。
- クラウド ストレージ (バケットを一覧表示します)。
サービス別の詳細なアクセス許可 (カスタム役割を作成する場合):
さらに詳細なアプローチが必要な場合は、各サービスに必要な読み取り、一覧表示、説明操作を全体として付与するカスタム IAM ロールまたはロールのセットを作成します。
-
コンピューティング エンジン (VM インスタンス、リージョン、インスタンス テンプレート、インスタンス グループ マネージャーの場合):
compute.instances.listcompute.regions.listcompute.machineTypes.listcompute.instanceTemplates.getcompute.instanceGroupManagers.getcompute.instanceGroups.get
-
クラウド SQL:
cloudsql.instances.list
-
Google Kubernetes エンジン:
container.clusters.list-
container.clusters.get(クラスターを説明するときに必要) container.nodePools.listcontainer.nodePools.get
-
クラウド ストレージ:
storage.buckets.list
スクリプトはリソースの作成や変更を行わないため、update または delete アクセス許可は必要ありません。必要なのは list、get、describe 型のアクセス許可だけです。
概要:
- プロジェクト レベルで roles/viewer を使うのが、このスクリプトが成功するのに十分なアクセス許可を付与する最も速くて簡単な方法です。
- 最も厳密な最小特権のアプローチの場合は、コンピューティング エンジン、クラウド SQL、GKE、クラウド ストレージの関連する一覧表示、説明、取得操作のみを含むカスタム ロールを作成するか組み合わせます。
これらのアクセス許可があると、スクリプトは次のことができます。
-
認証 (
gcloud auth login)。 - 一覧表示: VM インスタンス、マシンの種類、インスタンス グループ マネージャー、類似リソース。
- 一覧表示 (クラウド SQL インスタンス)。
- 一覧表示と説明: GKE クラスターとノード プール。
- 一覧表示 (GCS バケット)。
この読み取りレベルのアクセスにより、リソースを変更または作成することなく、リソースの数を列挙してメタデータを収集できます。
オンボードされた資産を割り当てる
Azure環境で、コスト計算に含めるオンボード環境を選択します。
注
計算ツールは、ユーザーがアクセス許可を持っているリソースを検出します。
プランを選択します。 この計算ツールは、選択内容と既存の割引に基づいてコストを見積もります。
カスタム資産を割り当てる
カスタム環境を手動で追加するには、以下の手順を踏みます:
- カスタム環境の名前を選択します。
- プランと、各プランの課金対象資産の数を指定します。
- コスト計算に含める 資産の種類 を選択します。
- この計算ツールは、入力内容と既存の割引に基づいてコストを見積もります。
注
この計算ツールでは、Defender for Cloud の予約プランは考慮されません。
レポートの調整
レポートを生成したら、プランと課金対象資産の数を調整できます。
- [編集] (鉛筆) アイコンを選んで、変更する環境を選びます。
- 構成ページが表示され、そこでプラン、課金対象資産の数、平均月間時間数を調整できます。
- [再計算] を選んでコストの見積もりを更新します。
レポートをエクスポートする
レポートに問題がなければ、CSV ファイルとしてエクスポートできます。
- 右側の [概要] パネルの下部にある [CSV にエクスポート] ボタンを選びます。
- コスト情報が CSV ファイルとしてダウンロードされます。
よく寄せられる質問
コスト計算ツールとは何ですか?
コスト計算ツールは、セキュリティ保護のニーズに関するコストを簡単に見積もることができるツールです。 目的のプランと環境の範囲を定義すると、計算ツールは、適用可能な割引を含む潜在的な経費の詳細な内訳を提供します。
コスト計算ツールはどのように動作しますか?
有効にする環境とプランを選びます。 その後、計算ツールは検出プロセスを実行し、環境ごとに各プランの課金対象ユニットの数を自動的に設定します。 ユニット数と割引レベルを手動で調整することもできます。
検出プロセスはどのようなものですか?
検出プロセスでは、Defender for Cloud のさまざまなプランによる課金対象資産のインベントリを含む、選択した環境のレポートが生成されます。 このプロセスは、ユーザーのアクセス許可と検出時の環境の状態に依存します。 動的資産もサンプリングするため、大規模な環境ではこのプロセスに約 30 から 60 分かかる場合があります。
コスト計算ツールで検出プロセスを実行するための特別なアクセス許可を付与する必要がありますか?
コスト計算ツールは、ユーザーの既存のアクセス許可を使ってスクリプトを実行し、検出を自動的に行います。 それ以上アクセス権を要求しないで、必要なデータを収集します。 スクリプトを実行するために必要なアクセス許可を確認するには、「スクリプトに必要なアクセス許可」セクションをご覧ください。
見積もりではコストが正確に予測されますか?
計算ツールは、スクリプトの実行時に入手できる情報に基づいて見積もりを提供します。 最終的なコストにはさまざまな要因が影響する可能性があるため、それは概算と考える必要があります。
課金対象ユニットとは何ですか?
プランのコストは、保護するユニットに基づいています。 各プランの料金は、異なるユニットの種類に対して行われます。 ユニットの詳細については、「Microsoft Defender for Cloud環境設定」ページを参照してください。
見積もりを手動で調整できますか?
はい。コスト計算ツールは、自動データ収集と手動調整の両方をサポートしています。 ユニット数量と割引レベルを変更して、特定のニーズをより適切に反映し、これらの変更が全体的なコストにどのように影響するかを確認できます。
計算ツールは複数のクラウド プロバイダーをサポートしていますか?
はい。マルチクラウド サポートを提供しているため、クラウド プロバイダーに関係なく正確なコスト見積もりを取得できます。
コスト見積もりを共有するにはどうすればよいですか?
コストの見積もりを生成した後は、予算計画と承認のためにそれを簡単にエクスポートして共有できます。 この機能により、すべての関係者が必要な情報にアクセスできるようになります。
質問がある場合、どこでサポートを受けることができますか?
Microsoft のサポート チームが、お客様が抱えている可能性のある質問や懸念事項についてお客様をお手伝いいたします。 お気軽にお問い合わせください。
コスト計算ツールを試してみるにはどうすればよいですか?
コスト計算ツールを試して、保護ニーズの範囲を定義します。 これを使用するには、Microsoft Defender for Cloud環境設定を開き、コスト計算ツールを選択します。