このページでは、テストデータを含む YAML ファイルをアップロードして、Security Health Analytics カスタム モジュールを Google Cloud コンソールでテストする方法について説明します。
始める前に
カスタム モジュールをテストするには、次の前提条件を満たす必要があります。
Security Health Analytics カスタム モジュールを使用する際の一般的な前提条件には、次のものがあります。
- プレミアム サービスティアの有効化
- Security Command Center API の有効化
前提条件の詳細については、Security Health Analytics カスタム モジュールの使用をご覧ください。
ユーザー アカウントには、Security Command Center とカスタム モジュールの操作に必要な権限だけでなく、
securitycenter.securityhealthanalyticscustommodules.test
権限も付与されるように、1 つ以上の Identity and Access Management(IAM)ロールを付与する必要があります。カスタム モジュールの操作に必要な権限とロールの詳細については、必要な IAM 権限をご覧ください。カスタム モジュールをテストするための API 呼び出しには割り当てが適用されます。詳細については、カスタム モジュールの割り当てをご覧ください。
YAML ファイルにテストリソースを作成する
カスタム モジュールをテストするには、YAML ファイルで疑似リソース定義、架空のポリシー定義、またはその両方を定義します。
この定義は実際のリソースやポリシー インスタンスに対応していませんが、カスタム モジュールで指定されたリソースまたはポリシーのタイプのスキーマに準拠している必��があります。
テスト定義で指定する必要のあるプロパティは、カスタム モジュールが評価するプロパティだけです。カスタム モジュールが参照しないリソース プロパティを含める必要はありません。
カスタム モジュールで CEL 式をテストするには、テストファイル内で CEL 式が true
に解決されるプロパティ値を指定します。
テストデータの形式
ファイルは最初の行に testData:
で始まり、その後に 1 つ以上の - asset
定義が続きます。
testData: - asset: resource: ARBITRARY_ASSET_NAME_1 assetType: RESOURCE_TYPE_1 resourceData: PROPERTIES_TO_TEST_1: PROPERTY_VALUE_1 SUB_PROPERTY: SUB_PROPERTY_VALUE PROPERTIES_TO_TEST_2: PROPERTY_VALUE_2 - asset: resource: ARBITRARY_ASSET_NAME_2 assetType: RESOURCE_TYPE_2 iamPolicyData: PROPERTIES_TO_TEST_3: PROPERTY_VALUE_3 PROPERTIES_TO_TEST_4: PROPERTY_VALUE_4
次のように置き換えます。
ARBITRARY_ASSET_NAME_N
: テストが成功した場合にテスト結果に表示される任意の値。RESOURCE_TYPE_N
: カスタム モジュールが確認するアセットまたはリソースのタイプ。API のサービス エンドポイントのドメイン名��リソース名(たとえば、cloudkms.googleapis.com/CryptoKey
)として指定します。PROPERTIES_TO_TEST_N
: 検出結果をトリガーする、カスタム モジュールの検出ロジックで使用されるプロパティ。PROPERTY_VALUE_N
: 検出結果をトリガーするプロパティの値。SUB_PROPERTY
: ターゲット リソースがリソース定義で参照している別のリソースのサブプロパティまたはプロパティ。
テスト定義の例
このセクションでは、テストリソース定義とテストポリシー定義の例を示します。2 つの例は別々のファイルで定義されていますが、リソースとポリシーの asset
定義を 1 つの testData
ファイルに記述することもできます。
リソース定義の例
次の例では、CryptoKey
リソースの rotationPeriod
プロパティが 2592000
秒(30 日)を超えているかどうかを確認するカスタム モジュールをテストします。定義の他のプロパティはカスタム モジュールで使用されませんが、リソースのスキーマに準拠するために必要です。この例でテストするカスタム モジュールの完全な定義については、カスタム モジュールの定義の例をご覧ください。
testData: - asset: resource: THE CRYPTOKEY TEST WAS SUCCESSFUL! assetType: cloudkms.googleapis.com/CryptoKey resourceData: nextRotationTime: '2020-02-05T12:00:55.192645Z' primary: state: 'ENABLED' purpose: 'ENCRYPT_DECRYPT' rotationPeriod: '2592001s'
ポリシー定義の例
以下に、IAM ポリシーのテスト定義の例を示します。
testData: - asset: resource: //cloudresourcemanager.googleapis.com/projects/fake-project assetType: cloudresourcemanager.googleapis.com/Project iamPolicyData: bindings: - role: "roles/viewer" members: - "serviceAccount:fake-service-account@compute-system.iam.gserviceaccount.com" - "user:fake-email-account"
カスタム モジュールをテストする
新しいカスタム モジュールまたは既存のカスタム モジュールは Google Cloud コンソールでテストできます。
カスタム モジュールをテストするには、次の操作を行います。
Security Command Center の設定で Security Health Analytics の [モジュール] ページに移動します。
テスト用のカスタム モジュールを開くか、作成します。
- 新しいカスタム モジュールを作成するには、[モジュールの作成] をクリックし、カスタム モジュールを作成するの手順に沿って操作します。
- 既存のカスタム モジュールを開くには、テストするモジュール行の右側にある [アクション] で編集アイコン(edit)をクリックします。
[モジュールのテスト] タブを選択します。
[YAML ファイルのアップロード] で [参照] をクリックし、サンプル アセットデータを含むファイルをアップロードします。YAML ファイルがアップロードされるとすぐに、テストが実行されます。
[テスト結果のプレビュー] で結果を確認します。
- YAML ファイルに構文またはその他のエラーがある場合は、ブラウザページの一番下の近くにフローティング エラー メッセージが表示されます。
テストが成功すると、次の情報が返されます。
- カスタム モジュールの表示名。
- テストデータ ファイルの
resource
プロパティに指定した任意の名前。 - カスタム モジュールが作成された(または作成される予定の)組織、フォルダ、またはプロジェクト。
テスト結果は保存されず、Security Command Center にも書き込まれません。
次のステップ
- カスタム モジュールを使用する。Security Health Analytics カスタム モジュールの使用をご覧ください。
- Google Cloud コンソールで検出結果を操作する。検出結果を操作するをご覧ください。