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