Demonstrates how to bulk-mute existing findings based on filters you specify.
Code sample
Go
To authenticate to Security Command Center, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .
import
(
"context"
"fmt"
"io"
securitycenter
"cloud.google.com/go/securitycenter/apiv1"
"cloud.google.com/go/securitycenter/apiv1/securitycenterpb"
)
// bulkMute kicks off a long-running operation (LRO) to bulk mute findings for a parent based on a filter.
// The parent can be either an organization, folder, or project. The findings
// matched by the filter will be muted after the LRO is done.
func
bulkMute
(
w
io
.
Writer
,
parent
string
,
muteRule
string
)
error
{
// parent: Use any one of the following options:
// - organizations/{organization_id}
// - folders/{folder_id}
// - projects/{project_id}
// parent := fmt.Sprintf("projects/%s", "your-google-cloud-project-id")
// muteRule: Expression that identifies findings that should be muted.
// To create mute rules, see:
// https://cloud.google.com/security-command-center/docs/how-to-mute-findings#create_mute_rules
// muteRule := "filter-condition"
ctx
:=
context
.
Background
()
client
,
err
:=
securitycenter
.
NewClient
(
ctx
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"securitycenter.NewClient: %w"
,
err
)
}
defer
client
.
Close
()
req
:=
& securitycenterpb
.
BulkMuteFindingsRequest
{
Parent
:
parent
,
Filter
:
muteRule
,
}
op
,
err
:=
client
.
BulkMuteFindings
(
ctx
,
req
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"failed to bulk mute findings: %w"
,
err
)
}
response
,
err
:=
op
.
Wait
(
ctx
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"failed to bulk mute findings: %w"
,
err
)
}
fmt
.
Fprintf
(
w
,
"Bulk mute findings completed successfully! %s"
,
response
)
return
nil
}
Java
To authenticate to Security Command Center, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .
import
com.google.cloud.securitycenter.v1. BulkMuteFindingsRequest
;
import
com.google.cloud.securitycenter.v1. BulkMuteFindingsResponse
;
import
com.google.cloud.securitycenter.v1. SecurityCenterClient
;
import
java.io.IOException
;
import
java.util.concurrent.ExecutionException
;
public
class
BulkMuteFindings
{
public
static
void
main
(
String
[]
args
)
{
// TODO: Replace the variables within {}
// parentPath: Use any one of the following options:
// - organizations/{organization_id}
// - folders/{folder_id}
// - projects/{project_id}
String
parentPath
=
String
.
format
(
"projects/%s"
,
"your-google-cloud-project-id"
);
// muteRule: Expression that identifies findings that should be muted.
// eg: "resource.project_display_name=\"PROJECT_ID\""
String
muteRule
=
"{filter-condition}"
;
bulkMute
(
parentPath
,
muteRule
);
}
// Kicks off a long-running operation (LRO) to bulk mute findings for a parent based on a filter.
// The parent can be either an organization, folder, or project. The findings
// matched by the filter will be muted after the LRO is done.
public
static
void
bulkMute
(
String
parentPath
,
String
muteRule
)
{
// 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
())
{
BulkMuteFindingsRequest
bulkMuteFindingsRequest
=
BulkMuteFindingsRequest
.
newBuilder
()
.
setParent
(
parentPath
)
// To create mute rules, see:
// https://cloud.google.com/security-command-center/docs/how-to-mute-findings#create_mute_rules
.
setFilter
(
muteRule
)
.
build
();
// ExecutionException is thrown if the below call fails.
BulkMuteFindingsResponse
response
=
client
.
bulkMuteFindingsAsync
(
bulkMuteFindingsRequest
).
get
();
System
.
out
.
println
(
"Bulk mute findings completed successfully! "
+
response
);
}
catch
(
IOException
|
InterruptedException
|
ExecutionException
e
)
{
System
.
out
.
println
(
"Bulk mute findings failed! \n Exception: "
+
e
);
}
}
}
Python
To authenticate to Security Command Center, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .
def
bulk_mute_findings
(
parent_path
:
str
,
mute_rule
:
str
)
-
> None
:
"""
Kicks off a long-running operation (LRO) to bulk mute findings for a parent based on a filter.
The parent can be either an organization, folder, or project. The findings
matched by the filter will be muted after the LRO is done.
Args:
parent_path: use any one of the following options:
- organizations/{organization}
- folders/{folder}
- projects/{project}
mute_rule: Expression that identifies findings that should be updated.
"""
from
google.cloud
import
securitycenter
client
=
securitycenter
.
SecurityCenterClient
()
request
=
securitycenter
.
BulkMuteFindingsRequest
()
request
.
parent
=
parent_path
# To create mute rules, see:
# https://cloud.google.com/security-command-center/docs/how-to-mute-findings#create_mute_rules
request
.
filter
=
mute_rule
response
=
client
.
bulk_mute_findings
(
request
)
print
(
f
"Bulk mute findings completed successfully! :
{
response
}
"
)
What's next
To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .