Security Command Center Enterprise ティアを Microsoft Azure 環境に接続すると、次のことができるようになります。
- 構成ミスに関連する検出結果の検出を有効にする。
- 公共のインターネットから Microsoft Azure の高価値アセットに対する潜在的な攻撃パスを特定する。
- Microsoft Azure リソースのさまざまな標準とベンチマークとのコンプライアンスをマッピングする。
Security Command Center と Microsoft Azure の接続により、チームが Google Cloud と Azure の両方で構成ミスを管理し修正できる、一元化された場所を構築できます。
Security Command Center と Azure 間の信頼接続の構成には、Google Cloud サービス エージェントと、モニタリングする Azure リソースへのアクセス権を持つ Microsoft Azure のユーザー割り当てマネージド ID を使用します。信頼構成は Microsoft Azure 環境で管理と制御を行います。
Google Cloud の組織ごとに 1 つの Azure 接続を作成できます。
Security Command Center はこの接続を使用して、定義した Microsoft Azure リソースに関するデータを定期的に収集します。このデータは Google Cloud のプライバシーに関するお知らせに基づき、サービスデータと同じ方法で処理されます。このコネクタは API 呼び出しを使用して Azure アセットデータを収集します。このような API 呼び出しにより Microsoft Azure の料金が発生する場合があります。
スキャン時に、データ収集パイプラインはサービス エージェントを通じて、ユーザー割り当てマネージド ID を使用し Microsoft Azure 環境に対する認証を行います。
次の図は、Security Command Center と Azure の間での信頼確立の仕組みを示しています。
このドキュメントでは、Microsoft Azure との接続を設定する方法について説明します。大まかな手順は次のとおりです。
始める前にに記載の前提条件の手順を実行します。
Azure コネクタを作成し、スキャンするサブスクリプションとロケーションを構成します。この手順を行うには、Microsoft Azure テナント ID が必要です。これにより、サービス エージェント ID が作成されます。
Azure 環境を構成し、次のロールを持つ専用のユーザー割り当てマネージド ID を作成します。
リソース、サブスクリプション、管理グループ階層を閲覧できる、Microsoft Azure ルート管理グループのスコープの閲覧者。
Key Vault、関連する証明書、鍵、シークレットのメタデータを閲覧できる、Microsoft Azure ルート管理グループのスコープのキーボールト リーダー。
リソースに関するメタデータを閲覧できる、Microsoft Azure ルート管理グループのスコープの Storage Blob データ閲覧者。Azure コネクタの構成時に [Sensitive Data Protection 検出に対する権限を付与する] を有効にする場合は、このロールを付与します。
グループとメンバーシップを閲覧できる、Microsoft Entra ID のディレクトリ閲覧者。
認可ポリシーを閲覧できる、Microsoft Entra ID のセキュリティ閲覧者。
ルート管理グループのデフォルトの表示名は
Tenant root group
です。このような権限は、Security Command Center がリソース階層のサブスクリプションよりも上位レベルにある管理グループ、メンバーシップを持つグループ、ロール定義を特定するために必要となります。
また、サービス エージェントに関する情報を使用して、ユーザー割り当てマネージド ID のフェデレーション ID 資格情報も構成します。
この手順を手動で行うことも、Terraform を使用することもできます。手動で行う場合は、サービス エージェント ID が必要となります。
Azure コネクタの構成を完了し、接続をテストします。この手順では、ユーザー割り当てマネージド ID に関する情報を使用します。
Azure コネクタは Security Command Center Enterprise の SIEM のキュレーションされた検出機能に必要な Azure ログを取り込みません。詳細については、Microsoft Azure に接続してログデータを収集するをご覧ください。
始める前に
以下のセクションでは、Security Command Center と Microsoft Azure の接続を構成する前に必要となる前提条件、決断、情報について説明します。
Microsoft Azure の機能を確認する
Microsoft Azure の次のコンセプトと機能についてしっかり理解しておきます。
Azure のワークロード ID フェデレーション、フェデレーション資格情報、ユーザー割り当てマネージド ID でのフェデレーション ID の構成。
Microsoft Azure Portal、Azure CLI、Terraform を使用したリソース グループの作成と管理。
データの収集を計画する
データ収集戦略の策定は次の手順で行います。このドキュメントの手順を実行する際には次の情報が必要になります。
ユーザー定義のマネージド ID を作成するリソース グループを作成または特定します。構成の際にリソース グループ名が必要となります。
RESOURCE_GROUP_NAME 変数をリソース グループ名に置き換えて、このドキュメントの今後の手順で値を入力します。
データを収集するリソースを特定します。特定のサブスクリプションまたはリージョンからのみデータを収集する場合は、計画を立てる際にそれを特定して記録しておきます。
すべてのサブスクリプションとリージョンでリソースを自動的に検出するように Azure コネクタを構成することもできます。
Google Cloudで権限を設定する
Google Cloudで、サードパーティのクラウド プロバイダへの接続を作成して管理するには、組織でクラウド アセット オーナー(roles/cloudasset.owner
)ロールが付与されている必要があります。ロールの付与の詳細については、アクセスの管理をご覧ください。
Microsoft Azure で権限を設定する
Microsoft Azure を手動で構成するまたは Terraform を使用して Microsoft Azure を構成するの手順に沿って構成する場合は、1 つ以上のリソース グループが作成された Azure ID に加え、Microsoft Azure と Microsoft Entra の IAM ポリシーを構成するための次の権限が必要となります。
ルート管理グループのスコープの
Microsoft.Authorization/roleAssignments/write
権限。これはロールベース アクセス制御の管理者またはユーザー アクセス管理者の組み込みロールで使用できます。ユーザー割り当てマネージド ID が作成されるリソース グループのスコープの次の権限。
Microsoft.ManagedIdentity/userAssignedIdentities/write
Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write
これらはマネージド ID 共同作成者の組み込みロールで使用できます。
Microsoft Entra の権限である
microsoft.directory/roleAssignments/allProperties/allTasks
。これは Microsoft Entra の組み込みロールである特権ロール管理者で使用できます。
ルート管理グループのスコープで権限を設定するには、昇格されたアクセス権が必要です。グローバル管理者のアクセス権を昇格させる手順については、Azure のすべてのサブスクリプションと管理グループを管理する目的でアクセス権限を昇格させるをご覧ください。
Security Command Center Azure コネクタを有効にして構成する
次の手順に沿って Azure コネクタを作成して構成します。
Google Cloudで権限を設定するセクションで定義された権限があることを確認します。
36 文字の Microsoft Azure テナント ID を持っていることを確認します。
[設定] ページの [コネクタ] タブを開きます。
Security Command Center Enterprise を有効にした組織を選択します。
[コネクタを追加] > [Microsoft Azure] をクリックします。
[コネクタの構成] ページで、Azure テナント ID を入力します。
Sensitive Data Protection で Azure データをプロファイリングできるようにするには、[Sensitive Data Protection 検出に対する権限を付与する] を選択したままにします。このオプションにより、ユーザー定義のマネージド ID の Terraform テンプレートに Storage Blob データ閲覧者ロールが追加されます。
次のいずれかを選択します。
サブスクリプションを自動的に追加する: Security Command Center はサブスクリプションと管理グループを自動的に検出して追加します。必要に応じて、[Azure サブスクリプションを除外] フィールドにサブスクリプション ID を追加すると、収集対象から除外できます。
サブスクリプションを個別に追加する: Security Command Center はサブスクリプションを自動的に検出しません。[Azure サブスクリプションを追加] フィールドを使用して、1 つ以上のサブスクリプションを定義する必要があります。
必要に応じて [データを収集する Azure ロケーションの選択] セクションで、データを収集する 1 つ以上の Microsoft Azure ロケーションを選択します。すべてのロケーションから収集する場合は、このフィールドは空白のままにします。メニューからロケーションを選択すると、選択していないロケーションは除外されます。
推奨される設定は、[Azure サブスクリプションを自動的に検出する] をオンにして、すべての Microsoft Azure のロケーションを使用することです。
[次へ] をクリックします。[Azure に接続する] ページが開きます。
[Azure に接続する] ページを開いたまま、Microsoft Azure 環境を構成するに進みます。
Microsoft Azure を構成後、このページに戻って Azure コネクタの構成を完了します。
Microsoft Azure 環境を構成する
次のいずれかのセクションを完了します。
Microsoft Azure を手動で構成する
次のセクションでは、Azure 環境を構成して、Security Command Center と Microsoft Azure 間の信頼を確立する手動での手順の概要について説明します。この手順はすべてを網羅しているわけではありません。各セクションには、そのタスクを実行する方法を説明した Microsoft Azure ドキュメントへのリンクが記載されています。
前提条件
Microsoft Azure で権限を設定するセクションで定義された権限があることを確認します。
Security Command Center Azure コネクタを作成したときに生成されたサービス エージェント ID を持っていることを確認します。
ステップ 1: リソース グループにユーザー割り当てマネージド ID を作成する
ユーザー割り当てマネージド ID の管理の手順に沿って、ユーザー割り当てマネージド ID を作成します。
ID を作成するときに、次のように指定します。
- サブスクリプション: ID を管理するサブスクリプションを選択します。
- リソース グループ: ID を管理するリソース グループ名 RESOURCE_GROUP_NAME を指定します。これはデータの収集を計画する際に特定しています。
- リージョン: リージョン(
East US
など)を選択します。 - 名前: ユーザー割り当てマネージド ID の名前を入力します(
gcp-managed-identity
など)。変数 USER_ASSIGNED_MANAGED_IDENTITY_NAME を ID 名に置き換えます。この変数はこのドキュメントの手順で必要な場合に自動入力されます。
次の情報を記録します。これらの情報は今後のステップで使用します。
- クライアント ID: ID に割り当てられた 36 文字の値。
- オブジェクト(プリンシパル)ID: ID に割り当てられた 36 文字の値。
- ID 名: 名前として定義した値。
ステップ 2: ユーザー割り当てマネージド ID のフェデレーション資格情報を作成する
ユーザー割り当てマネージド ID にフェデレーション資格情報を追加するには、外部 ID プロバイダーを信頼するようにユーザー割り当てマネージド ID を構成するの手順に沿って行います。
その他の発行者のシナリオのガイダンスを使用して、次のように設定します。
- フェデレーション資格情報のシナリオ: [その他: 外部 OpenID Connect プロバイダーが管理する ID を構成して、このアプリケーションとして Microsoft Azure リソースにアクセスする] を選択します。
- 発行者の URL: 「
https://accounts.google.com
」と入力します。 - サブジェクト識別子: Security Command Center Azure コネクタを作成したときに生成されたサービス エージェント ID を入力します。
- 名前: フェデレーション資格情報の名前を入力します(
gcp-managed-identity-fic
など)。 - 対象: 「
https://cloud.google.com
」と入力します。
ステップ 3: Microsoft Azure の組み込みロールを割り当てる
Azure Portal を使用して Azure ロールを割り当てるの手順に沿って、次の Microsoft Azure の組み込みロールをユーザー割り当てマネージド ID に割り当てます。
- キーボールト リーダー
- 閲覧者
- Storage Blob データ閲覧者
これらのロールはルート管理グループ スコープで付与します。
ステップ 4: Microsoft Entra ID の組み込みロールを割り当てる
ユーザーに Microsoft Entra ロールを割り当てるの手順に沿って、次の Microsoft Entra ID の組み込みロールをユーザー割り当てマネージド ID に割り当てます。
- ディレクトリ閲覧者
- セキュリティ閲覧者
完了後、Azure コネクタの構成を完了するに進みます。
Terraform を使用して Microsoft Azure を構成する
次の手順の概要では、Terraform を使用して Microsoft Azure を構成する方法について説明します。この手順はすべてを網羅しているわけではありません。Terraform を使用したリソースのプロビジョニングの詳細については、Azure 上の Terraform ドキュメントをご覧ください。
Azure コネクタを作成したときに開いたままにしておいた [Azure に接続する] ページを開きます。
[Terraform テンプレートをダウンロード] をクリックします。複数の JSON ファイルを含む
azure_terraform.zip
ファイルがダウンロードされます。Microsoft Azure にログインし、BASH または Azure PowerShell を使用して Azure Cloud Shell を開きます。
次のいずれかの手順を使用し、組織のポリシーに沿って Terraform を構成します。
azure_terraform.zip
ファイルを Azure Cloud Shell 環境にコピーし、内容を抽出します。main.tf.json
、outputs.tf.json
、providers.tf.json
、variables.tf.json
のファイルが表示されます。別のディレクトリにこれらのファイルのコピーを作成します。
- 新しいディレクトリを作成して Terraform のサンプルコードをテストし、そのディレクトリを現在のディレクトリにします。
新しく作成したディレクトリに、抽出した JSON ファイルのコピーを元のファイルと同じ名前で作成します。
main.tf.json
という名前の新しいファイルを作成し、抽出したmain.tf.json
ファイルからコードをコピーして貼り付けます。providers.tf.json
という名前の新しいファイルを作成し、抽出したproviders.tf.json
ファイルからコードをコピーして貼り付けます。outputs.tf.json
という名前の新しいファイルを作成し、抽出したoutputs.tf.json
ファイルからコードをコピーして貼り付けます。variables.tf.json
という名前の新しいファイルを作成し、抽出したvariables.tf.json
ファイルからコードをコピーして貼り付けます。
次のコマンドを実行して、Terraform デプロイを初期化します。
terraform init -upgrade
次のコマンドを実行して実行プランを作成します。
terraform plan -out main.tfplan -var="resource_group_name=RESOURCE_GROUP_NAME" -var="user_assigned_managed_identity_name=USER_ASSIGNED_MANAGED_IDENTITY_NAME"
次のように置き換えます。
RESOURCE_GROUP_NAME
: ユーザー割り当てマネージド ID を作成する Microsoft Azure リソース グループの名前。USER_ASSIGNED_MANAGED_IDENTITY_NAME
: 作成するユーザー割り当てマネージド ID の名前。指定しなかった場合、デフォルト値はgoogle-cloud-managed-identity
となります。
次のコマンドを実行して、実行プランを Microsoft Azure インフラストラクチャに適用します。
terraform apply main.tfplan
Azure コネクタの構成を完了するセクションに進みます。
Azure コネクタの構成を完了する
Microsoft Azure のユーザー割り当てマネージド ID に関する次の情報を把握していることを確認します。
- クライアント ID: ID に割り当てられた 36 文字の値。
- オブジェクト(プリンシパル)ID: ID に割り当てられた 36 文字の値。
この情報を確認する方法については、ユーザー割り当てマネージド ID を一覧表示するをご覧ください。
Azure コネクタを作成したときに開いたままにしておいた [Azure に接続する] ページを開きます。
[Azure マネージド ID の詳細] セクションで、次の情報を入力します。
- マネージド ID のクライアント ID: クライアント ID です。
- マネージド ID のオブジェクト ID: オブジェクト(プリンシパル)ID です。
[続行] をクリックします。
[コネクタをテストする] ページで、[コネクタをテスト] をクリックして、Security Command Center が Microsoft Azure 環境に接続できることを確認します。
接続に成功すると、 Google Cloud サービス エージェントは Microsoft Azure のユーザー割り当てマネージド ID を使用できるようになり、必要な Microsoft Azure と Microsoft Entra の権限を保持します。接続に失敗した場合は、接続テスト時のエラーのトラブルシューティングをご覧ください。
[保存] をクリックします。[コネクタ] ページが表示されます。
コネクタは指定した Azure サブスクリプションとロケーションからのデータのスキャンと収集を開始します。開始までに最長で 24 時間ほどかかることがあります。
接続テスト時のエラーのトラブルシューティング
次のセクションでは、Security Command Center と Microsoft Azure 間の接続をテストしたときに発生する可能性のあるエラーと、それぞれの解決方法について説明します。
AZURE_ENABLED_SUBSCRIPTIONS_NOT_FOUND エラー
Azure コネクタは [Azure テナント ID] フィールドで指定されたテナントにおいて有効なサブスクリプションを見つけられませんでした。次の点を確認してください。
- [サブスクリプションを自動的に追加する] を選択した場合は、テナントに
Enabled
ステータスのサブスクリプションが含まれており、[Azure サブスクリプションを除外] フィールドに表示されていないことを確認します。 - [サブスクリプションを個別に追加する] を選択した場合は、指定したサブスクリプションが
Enabled
ステータスになっていることを確認します。
AZURE_FAILED_TO_ASSUME_MANAGED_IDENTITY エラー
Microsoft Azure のユーザー割り当てマネージド ID を Google Cloud サービス エージェントが使用できないため、接続が無効となっています。想定される原因には次のものがあります。
- 接続で指定されたユーザー割り当てマネージド ID が存在しないか、正しく構成されていません。
- 接続で指定されたユーザー割り当てマネージド ID に、 Google Cloud サービス エージェントを信頼するために必要なフェデレーション ID 資格情報が含まれていない可能性があります。
この問題を解決するには、次の操作を行います。
- リソース グループにユーザー割り当てマネージド ID を作成したときの設定を確認して、ID が存在し、構成が正しいことを確認します。
- フェデレーション ID 資格情報で定義された設定を確認して、構成が正しいことを確認します。
AZURE_MANAGED_IDENTITY_MISSING_REQUIRED_PERMISSION エラー
Azure のユーザー割り当てマネージド ID に必要な Microsoft Azure または Microsoft Entra のロールがないため、接続が無効となっています。エラー メッセージには不足しているロールが表示されます。
この問題を解決するには、Microsoft Azure の組み込みロールと Microsoft Entra の組み込みロールを構成したときの設定内容を確認して、構成が正しいことを確認します。
AZURE_MANAGED_IDENTITY_ASSUMPTION_FAILED_AND_MISSING_REQUIRED_PERMISSION エラー
Microsoft Azure のユーザー割り当てマネージド ID を Google Cloud サービス エージェントが使用できず、また必要な Microsoft Azure または Microsoft Entra のロールの一部が不足しているため、接続が無効になっています。
エラー メッセージには、ユーザー割り当てマネージド ID で引き受けできなかったスコープと、不足しているロールの詳細が表示されます。
この問題を解決するには、次の操作を行います。
- リソース グループにユーザー割り当てマネージド ID を作成したときに割り当てた設定を確認して、接続内の ID が存在し、設定が正しいことを確認します。
- Microsoft Azure の組み込みロールと Microsoft Entra の組み込みロールを構成したときの設定内容を確認して、構成が正しいことを確認します。
その他のトラブルシューティングのヒント
以下のセクションでは、動作と対処方法について説明します。
削除された Azure リソースに対する検出結果が返される
Azure リソースが削除されてから、Security Command Center Asset Inventory システムで削除されるまで、最大で 40 時間かかることがあります。リソースを削除することにより検出結果を解決した場合には、アセットが Security Command Center Asset Inventory システムから削除されるまでは検出結果が報告されることがあります。
次のステップ
- 初めて Security Command Center Enterprise を設定する場合は、設定ガイドを使用して追加機能を構成する。
追加でできること:
- Azure データからの検出結果を確認して修正する。
- Security Operations コンソールで、検出結果に関連するリソースを確認する。
- Azure リソースの攻撃パス シミュレーションを確認する。