Microsoft Defender for Cloud コスト計算ツールは、クラウド セキュリティのニーズに関連する潜在的なコストを見積もるための便利なツールです。 このツールを使用すると、さまざまなプランと環境を構成して、適用可能な割引を含む詳しいコスト内訳を提供できます。
コスト計算ツールにアクセスする
Defender for Cloud Cost Calculator を使用するには、Microsoft Defender for Cloud の [環境設定] セクションに移動します。 インターフェイスの上部セクションにある [コスト計算ツール] ボタンを選択します。
Defender for Cloud プランと環境を構成する
計算ツールの最初のページで [資産の追加] ボタンを選択して、コスト計算に資産を追加し始めます。 資産を追加する方法には次の 3 つがあります:
- オンボードされた環境から資産を追加する: 推奨 - Defender for Cloud に既にオンボードされている環境から資産を追加します。 この方法では、Azure のすべてのプランが対象となり、スクリプト オプションよりも高速に動作します。
- スクリプトを使用して資産を追加する: スクリプトをダウンロードして実行し、既存の資産を自動的に追加します。 Azure にまだオンボードされていない環境 (AWS や GCP プロジェクトなど) に推奨されます。
- カスタム資産を追加する: 自動化を使用せずに手動で資産を追加します。
Note
コスト計算ツールでは、Defender for Cloud の予約プランは考慮されません。
オンボード環境から資産を追加する
ヒント
この方法は、すべてのプランを対象とし、スクリプトを使用するよりも高速な結果を提供するため、Azure 環境に推奨されます。
Defender for Cloud に既にオンボードされている Azure 環境の一覧から選択し、コスト計算に含めます。
Note
電卓は、アクセス許可を持っているリソースを検出します。
プランを選択します。 この計算ツールは、選択内容と既存の割引に基づいてコストを見積もります。
スクリプトを使用して資産を追加する
Note
この方法は、AWS や GCP プロジェクトなど、Azure にまだオンボードされていない環境に推奨されます。
環境の種類 (Azure、AWS、または GCP) を選択し、スクリプトを新しい *.ps1 ファイルにコピーします。
Note
スクリプトは、実行しているユーザーがアクセスできる情報のみを収集します。
特権ユーザー アカウントを使用して、PowerShell 7.X 環境でスクリプトを実行します。 このスクリプトは、課金対象の資産に関する情報を収集し、CSV ファイルを作成します。 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 スクリプトでは、次の 2 つの検出フローがサポートされています。
- 単一アカウントの検出 - 1 つの AWS アカウント内のリソースを検出します
- 組織の検出 - 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 サービスの 説明 と 一覧 のアクセス許可を対象としています。 環境のセキュリティ ポリシーで許可されている場合、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* アクションを付与するようにします。
組織の検出
組織全体の検出には、次のものが必要です。
管理アカウント: 組織内のすべてのアカウントを一覧表示するアクセス許可
organizations:ListAccounts
すべてのメンバー アカウントで: 単一アカウント検出の説明と同じアクセス許可を持つロール (ReadOnlyAccess または上記のカスタム アクセス許可)
組織の検出の設定:
- 必要な読み取りアクセス許可を持つ各メンバー アカウントに IAM ロールを作成します (単一アカウントの検出で説明)。
- 探索スクリプトを実行するプリンシパルを信頼するようにロールを構成する
- スクリプトを実行するプリンシパルに次の内容があることを確認します。
- 各メンバー アカウントでロールを引き受けるアクセス許可
- 管理アカウントの
organizations:ListAccounts
アクセス許可
Note
組織の検出フローは、構成されたロールにアクセスできるすべてのメンバー アカウントを自動的に反復処理します。
概要:
- 最も簡単な方法は、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 ユーザーまたはサービス アカウントがこのスクリプトを正常に実行するために必要なアクセス許可について説明します。 選択内容に応じて、スクリプトを使用して、1 つのプロジェクト内または複数のプロジェクト間でリソースを検出できます。 複数のプロジェクトのコストを見積もるために、含める各プロジェクトでアカウントに必要なアクセス許可があることを確認します。 このスクリプトでは、選択したすべてのプロジェクトの VM インスタンス、クラウド SQL データベース、GKE クラスター、GCS バケットなどのリソースが一覧表示され、説明されます。
推奨される組み込みロール: プロジェクト ビューアー
これらすべてのリソースで読み取り専用アクセスを確保する最も簡単な方法は、ユーザーまたはサービス アカウントにプロジェクト レベル (で選択したのと同じプロジェクト) でgcloud config set project
ロールを付与することです。
ロール/ビューアー ロールには、そのプロジェクト内のほとんどの GCP サービスへの読み取り専用アクセスが含まれます。これには、次に必要なアクセス許可が含まれます:
- コンピューティング エンジン (VM インスタンス、インスタンス テンプレート、マシンの種類などを一覧表示します)。
- クラウド SQL (SQL インスタンスを一覧表示します)。
- Kubernetes エンジン (クラスター、ノード プールなどを一覧表示します)。
- クラウド ストレージ (バケットを一覧表示します)。
サービス別の詳細なアクセス許可 (カスタム役割を作成する場合):
より詳細なアプローチを希望する場合は、 カスタム IAM ロール またはロールのセットを作成し、各サービスに必要な読み取りリスト記述アクションのみをまとめて付与します。
-
コンピューティング エンジン (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 エンジン:
container.clusters.list
-
container.clusters.get
(クラスターを記述するときに必要) container.nodePools.list
container.nodePools.get
-
クラウド ストレージ:
storage.buckets.list
スクリプトはリソースの作成や変更を行わないため、update または delete アクセス許可は必要ありません。必要なのは list、get、describe 型のアクセス許可だけです。
概要:
- プロジェクト レベルで ロール/ビューアー を使用することは、このスクリプトを成功させるために十分なアクセス許可を付与する最も高速で簡単な方法です。
- 最も厳密な最小特権アプローチでは、関連するリストのみを含むカスタム ロールを作成または結合し、コンピューティング エンジン、クラウド SQL、GKE、および Cloud Storage のアクションを記述して取得します。
これらのアクセス許可を使用すると、スクリプトは次のことができます。
-
認証 (
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 Environment の設定ページで確認できます。
見積もりを手動で調整できますか?
はい。コスト計算ツールでは、自動データ収集と手動調整の両方がサポートされます。 ユニット数量と割引レベルを変更して、特定のニーズをより適切に反映し、これらの変更が全体的なコストにどのように影響するかを確認できます。
計算ツールは複数のクラウド プロバイダーをサポートしていますか?
はい。マルチクラウド サポートを提供しているため、クラウド プロバイダーに関係なく正確なコスト見積もりを取得できます。
コスト見積もりを共有するにはどうすればよいですか?
コスト見積を生成したら、予算計画と承認のために簡単にコスト見積もりをエクスポートして共有できます。 この機能により、すべての関係者が必要な情報にアクセスできるようになります。
質問がある場合、どこでサポートを受けることができますか?
Microsoft のサポート チームが、お客様が抱えている可能性のある質問や懸念事項についてお客様をお手伝いいたします。 お気軽にお問い合わせください。
コスト計算ツールを試してみるにはどうすればよいですか?
新しいコスト計算ツールを試して、その利点を確認してください。 ツールにアクセスし、保護ニーズの範囲の定義を開始します。 Defender for Cloud Cost Calculator を使用するには、 Microsoft Defender for Cloud Environment の設定 に移動し、[ コスト計算ツール ] ボタンを選択します。