Terraform を使用して Security Command Center リソースをプロビジョニングする

Hashicorp Terraform は、クラウド インフラストラクチャのプロビジョニングと管理に使用できる Infrastructure as Code(IaC)ツールです。Terraform には、クラウド プロバイダや他の API とやり取りできるプロバイダというプラグインが用意されています。 Google Cloud用の Terraform プロバイダを使用して、Security Command Center などの Google Cloud リソースをプロビジョニングして管理できます。

このページでは、Security Command Center で Terraform を使用する方法について説明します。Terraform の仕組みの概要と、 Google Cloudで Terraform の使用を開始するためのリソースも紹介します。また、Security Command Center の Terraform リファレンス ドキュメント、コードサンプル、Terraform を使用して Security Command Center リソースをプロビジョニングするガイドへのリンクも用意されています。

Google Cloud用 Terraform の使用を開始する手順については、Terraform をインストールして構成するまたは Google Cloud 用 Terraform クイックスタートをご覧ください。

Terraform の仕組み

Terraform には宣言型で構成指向の構文があり、これを使用して、 Google Cloud プロジェクトにプロビジョニングするインフラストラクチャを記述できます。1 つまたは複数の Terraform 構成ファイルで構成を作成し、Terraform CLI を使用して、この構成を Security Command Center リソースに適用できます。

以降のステップでは、Terraform の仕組みについて説明します。

  1. プロビジョニングするインフラストラクチャを Terraform 構成ファイルに記述します。インフラストラクチャのプロビジョニング方法を記述するコードは必要ありません。Terraform がインフラストラクチャをプロビジョニングします。
  2. terraform plan コマンドを実行します。これにより、構成が評価され、実行プランが生成されます。プランを確認し、必要に応じて変更します。
  3. 次に、terraform apply コマンドを実行します。これにより、次のアクションが実行されます。

    1. バックグラウンドで、対応する Security Command Center API を呼び出し、実行プランに基づいてインフラストラクチャをプロビジョニングします。
    2. Terraform 状態ファイルを作成します。これは、構成ファイル内のリソースと実際のインフラストラクチャ内のリソースとのマッピングを行う JSON ファイルです。Terraform は、このファイルを使用してインフラストラクチャの最新状態を記録し、リソースを作成、更新、破棄するタイミングを決定します。
    3. terraform apply を実行すると、Terraform は状態ファイルのマッピングを使用して、既存のインフラストラクチャをコードと比較し、必要に応じて更新を行います。

      • 構成ファイルで定義されたリソース オブジェクトが状態ファイルに存在しない場合、Terraform はリソース オブジェクトを作成します。
      • リソース オブジェクトが状態ファイルに存在し、構成ファイルと構成が異なる場合、Terraform は構成ファイルと一致するようにリソースを更新します。
      • 状態ファイル内のリソース オブジェクトが構成ファイルと一致する場合、Terraform はリソースを変更しません。

Security Command Center の Terraform リソース

リソースは、Terraform 言語の基本要素です。各リソース ブロックは、仮想ネットワークやコンピューティング インスタンスなど、1 つ以上のインフラストラクチャ オブジェクトを記述します。

次の表に、Security Command Center で使用可能な Terraform リソースを示します。

サービス Terraform リソース データソース
Security Command Center(SCC)v2 API
Security Command Center(SCC)[v1 API]
Security Command Center Management(SCC)
セキュリティ ポスチャー
Cloud Security Scanner [Web Security Scanner]

Security Command Center の Terraform ベースのガイド

次の表に、Security Command Center の Terraform ベースの入門ガイドとチュートリアルを示します。

ガイド 詳細
Event Threat Detection 用カスタム モジュールの作成と管理 このガイドでは、Event Threat Detection のカスタム モジュールを管理する方法について説明します。カスタム モジュールを使用すると、指定したパラメータに基づいて脅威を検出できます。
Pub/Sub の検出結果の通知を有効にする このガイドでは、Security Command Center の新しい検出結果と更新された検出結果の通知を Pub/Sub トピックに送信する方法について説明します。
セキュリティ ポスチャーを管理する このガイドでは、セキュリティ対策を管理し、セキュリティ対策の外部で行われた変更(ドリフトの原因)をモニタリングする方法について説明します。
Security Command Center で検出結果をミュートする このガイドでは、検出結果をミュートして、Security Command Center で受け取る検出結果の数を減らす方法について説明します。
分析のために検出結果を BigQuery にストリーミングする このガイドでは、Security Command Center の新しい検出結果と更新された検出結果を BigQuery データセットにストリーミングする方法について説明します。
Security Health Analytics でのカスタム モジュールの使用 このガイドでは、Security Health Analytics のカスタム モジュールを管理する方法について説明します。カスタム モジュールを使用すると、指定したパラメータに基づいて脅威を検出できます。

Security Command Center の Terraform モジュールとブループリント

モジュールとブループリントを使用すると、 Google Cloud リソースの大規模なプロビジョニングと管理を自動化できます。モジュールとは、Terraform リソースを論理的に抽象化する、再利用可能な一連の Terraform 構成ファイルのことです。ブループリントは、特定のソリューションを実装および文書化した、モジュールとポリシーのパッケージです。このパッケージはデプロイして再利用できます。

次の表に、Security Command Center に関連するモジュールとブループリントを示します。

モジュールまたはブループリント 詳細
iam Google Cloudのリソースに対する複数の IAM ロールを管理します。
org-policy Google Cloud 組織のポリシーを管理する

次のステップ