Method: organizations.sources.findings.group

組織またはソースの検出結果をフィルタし、指定したプロパティでグループ化します。

すべてのソースにまたがってグループ化するには、ソース ID として - を指定します。例: /v1/organizations/{organization_id}/sources/-/findings、/v1/folders/{folder_id}/sources/-/findings、/v1/projects/{projectId}/sources/-/findings

HTTP リクエスト


この URL は gRPC Transcoding 構文を使用します。

パスパラメータ

パラメータ
parent

string

必須。groupBy のソースの名前。形式は「organizations/[organization_id]/sources/[source_id]」、「folders/[folder_id]/sources/[source_id]」、「projects/[projectId]/sources/[source_id]」です。すべてのソースでグループ化するには、source_id に - を指定します。例: organizations/{organization_id}/sources/-、folders/{folder_id}/sources/-、projects/{projectId}/sources/-

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

JSON 表現
{
  "filter": string,
  "groupBy": string,
  "readTime": string,
  "compareDuration": string,
  "pageToken": string,
  "pageSize": integer
}
フィールド
filter

string

検出結果全体に適用するフィルタを定義する式。式は、論理演算子 ANDOR で結合された 1 つ以上の制限のリストです。かっこはサポートされています。ORAND よりも優先されます。

制限は <field> <operator> <value> の形式で、否定を示すために前に - 文字を付けることができます。次に例を示します。

  • name
  • sourceProperties.a_property
  • securityMarks.marks.marka

サポートされている演算子は次のとおりです。

  • すべての値型で =
  • 整数値の場合は ><>=<=
  • :: 文字列の部分文字列照合。

サポートされている値の型は次のとおりです。

  • 文字列リテラルは引用符で囲みます。
  • 整数リテラル(引用符なし)。
  • ブール値リテラル truefalse(引用符なし)。

次のフィールドと演算子の組み合わせがサポートされています。

  • 名前: =
  • 親: =:
  • resourceName: =:
  • state: =:
  • カテゴリ: =:
  • externalUri: =:
  • eventTime: =><>=<=
  • 重大度: =:

使用方法: エポックからのミリ秒数または RFC3339 文字列にする必要があります。例: eventTime = "2019-06-10T16:07:18-07:00" eventTime = 1560208038000

  • securityMarks.marks: =:
  • sourceProperties: =:><>=<=

たとえば、sourceProperties.size = 100 は有効なフィルタ文字列です。

空の文字列の部分一致を使用して、既存のプロパティ(sourceProperties.my_property : "")に基づいてフィルタします。

空の文字列に対する否定的な部分一致を使用して、存在しないプロパティに基づいてフィルタします。-sourceProperties.my_property : ""

groupBy

string

必須。グループ化に使用するアセット フィールド(stateChange を含む)を定義する式。文字列の値は、SQL 構文に従って、フィールドのカンマ区切りリストにする必要があります。例: parent,resourceName。

次のフィールドがサポートされています。

  • resourceName
  • category
  • state
  • 重要度

compareDuration が設定されている場合、次のフィールドがサポートされます。

  • stateChange
readTime

string (Timestamp format)

検出結果のフィルタリング時に参照点として使用される時間。フィルタは、指定された時刻に存在する検出結果に限定され、その値は特定の時刻の値になります。このフィールドが指定されていない場合、デフォルトは API のバージョンの NOW になります。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

compareDuration

string (Duration format)

compareDuration が設定されている場合、GroupResult の「stateChange」属性が更新され、検出結果の状態が変更されたかどうか、検出結果の状態が変更されていないかどうか、または readTime より前の compareDuration 期間中に検出結果が追加されたかどうかが示されます。これは、(readTime - compareDuration)と readTime の間の時間です。

stateChange 値は、2 つの時点での検出結果の存在と状態に基づいて導出されます。2 回目の測定までの間の中間状態の変化は結果に影響しません。たとえば、検出結果を無効にしてから再度有効にしても、結果は影響を受けません。

compareDuration が指定されている場合の「stateChange」の有効な値:

  • 「CHANGED」: 検出結果が存在し、compareDuration の開始時に指定されたフィルタに一致していたが、readTime で状態が変更されたことを示します。
  • 「UNCHANGED」: 検出結果が存在し、compareDuration の開始時に指定されたフィルタと一致し、readTime で状態が変更されていないことを示します。
  • 「ADDED」: 検出結果が指定されたフィルタと一致しなかったか、compareDuration の開始時には存在しなかったが、readTime には存在したことを示します。
  • 「REMOVED」: 検出結果が存在し、compareDuration の開始時にフィルタに一致していたが、readTime の時点では一致しなかったことを示します。

compareDuration が指定されていない場合、使用可能な stateChange は「UNUSED」のみです。これは、readTime に存在するすべての検出結果に設定される stateChange です。

このフィールドが設定されている場合、stateChangegroupBy で指定されたフィールドである必要があります。

s で終わる小数 9 桁までの秒単位の期間。例: "3.5s"

pageToken

string

最後の GroupFindingsResponse で返された値は、これが前の findings.group 呼び出しの続きであり、システムからその次のページのデータが返される必要があることを示しています。

pageSize

integer

1 回のレスポンスで返される結果の最大件数。デフォルトは 10 で、最小値は 1、最大値は 1,000 です。

レスポンスの本文

成功した場合、レスポンスの本文には GroupFindingsResponse のインスタンスが含まれます。

認可スコープ

次の OAuth スコープが必要です。

  • https://www.googleapis.com/auth/cloud-platform

詳細については、Authentication Overview をご覧ください。