Security Command Center のエンタープライズ ティアを Microsoft Azure 環境に接続すると、次のことができます。
- 構成ミスに関連する検出結果の検出を有効にします。
- 公共のインターネットから価値の高い Microsoft Azure アセットへの潜在的な攻撃パスを特定します。
- Microsoft Azure リソースのコンプライアンスをさまざまな標準とベンチマークにマッピングする。
Security Command Center と Microsoft Azure を接続すると、チームが Google Cloud と Azure の両方で構成ミスを 1 か所で管理して修正できるようになります。
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 ルート管理グループのスコープ内の読み取り。リソース、サブスクリプション、管理グループ階層を読み取ります。
Microsoft Azure ルート管理グループのスコープ内の Key Vault 読み取り。Key Vault と関連する証明書、鍵、シークレットに関するメタデータを読み取ります。
Microsoft Azure ルート管理グループのスコープ内の Storage Blob Data Reader。リソースのメタデータを読み取ります。Azure コネクタの構成時に [機密データの保護の検出の権限を付与する] を有効にする場合は、このロールを付与します。
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 の Workload Identity 連携、連携認証情報、ユーザーが割り当てたマネージド ID に連携 ID を構成する。
Microsoft Azure ポータル、Azure CLI、Terraform を使用してリソース グループを作成、管理する。
データ収集を計画する
データ収集戦略を計画する際は、次の点に注意してください。この情報は、このドキュメントの手順を実行するときに必要になります。
ユーザー定義マネージド ID を作成するリソース グループを作成するか、特定します。構成時にリソース グループ名が必要になります。
RESOURCE_GROUP_NAME 変数をリソース グループ名に置き換えて、このドキュメントの次の手順で値を入力します。
データを収集するリソースを特定します。特定のサブスクリプションまたはリージョンからのみデータを収集する場合は、計画時にそれらを特定して記録します。
すべてのサブスクリプションとリージョンでリソースを自動的に検出するように Azure コネクタを構成することもできます。
Google Cloudで権限を設定する
Google Cloudでサードパーティ クラウド プロバイダへの接続を作成して管理するには、組織で Cloud Asset オーナー(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 データをプロファイリングできるようにするには、[機密データの保護の検出に権限を付与する] を選択したままにします。このオプションでは、ユーザー定義マネージド ID の Terraform テンプレートに Storage Blob DataReader ロールを追加します。
次のいずれかを選択します。
- サブスクリプションを自動的に追加する: 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 を手動で構成する
次のセクションでは、Security Command Center と Microsoft Azure 間の信頼を確立する 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: 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 ロールを割り当てるの手順に沿って、ユーザーが割り当てたマネージド ID に次の Microsoft Azure 組み込みロールを割り当てます。
- Vault 読み取り
- リーダー
- Storage Blob Data Reader
これらのロールは、ルート管理グループ スコープで付与します。
ステップ 4: Microsoft Entra ID の組み込みロールを割り当てる
Microsoft Entra のロールをユーザーに割り当てるの手順に沿って、ユーザーが割り当てたマネージド ID に次の Microsoft Entra 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 エラー
Google Cloud サービス エージェントは Microsoft Azure ユーザー割り当てマネージド ID を想定できないため、接続は無効です。考えられる原因は次のとおりです。
- 接続で指定されたユーザー割り当てマネージド 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 がサービス エージェントによって引き継がれず、同時に必要な Microsoft Azure ロールまたは Microsoft Entra ロールの一部が不足しているため、接続が無効です。 Google Cloud
エラー メッセージには、ユーザーが割り当てたマネージド ID がどのスコープを仮装できなかったか、どのロールが不足しているかに関する詳細が含まれます。
この問題を解決するには、次の操作を行います。
- リソース グループにユーザーが割り当てたマネージド ID を作成するときに割り当てられた設定を確認して、接続内の ID が存在し、設定が正しいことを確認します。
- Microsoft Azure 組み込みロールと Microsoft Entra 組み込みロールを構成したときに設定した設定を確認して、構成が正しいことを確認します。
その他のトラブルシューティングのヒント
以降のセクションでは、この問題の動作と対処方法について説明します。
削除された Azure リソースの検出結果が返される
Azure リソースを削除した後、Security Command Center のアセット インベントリ システムから削除されるまでに最大 40 時間かかることがあります。リソースを削除して検出結果を解決する場合、アセットが Security Command Center アセット インベントリ システムからまだ削除されていないため、この期間内に検出結果が報告されることがあります。
次のステップ
Security Command Center Enterprise を初めて設定する場合は、コンソールの設定ガイドのステップ 4 に進みます。
さらに、次のことも可能です。
- Azure データの検出結果を確認して修正する。
- 検出結果に関連するリソースを表示する。
- Azure リソースの攻撃パス シミュレーションを表示します。