Stay organized with collections
Save and categorize content based on your preferences.
This page explains how to migrate your existing static mute rules to dynamic
mute rules.
We recommend using dynamic mute rules exclusively in your mute rule
configurations because they are more flexible than static mute rules. Compared
to static mute rules, dynamic mute rules have three key benefits:
Dynamic mute rules apply to existing and new findings. Dynamic mute rules
automatically mute both existing and new or updated findings that match your
filter criteria.
Dynamic mute rules offer an expiration option. Dynamic mute rules also
allow you to set a custom expiration period to temporarily match specific
findings. If no expiration period is set, dynamic mute rules mute findings
indefinitely until they no longer match the rule.
Dynamic mute rules automatically unmute findings. When any of the
following occurs, Security Command Center automatically unmutes the finding:
The dynamic mute rule expires.
The properties of a finding change to no longer match your filter criteria.
The filter criteria change to no longer match the finding.
We don't recommend using static and dynamic mute rules simultaneously. Static
mute rules override dynamic mute rules when they are applied to the same
finding. As a result, dynamic mute rules won't work as intended, which can
create confusion when managing your findings.
If you want to use dynamic mute rules exclusively, the following sections
describe the permissions and steps necessary migrate your static mute rules.
Permissions
To get the permissions that
you need to perform the dynamic mute migration process,
ask your administrator to grant you the
following IAM roles on your Google Cloud organization, folder, or project:
To use dynamic mute rules exclusively, complete the following steps to create
dynamic mute rules and ensure existing muted findings remain muted after
migration.
Create new dynamic mute rules. You can't modify a mute rule's type after
it has been created. Therefore, you must create one dynamic mute rule for
each static mute rule you want to retain. Each new dynamic mute rule name
must be unique from the existing mute rules. Security Command Center might take a
few hours to apply the dynamic mute rules to the appropriate findings. For
instructions on how to create a dynamic mute rule, see Create a mute
rule.
Validate the mute state of applicable findings. To validate that the
dynamic mute rules have been applied appropriately, you can use the
muteInfo attribute in the Security Command Center API to list the applicable
findings and inspect their mute fields. This helps you to determine whether
the applicable findings are using dynamic or static mute rules.
For example, use muteInfo.dynamicMuteRecords in a query to list the
applicable findings that are being muted by the new dynamic mute rule:
Delete all static mute rules. Applicable future findings are covered by
the new dynamic rules you created. Delete all your existing static mute rules
to ensure they won't override the new dynamic mute rules for new findings.
For instructions on how to delete a mute rule, see Delete mute
rules.
Deleting static mute rules does not change the static mute state of existing
findings.
Reset the static mute state on all findings. To reset the
static mute state of existing findings in bulk, perform one of the following
actions:
Use either the gcloud scc findings
bulk-mute command or the
bulkMute API method with the muteState attribute set to UNDEFINED. Do
this for each static mute rule that you deleted. For instructions on how to
perform bulk mute operations, see Mute or reset multiple existing findings.
If the bulk mute operation times out, you can clear the static mute
state from all findings by updating your bulk mute filter to use less
granular filters that cover all the relevant findings you need to update.
Consider the following example of a filter in a static mute rule:
filter: "category = \"OPEN_SSH_PORT\" AND
(resource.parentDisplayName = \"organizations/123\"
OR resource.parentDisplayName = \"folder/456")"
To clear the mute state on all findings that match the criteria of this
static mute rule filter, you can modify the filter by removing the
additional conditions that follow the finding category. For this example,
the result would be as follows:
filter: "category = \"OPEN_SSH_PORT""
If you have manually set the mute state for any findings, this method
might also reset the mute state of those findings.
For more information on updating a mute rule, see Update mute
rules.
If you need help migrating your static mute rules to dynamic mute rules, contact
support.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Migrate from static to dynamic mute rules\n\n| Standard, Premium, and Enterprise [service tiers](/security-command-center/docs/service-tiers)\n\nThis page explains how to migrate your existing static mute rules to dynamic\nmute rules.\n\nWe recommend using dynamic mute rules exclusively in your mute rule\nconfigurations because they are more flexible than static mute rules. Compared\nto static mute rules, dynamic mute rules have three key benefits:\n\n- **Dynamic mute rules apply to existing and new findings**. Dynamic mute rules automatically mute both existing and new or updated findings that match your filter criteria.\n- **Dynamic mute rules offer an expiration option**. Dynamic mute rules also allow you to set a custom expiration period to temporarily match specific findings. If no expiration period is set, dynamic mute rules mute findings indefinitely until they no longer match the rule.\n- **Dynamic mute rules automatically unmute findings**. When any of the\n following occurs, Security Command Center automatically unmutes the finding:\n\n - The dynamic mute rule expires.\n - The properties of a finding change to no longer match your filter criteria.\n - The filter criteria change to no longer match the finding.\n\nWe don't recommend using static and dynamic mute rules simultaneously. Static\nmute rules override dynamic mute rules when they are applied to the same\nfinding. As a result, dynamic mute rules won't work as intended, which can\ncreate confusion when managing your findings.\n\nIf you want to use dynamic mute rules exclusively, the following sections\ndescribe the permissions and steps necessary migrate your static mute rules.\n\nPermissions\n-----------\n\n\nTo get the permissions that\nyou need to perform the dynamic mute migration process,\n\nask your administrator to grant you the\nfollowing IAM roles on your Google Cloud organization, folder, or project:\n\n- [Security Center Admin Viewer](/iam/docs/roles-permissions/securitycenter#securitycenter.adminViewer) (`roles/securitycenter.adminViewer`)\n- [Security Center Settings Viewer](/iam/docs/roles-permissions/securitycenter#securitycenter.settingsViewer) (`roles/securitycenter.settingsViewer`)\n- [SecurityCenter Mute Configurations Viewer](/iam/docs/roles-permissions/securitycenter#securitycenter.muteConfigsViewer) (`roles/securitycenter.muteConfigsViewer`)\n- [Security Center Admin](/iam/docs/roles-permissions/securitycenter#securitycenter.admin) (`roles/securitycenter.admin`)\n- [Security Center AdminEditor](/iam/docs/roles-permissions/securitycenter#securitycenter.adminEditor) (`roles/securitycenter.adminEditor`)\n- Security Center Settings Editor(`roles/securitycenter.settingsEditor`)\n- [Security Center Mute ConfigurationsEditor](/iam/docs/roles-permissions/securitycenter#securitycenter.muteConfigsEditor) (`roles/securitycenter.muteConfigsEditor`)\n- [Security Center FindingsEditor](/iam/docs/roles-permissions/securitycenter#securitycenter.findingsEditor) (`roles/securitycenter.findingsEditor`)\n\n\nFor more information about granting roles, see [Manage access to projects, folders, and organizations](/iam/docs/granting-changing-revoking-access).\n\n\nYou might also be able to get\nthe required permissions through [custom\nroles](/iam/docs/creating-custom-roles) or other [predefined\nroles](/iam/docs/roles-overview#predefined).\n\nMigrate to dynamic mute rules\n-----------------------------\n\nTo use dynamic mute rules exclusively, complete the following steps to create\ndynamic mute rules and ensure existing muted findings remain muted after\nmigration.\n\n1. **Create new dynamic mute rules** . You can't modify a mute rule's type after it has been created. Therefore, you must create one dynamic mute rule for each static mute rule you want to retain. Each new dynamic mute rule name must be unique from the existing mute rules. Security Command Center might take a few hours to apply the dynamic mute rules to the appropriate findings. For instructions on how to create a dynamic mute rule, see [Create a mute\n rule](/security-command-center/docs/how-to-mute-findings#create_a_mute_rule).\n2. **Validate the mute state of applicable findings** . To validate that the\n dynamic mute rules have been applied appropriately, you can use the\n `muteInfo` attribute in the Security Command Center API to list the applicable\n findings and inspect their mute fields. This helps you to determine whether\n the applicable findings are using dynamic or static mute rules.\n\n For example, use `muteInfo.dynamicMuteRecords` in a query to list the\n applicable findings that are being muted by the new dynamic mute rule: \n\n contains(muteInfo.dynamicMuteRecords, muteConfig =\n \"organizations/123/muteConfigs/my-dynamic-rule\")\n\n For more information on how to list\n findings, see [Listing security findings using the Security Command Center\n API](/security-command-center/docs/how-to-api-list-findings).\n3. **Delete all static mute rules** . Applicable future findings are covered by\n the new dynamic rules you created. Delete all your existing static mute rules\n to ensure they won't override the new dynamic mute rules for new findings.\n For instructions on how to delete a mute rule, see [Delete mute\n rules](/security-command-center/docs/how-to-mute-findings#delete_mute_rules).\n Deleting static mute rules does not change the static mute state of existing\n findings.\n\n4. **Reset the static mute state on all findings**. To reset the\n static mute state of existing findings in bulk, perform one of the following\n actions:\n\n - Use either the [`gcloud scc findings\n bulk-mute`](/sdk/gcloud/reference/scc/findings/bulk-mute) command or the\n `bulkMute` API method with the `muteState` attribute set to `UNDEFINED`. Do\n this for each static mute rule that you deleted. For instructions on how to\n perform bulk mute operations, see [Mute or reset multiple existing findings](/security-command-center/docs/how-to-mute-findings#bulk_mute_findings).\n\n - If the bulk mute operation times out, you can clear the static mute\n state from all findings by updating your bulk mute filter to use less\n granular filters that cover all the relevant findings you need to update.\n\n Consider the following example of a filter in a static mute rule: \n\n filter: \"category = \\\"OPEN_SSH_PORT\\\" AND\n (resource.parentDisplayName = \\\"organizations/123\\\"\n OR resource.parentDisplayName = \\\"folder/456\")\"\n\n To clear the mute state on all findings that match the criteria of this\n static mute rule filter, you can modify the filter by removing the\n additional conditions that follow the finding category. For this example,\n the result would be as follows: \n\n filter: \"category = \\\"OPEN_SSH_PORT\"\"\n\n If you have manually set the mute state for any findings, this method\n might also reset the mute state of those findings.\n\n For more information on updating a mute rule, see [Update mute\n rules](/security-command-center/docs/how-to-mute-findings#update_mute_rules).\n\nIf you need help migrating your static mute rules to dynamic mute rules, contact\n[support](/security-command-center/docs/getting-support).\n\nWhat's next\n-----------\n\nLearn more about [creating and managing mute rules](/security-command-center/docs/how-to-mute-findings#create_mute_rules)."]]