-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs(samples): added samples and tests for BigQuery export RPCs (#782)
* docs(samples): added samples and tests for BigQuery export RPCs * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * docs(samples): updated acc to review comments * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * update to latest version of bom * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * docs(samples): updated pom.xml with bigquery * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * including test project specific secrets * docs(samples): lint fix * docs(samples): lint fix * modified project id for testing * Update BigQueryExportIT.java Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
- Loading branch information
1 parent
4426c7a
commit 3bbab26
Showing
10 changed files
with
534 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
89 changes: 89 additions & 0 deletions
89
...om/google/cloud/examples/securitycenter/snippets/bigqueryexport/CreateBigQueryExport.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
/* | ||
* Copyright 2022 Google LLC | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
package com.google.cloud.examples.securitycenter.snippets.bigqueryexport; | ||
|
||
// [START securitycenter_create_bigquery_export] | ||
|
||
import com.google.cloud.securitycenter.v1.BigQueryExport; | ||
import com.google.cloud.securitycenter.v1.CreateBigQueryExportRequest; | ||
import com.google.cloud.securitycenter.v1.SecurityCenterClient; | ||
import java.io.IOException; | ||
import java.util.UUID; | ||
|
||
public class CreateBigQueryExport { | ||
|
||
public static void main(String[] args) throws IOException { | ||
// TODO(Developer): Modify the following variable values. | ||
|
||
// parent: Use any one of the following resource paths: | ||
// - organizations/{organization_id} | ||
// - folders/{folder_id} | ||
// - projects/{project_id} | ||
String parent = String.format("projects/%s", "your-google-cloud-project-id"); | ||
|
||
// filter: Expression that defines the filter to apply across create/update events of findings. | ||
String filter = | ||
"severity=\"LOW\" OR severity=\"MEDIUM\" AND " | ||
+ "category=\"Persistence: IAM Anomalous Grant\" AND " | ||
+ "-resource.type:\"compute\""; | ||
|
||
// bigQueryDatasetId: The BigQuery dataset to write findings' updates to. | ||
String bigQueryDatasetId = "your-bigquery-dataset-id"; | ||
|
||
// bigQueryExportId: Unique identifier provided by the client. | ||
// For more info, see: | ||
// https://cloud.google.com/security-command-center/docs/how-to-analyze-findings-in-big-query#export_findings_from_to | ||
String bigQueryExportId = "default-" + UUID.randomUUID().toString().split("-")[0]; | ||
|
||
createBigQueryExport(parent, filter, bigQueryDatasetId, bigQueryExportId); | ||
} | ||
|
||
// Create export configuration to export findings from a project to a BigQuery dataset. | ||
// Optionally specify filter to export certain findings only. | ||
public static void createBigQueryExport( | ||
String parent, String filter, String bigQueryDatasetId, String bigQueryExportId) | ||
throws IOException { | ||
// Initialize client that will be used to send requests. This client only needs to be created | ||
// once, and can be reused for multiple requests. After completing all of your requests, call | ||
// the "close" method on the client to safely clean up any remaining background resources. | ||
try (SecurityCenterClient client = SecurityCenterClient.create()) { | ||
|
||
// Create the BigQuery export configuration. | ||
BigQueryExport bigQueryExport = | ||
BigQueryExport.newBuilder() | ||
.setDescription( | ||
"Export low and medium findings if the compute resource " | ||
+ "has an IAM anomalous grant") | ||
.setFilter(filter) | ||
.setDataset(String.format("%s/datasets/%s", parent, bigQueryDatasetId)) | ||
.build(); | ||
|
||
CreateBigQueryExportRequest bigQueryExportRequest = | ||
CreateBigQueryExportRequest.newBuilder() | ||
.setParent(parent) | ||
.setBigQueryExport(bigQueryExport) | ||
.setBigQueryExportId(bigQueryExportId) | ||
.build(); | ||
|
||
// Create the export request. | ||
BigQueryExport response = client.createBigQueryExport(bigQueryExportRequest); | ||
|
||
System.out.printf("BigQuery export request created successfully: %s\n", response.getName()); | ||
} | ||
} | ||
} | ||
// [END securitycenter_create_bigquery_export] |
60 changes: 60 additions & 0 deletions
60
...om/google/cloud/examples/securitycenter/snippets/bigqueryexport/DeleteBigQueryExport.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
/* | ||
* Copyright 2022 Google LLC | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
package com.google.cloud.examples.securitycenter.snippets.bigqueryexport; | ||
|
||
// [START securitycenter_delete_bigquery_export] | ||
|
||
import com.google.cloud.securitycenter.v1.DeleteBigQueryExportRequest; | ||
import com.google.cloud.securitycenter.v1.SecurityCenterClient; | ||
import java.io.IOException; | ||
|
||
public class DeleteBigQueryExport { | ||
|
||
public static void main(String[] args) throws IOException { | ||
// TODO(Developer): Modify the following variable values. | ||
|
||
// parent: Use any one of the following resource paths: | ||
// - organizations/{organization_id} | ||
// - folders/{folder_id} | ||
// - projects/{project_id} | ||
String parent = String.format("projects/%s", "your-google-cloud-project-id"); | ||
|
||
// bigQueryExportId: Unique identifier that is used to identify the export. | ||
String bigQueryExportId = "export-id"; | ||
|
||
deleteBigQueryExport(parent, bigQueryExportId); | ||
} | ||
|
||
// Delete an existing BigQuery export. | ||
public static void deleteBigQueryExport(String parent, String bigQueryExportId) | ||
throws IOException { | ||
// Initialize client that will be used to send requests. This client only needs to be created | ||
// once, and can be reused for multiple requests. After completing all of your requests, call | ||
// the "close" method on the client to safely clean up any remaining background resources. | ||
try (SecurityCenterClient client = SecurityCenterClient.create()) { | ||
|
||
DeleteBigQueryExportRequest bigQueryExportRequest = | ||
DeleteBigQueryExportRequest.newBuilder() | ||
.setName(String.format("%s/bigQueryExports/%s", parent, bigQueryExportId)) | ||
.build(); | ||
|
||
client.deleteBigQueryExport(bigQueryExportRequest); | ||
System.out.printf("BigQuery export request deleted successfully: %s", bigQueryExportId); | ||
} | ||
} | ||
} | ||
// [END securitycenter_delete_bigquery_export] |
60 changes: 60 additions & 0 deletions
60
...a/com/google/cloud/examples/securitycenter/snippets/bigqueryexport/GetBigQueryExport.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
/* | ||
* Copyright 2022 Google LLC | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
package com.google.cloud.examples.securitycenter.snippets.bigqueryexport; | ||
|
||
// [START securitycenter_get_bigquery_export] | ||
|
||
import com.google.cloud.securitycenter.v1.BigQueryExport; | ||
import com.google.cloud.securitycenter.v1.GetBigQueryExportRequest; | ||
import com.google.cloud.securitycenter.v1.SecurityCenterClient; | ||
import java.io.IOException; | ||
|
||
public class GetBigQueryExport { | ||
|
||
public static void main(String[] args) throws IOException { | ||
// TODO(Developer): Modify the following variable values. | ||
|
||
// parent: Use any one of the following resource paths: | ||
// - organizations/{organization_id} | ||
// - folders/{folder_id} | ||
// - projects/{project_id} | ||
String parent = String.format("projects/%s", "your-google-cloud-project-id"); | ||
|
||
// bigQueryExportId: Unique identifier that is used to identify the export. | ||
String bigQueryExportId = "export-id"; | ||
|
||
getBigQueryExport(parent, bigQueryExportId); | ||
} | ||
|
||
// Retrieve an existing BigQuery export. | ||
public static void getBigQueryExport(String parent, String bigQueryExportId) throws IOException { | ||
// Initialize client that will be used to send requests. This client only needs to be created | ||
// once, and can be reused for multiple requests. After completing all of your requests, call | ||
// the "close" method on the client to safely clean up any remaining background resources. | ||
try (SecurityCenterClient client = SecurityCenterClient.create()) { | ||
|
||
GetBigQueryExportRequest bigQueryExportRequest = | ||
GetBigQueryExportRequest.newBuilder() | ||
.setName(String.format("%s/bigQueryExports/%s", parent, bigQueryExportId)) | ||
.build(); | ||
|
||
BigQueryExport response = client.getBigQueryExport(bigQueryExportRequest); | ||
System.out.printf("Retrieved the BigQuery export: %s", response.getName()); | ||
} | ||
} | ||
} | ||
// [END securitycenter_get_bigquery_export] |
61 changes: 61 additions & 0 deletions
61
...com/google/cloud/examples/securitycenter/snippets/bigqueryexport/ListBigQueryExports.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
/* | ||
* Copyright 2022 Google LLC | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
package com.google.cloud.examples.securitycenter.snippets.bigqueryexport; | ||
|
||
// [START securitycenter_list_bigquery_export] | ||
|
||
import com.google.cloud.securitycenter.v1.BigQueryExport; | ||
import com.google.cloud.securitycenter.v1.ListBigQueryExportsRequest; | ||
import com.google.cloud.securitycenter.v1.SecurityCenterClient; | ||
import com.google.cloud.securitycenter.v1.SecurityCenterClient.ListBigQueryExportsPagedResponse; | ||
import java.io.IOException; | ||
|
||
public class ListBigQueryExports { | ||
|
||
public static void main(String[] args) throws IOException { | ||
// TODO(Developer): Modify the following variable values. | ||
|
||
// parent: The parent, which owns the collection of BigQuery exports. | ||
// Use any one of the following resource paths: | ||
// - organizations/{organization_id} | ||
// - folders/{folder_id} | ||
// - projects/{project_id} | ||
String parent = String.format("projects/%s", "your-google-cloud-project-id"); | ||
|
||
listBigQueryExports(parent); | ||
} | ||
|
||
// List BigQuery exports in the given parent. | ||
public static void listBigQueryExports(String parent) throws IOException { | ||
// Initialize client that will be used to send requests. This client only needs to be created | ||
// once, and can be reused for multiple requests. After completing all of your requests, call | ||
// the "close" method on the client to safely clean up any remaining background resources. | ||
try (SecurityCenterClient client = SecurityCenterClient.create()) { | ||
|
||
ListBigQueryExportsRequest request = | ||
ListBigQueryExportsRequest.newBuilder().setParent(parent).build(); | ||
|
||
ListBigQueryExportsPagedResponse response = client.listBigQueryExports(request); | ||
|
||
System.out.println("Listing BigQuery exports:"); | ||
for (BigQueryExport bigQueryExport : response.iterateAll()) { | ||
System.out.println(bigQueryExport.getName()); | ||
} | ||
} | ||
} | ||
} | ||
// [END securitycenter_list_bigquery_export] |
Oops, something went wrong.