フィルタを使用したアセットのグループ化

アセットをタイプ別にフィルタおよびグループ化する方法を説明します。

コードサンプル

Java

Security Command Center で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

static ImmutableList<GroupResult> groupAssetsWithFilter(OrganizationName organizationName) {
  try (SecurityCenterClient client = SecurityCenterClient.create()) {
    // Start setting up a request to filter all assets by type and group them by project in an
    // organization.
    // You can also use a project or folder as a parent resource and filter assets in them
    // respectively.
    GroupAssetsRequest.Builder request =
        GroupAssetsRequest.newBuilder()
            .setFilter(
                "security_center_properties.resource_type=\"google.cloud.resourcemanager.Project\"")
            .setGroupBy("security_center_properties.resource_project")
            .setParent(organizationName.toString());

    // Call the API.
    GroupAssetsPagedResponse response = client.groupAssets(request.build());

    // This creates one list for all assets.  If your organization has a large number of assets
    // this can cause out of memory issues.  You can process them batches by returning
    // the Iterable returned response.iterateAll() directly.
    ImmutableList<GroupResult> results = ImmutableList.copyOf(response.iterateAll());
    System.out.println("All assets:");
    System.out.println(results);
    return results;
  } catch (IOException e) {
    throw new RuntimeException("Couldn't create client.", e);
  }
}

Python

Security Command Center で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

from google.cloud import securitycenter

client = securitycenter.SecurityCenterClient()

# 'organization_id' is the numeric ID of the organization.
# organization_id = "1234567777"
org_name = f"organizations/{organization_id}"

group_by_type = "security_center_properties.resource_type"
only_projects = (
    "security_center_properties.resource_type="
    + '"google.cloud.resourcemanager.Project"'
)
# You can also use a project/ folder as a parent resource and filter assets in them
# respectively.
result_iterator = client.group_assets(
    request={"parent": org_name, "group_by": group_by_type, "filter": only_projects}
)
for i, result in enumerate(result_iterator):
    print((i + 1), result)

次のステップ

他の Google Cloud プロダクトに関連するコードサンプルの検索およびフィルタ検索を行うには、Google Cloud のサンプルをご覧ください。