Policy types for @turbot/azure-mysql

Azure > MySQL > Approved Regions [Default]

A list of Azure regions in which Azure MySQL resources are approved for use.

The expected format is an array of regions names. You may use the '*' and
'?' wildcard characters.

This policy is the default value for all Azure MySQL resources' Approved > Regions policies.

URI
tmod:@turbot/azure-mysql#/policy/types/mySqlApprovedRegionsDefault
Default Template Input
"{\n regions: policyValue(uri:\"tmod:@turbot/azure#/policy/types/approvedRegionsDefault\") {\n value\n }\n}\n"
Default Template
"{% if $.regions.value | length == 0 %} [] {% endif %}{% for item in $.regions.value %}- '{{ item }}'\n{% endfor %}"

Azure > MySQL > Enabled

Enable Azure MySQL service.

URI
tmod:@turbot/azure-mysql#/policy/types/mySqlEnabled
Valid Value
[
"Enabled",
"Enabled: Metadata Only",
"Disabled"
]
Schema
{
"type": "string",
"enum": [
"Enabled",
"Enabled: Metadata Only",
"Disabled"
],
"example": [
"Enabled"
],
"default": "Disabled"
}

Azure > MySQL > Flexible Server > Active

Determine the action to take when an Azure MySQL flexible server, based on the Azure > MySQL > Flexible Server > Active > * policies.

The control determines whether the resource is in active use, and if not,
has the ability to delete / cleanup the resource. When running an automated
compliance environment, it's common to end up with a wide range of alarms
that are difficult and time consuming to clear. The Active control brings
automated, well-defined control to this process.

The Active control checks the status of all defined Active policies for the
resource (Azure > MySQL > Flexible Server > Active > *), raises an alarm, and takes the defined enforcement
action. Each Active sub-policy can calculate a status of active, inactive
or skipped. Generally, if the resource appears to be Active for any reason
it will be considered Active.

Note: In contrast with Approved, where if the
resource appears to be Unapproved for any reason it will be considered
Unapproved.

See Active for more information.

URI
tmod:@turbot/azure-mysql#/policy/types/flexibleServerActive
Valid Value
[
"Skip",
"Check: Active",
"Enforce: Delete inactive with 1 day warning",
"Enforce: Delete inactive with 3 days warning",
"Enforce: Delete inactive with 7 days warning",
"Enforce: Delete inactive with 14 days warning",
"Enforce: Delete inactive with 30 days warning",
"Enforce: Delete inactive with 60 days warning",
"Enforce: Delete inactive with 90 days warning",
"Enforce: Delete inactive with 180 days warning",
"Enforce: Delete inactive with 365 days warning"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Check: Active",
"Enforce: Delete inactive with 1 day warning",
"Enforce: Delete inactive with 3 days warning",
"Enforce: Delete inactive with 7 days warning",
"Enforce: Delete inactive with 14 days warning",
"Enforce: Delete inactive with 30 days warning",
"Enforce: Delete inactive with 60 days warning",
"Enforce: Delete inactive with 90 days warning",
"Enforce: Delete inactive with 180 days warning",
"Enforce: Delete inactive with 365 days warning"
],
"example": [
"Check: Active"
],
"default": "Skip"
}

Azure > MySQL > Flexible Server > Active > Age

The age after which the Azure MySQL flexible server
is no longer considered active. If a create time is unavailable, the time Guardrails discovered the resource is used.

The Active
control determines whether the resource is in active use, and if not, has
the ability to delete / cleanup the resource. When running an automated
compliance environment, it's common to end up with a wide range of alarms
that are difficult and time consuming to clear. The Active control brings
automated, well-defined control to this process.

The Active control checks the status of all defined Active policies for the
resource (Azure > MySQL > Flexible Server > Active > *),
raises an alarm, and takes the defined enforcement action. Each Active
sub-policy can calculate a status of active, inactive or skipped. Generally,
if the resource appears to be Active for any reason it will be considered Active.

Note In contrast with Approved, where if the resource appears to be Unapproved
for any reason it will be considered Unapproved.

See Active for more information.

URI
tmod:@turbot/azure-mysql#/policy/types/flexibleServerActiveAge
Valid Value
[
"Skip",
"Force inactive if age > 1 day",
"Force inactive if age > 3 days",
"Force inactive if age > 7 days",
"Force inactive if age > 14 days",
"Force inactive if age > 30 days",
"Force inactive if age > 60 days",
"Force inactive if age > 90 days",
"Force inactive if age > 180 days",
"Force inactive if age > 365 days"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Force inactive if age > 1 day",
"Force inactive if age > 3 days",
"Force inactive if age > 7 days",
"Force inactive if age > 14 days",
"Force inactive if age > 30 days",
"Force inactive if age > 60 days",
"Force inactive if age > 90 days",
"Force inactive if age > 180 days",
"Force inactive if age > 365 days"
],
"example": [
"Force inactive if age > 90 days"
],
"default": "Skip"
}

Azure > MySQL > Flexible Server > Active > Last Modified

The number of days since the Azure MySQL flexible server was last modified before it is considered
inactive.

The Active
control determines whether the resource is in active use, and if not, has
the ability to delete / cleanup the resource. When running an automated
compliance environment, it's common to end up with a wide range of alarms
that are difficult and time consuming to clear. The Active control brings
automated, well-defined control to this process.

The Active control checks the status of all defined Active policies for the
resource (Azure > MySQL > Flexible Server > Active > *), raises an alarm, and takes the defined enforcement
action. Each Active sub-policy can calculate a status of active, inactive
or skipped. Generally, if the resource appears to be Active for any reason
it will be considered Active.

Note In contrast with Approved, where if the
resource appears to be Unapproved for any reason it will be considered
Unapproved.

URI
tmod:@turbot/azure-mysql#/policy/types/flexibleServerActiveLastModified
Valid Value
[
"Skip",
"Active if last modified <= 1 day",
"Active if last modified <= 3 days",
"Active if last modified <= 7 days",
"Active if last modified <= 14 days",
"Active if last modified <= 30 days",
"Active if last modified <= 60 days",
"Active if last modified <= 90 days",
"Active if last modified <= 180 days",
"Active if last modified <= 365 days",
"Force active if last modified <= 1 day",
"Force active if last modified <= 3 days",
"Force active if last modified <= 7 days",
"Force active if last modified <= 14 days",
"Force active if last modified <= 30 days",
"Force active if last modified <= 60 days",
"Force active if last modified <= 90 days",
"Force active if last modified <= 180 days",
"Force active if last modified <= 365 days"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Active if last modified <= 1 day",
"Active if last modified <= 3 days",
"Active if last modified <= 7 days",
"Active if last modified <= 14 days",
"Active if last modified <= 30 days",
"Active if last modified <= 60 days",
"Active if last modified <= 90 days",
"Active if last modified <= 180 days",
"Active if last modified <= 365 days",
"Force active if last modified <= 1 day",
"Force active if last modified <= 3 days",
"Force active if last modified <= 7 days",
"Force active if last modified <= 14 days",
"Force active if last modified <= 30 days",
"Force active if last modified <= 60 days",
"Force active if last modified <= 90 days",
"Force active if last modified <= 180 days",
"Force active if last modified <= 365 days"
],
"example": [
"Active if last modified <= 90 days"
],
"default": "Skip"
}

Azure > MySQL > Flexible Server > Approved

Determine the action to take when an Azure MySQL flexible server is not approved based on Azure > MySQL > Flexible Server > Approved > * policies.

The Approved control checks the status of the defined Approved sub-policies for the resource. If the resource is not approved according to any of these policies, this control raises an alarm and takes the defined enforcement action.

For any enforcement actions that specify if new, e.g., Enforce: Delete unapproved if new, this control will only take the enforcement actions for resources created within the last 60 minutes.

See Approved for more information.

URI
tmod:@turbot/azure-mysql#/policy/types/flexibleServerApproved
Valid Value
[
"Skip",
"Check: Approved",
"Enforce: Delete unapproved if new"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Check: Approved",
"Enforce: Delete unapproved if new"
],
"example": [
"Check: Approved"
],
"default": "Skip"
}

Azure > MySQL > Flexible Server > Approved > Custom

Determine whether the Azure MySQL flexible server is allowed to exist.
This policy will be evaluated by the Approved control. If an Azure MySQL flexible server is not approved, it will be subject to the action specified in the Azure > MySQL > Flexible Server > Approved policy.
See Approved for more information.

Note: The policy value must be a string with a value of Approved, Not approved or Skip, or in the form of YAML objects. The object(s) must contain the key result with its value as Approved or Not approved. A custom title and message can also be added using the keys title and message respectively.

URI
tmod:@turbot/azure-mysql#/policy/types/flexibleServerApprovedCustom
Schema
{
"example": [
"Approved",
"Not approved",
"Skip",
{
"result": "Approved"
},
{
"title": "string",
"result": "Not approved"
},
{
"title": "string",
"result": "Approved",
"message": "string"
},
[
{
"title": "string",
"result": "Approved",
"message": "string"
},
{
"title": "string",
"result": "Not approved",
"message": "string"
}
]
],
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"pattern": "^[\\W\\w]{1,32}$"
},
"message": {
"type": "string",
"pattern": "^[\\W\\w]{1,128}$"
},
"result": {
"type": "string",
"pattern": "^(Approved|Not approved|Skip)$"
}
},
"required": [
"result"
],
"additionalProperties": false
}
},
{
"type": "object",
"properties": {
"title": {
"type": "string",
"pattern": "^[\\W\\w]{1,32}$"
},
"message": {
"type": "string",
"pattern": "^[\\W\\w]{1,128}$"
},
"result": {
"type": "string",
"pattern": "^(Approved|Not approved|Skip)$"
}
},
"required": [
"result"
],
"additionalProperties": false
},
{
"type": "string",
"pattern": "^(Approved|Not approved|Skip)$"
}
],
"default": "Skip"
}

Azure > MySQL > Flexible Server > Approved > Regions

A list of Azure regions in which Azure MySQL flexible servers are approved for use.

The expected format is an array of regions names. You may use the '*' and '?' wildcard characters.

This policy will be evaluated by the Approved control. If an Azure MySQL flexible server is created in a region that is not in the approved list, it will be subject to the action specified in the Azure > MySQL > Flexible Server > Approved policy.

See Approved for more information.

URI
tmod:@turbot/azure-mysql#/policy/types/flexibleServerApprovedRegions
Default Template Input
"{\n regions: policyValue(uri:\"tmod:@turbot/azure-mysql#/policy/types/mySqlApprovedRegionsDefault\") {\n value\n }\n}\n"
Default Template
"{% if $.regions.value | length == 0 %} [] {% endif %}{% for item in $.regions.value %}- &#39;{{ item }}&#39;&#92;n{% endfor %}"

Azure > MySQL > Flexible Server > Approved > Usage

Determine whether the Azure MySQL flexible server is allowed to exist.

This policy will be evaluated by the Approved control. If an Azure MySQL flexible server is not approved, it will be subject to the action specified in the Azure > MySQL > Flexible Server > Approved policy.

See Approved for more information.

URI
tmod:@turbot/azure-mysql#/policy/types/flexibleServerApprovedUsage
Valid Value
[
"Not approved",
"Approved",
"Approved if Azure > MySQL > Enabled"
]
Schema
{
"type": "string",
"enum": [
"Not approved",
"Approved",
"Approved if Azure > MySQL > Enabled"
],
"example": [
"Not approved"
],
"default": "Approved if Azure > MySQL > Enabled"
}

Azure > MySQL > Flexible Server > CMDB

Configure whether to record and synchronize details for the Azure MySQL flexible server into the CMDB.

The CMDB control is responsible for populating and updating all the attributes for that resource type in the Guardrails CMDB.
All policies and controls in Guardrails are based around the resource, so usually the CMDB policy is set to "Enforce: Enabled".

If set to Skip then all changes to the CMDB are paused - no new resources will be discovered, no updates will be made and deleted resources will not be removed.

To cleanup resources and stop tracking changes, set this policy to "Enforce: Disabled".

CMDB controls also use the Regions policy associated with the resource. If region is not in Azure > MySQL > Flexible Server > Regions policy, the CMDB control will delete the resource from the CMDB.

(Note: Setting CMDB to "Skip" will also pause these changes.)

URI
tmod:@turbot/azure-mysql#/policy/types/flexibleServerCmdb
Category
Valid Value
[
"Skip",
"Enforce: Enabled",
"Enforce: Enabled if DB for MySQL provider is Registered",
"Enforce: Disabled"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Enforce: Enabled",
"Enforce: Enabled if DB for MySQL provider is Registered",
"Enforce: Disabled"
],
"example": [
"Skip"
],
"default": "Enforce: Enabled if DB for MySQL provider is Registered"
}

Azure > MySQL > Flexible Server > Encryption in Transit

Define the Encryption in Transit settings required for Azure > MySQL > Flexible Server.

The Encryption in Transit control compares the Encryption in Transit settings against the Encryption in Transit policies for the resource (Azure > MySQL > Flexible Server > Encryption in Transit), raises an alarm, and takes the defined enforcement action.

URI
tmod:@turbot/azure-mysql#/policy/types/flexibleServerEncryptionInTransit
Valid Value
[
"Skip",
"Check: Enabled",
"Check: Disabled",
"Enforce: Enabled",
"Enforce: Disabled"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Check: Enabled",
"Check: Disabled",
"Enforce: Enabled",
"Enforce: Disabled"
],
"default": "Skip"
}

Azure > MySQL > Flexible Server > Minimum TLS Version

Define the Minimum TLS Version setting required for Azure > MySQL > Flexible Server.

URI
tmod:@turbot/azure-mysql#/policy/types/flexibleServerMinimumTlsVersion
Valid Value
[
"Skip",
"Check: TLS 1.2",
"Check: TLS 1.3",
"Check: TLS 1.2 and TLS 1.3",
"Enforce: TLS 1.2",
"Enforce: TLS 1.3",
"Enforce: TLS 1.2 and TLS 1.3"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Check: TLS 1.2",
"Check: TLS 1.3",
"Check: TLS 1.2 and TLS 1.3",
"Enforce: TLS 1.2",
"Enforce: TLS 1.3",
"Enforce: TLS 1.2 and TLS 1.3"
],
"default": "Skip"
}

Azure > MySQL > Flexible Server > Regions

A list of Azure regions in which Azure MySQL flexible servers are supported for use.

Any flexible servers in a region not listed here will not be recorded in CMDB.

The expected format is an array of regions names. You may use the '*' and
'?' wildcard characters.

URI
tmod:@turbot/azure-mysql#/policy/types/flexibleServerRegions
Default Template Input
"{\n regions: policyValue(uri:\"tmod:@turbot/azure-mysql#/policy/types/mySqlRegionsDefault\") {\n value\n }\n}\n"
Default Template
"{% if $.regions.value | length == 0 %} [] {% endif %}{% for item in $.regions.value %}- &#39;{{ item }}&#39;&#92;n{% endfor %}"

Azure > MySQL > Flexible Server > Tags

Determine the action to take when an Azure MySQL flexible server tags are not updated based on the Azure > MySQL > Flexible Server > Tags > * policies.

The control ensure Azure MySQL flexible server tags include tags defined in Azure > MySQL > Flexible Server > Tags > Template.

Tags not defined in Flexible Server Tags Template will not be modified or deleted. Setting a tag value to undefined will result in the tag being deleted.

See Tags for more information.

URI
tmod:@turbot/azure-mysql#/policy/types/flexibleServerTags
Valid Value
[
"Skip",
"Check: Tags are correct",
"Enforce: Set tags"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Check: Tags are correct",
"Enforce: Set tags"
],
"example": [
"Check: Tags are correct"
],
"default": "Skip"
}

Azure > MySQL > Flexible Server > Tags > Template

The template is used to generate the keys and values for Azure MySQL flexible server.

Tags not defined in Flexible Server Tags Template will not be modified or deleted. Setting a tag value to undefined will result in the tag being deleted.

See Tags for more information.

URI
tmod:@turbot/azure-mysql#/policy/types/flexibleServerTagsTemplate
Default Template Input
[
"{\n subscription {\n turbot {\n id\n }\n }\n}\n",
"{\n defaultTags: policyValue(uri:\"tmod:@turbot/azure-mysql#/policy/types/mySqlTagsTemplate\" resourceId: \"{{ $.subscription.turbot.id }}\") {\n value\n }\n}\n"
]
Default Template
"{%- if $.defaultTags.value | length == 0 %} [] {%- elif $.defaultTags.value != undefined %}{{ $.defaultTags.value | dump | safe }}{%- else %}{% for item in $.defaultTags.value %}- {{ item }}{% endfor %}{% endif %}"

Azure > MySQL > Permissions

Configure whether permissions policies are in effect for Azure MySQL
This setting does not affect Subscription level permissions (Azure/Admin, Azure/Owner, etc)

URI
tmod:@turbot/azure-mysql#/policy/types/mySqlPermissions
Valid Value
[
"Enabled",
"Disabled",
"Enabled if Azure > MySQL > Enabled"
]
Schema
{
"type": "string",
"enum": [
"Enabled",
"Disabled",
"Enabled if Azure > MySQL > Enabled"
],
"example": [
"Enabled"
],
"default": "Enabled if Azure > MySQL > Enabled"
}

Azure > MySQL > Permissions > Levels

Define the permissions levels that can be used to grant access to Storage an
Azure Subscription. Permissions levels defined will appear in the UI to assign
access to Guardrails users.

URI
tmod:@turbot/azure-mysql#/policy/types/mySqlPermissionsLevels
Default Template Input
[
"{\n item: subscription {\n turbot{\n id\n }\n }\n}\n",
"{\n availableLevels: policyValues(filter:\"policyTypeLevel:self resourceId:{{ $.item.turbot.id }} policyType:'tmod:@turbot/azure-iam#/policy/types/permissionsLevelsDefault'\") {\n items {\n value\n }\n }\n}\n"
]
Default Template
"{% if $.availableLevels.items[0].value | length == 0 %} [] {% endif %}{% for item in $.availableLevels.items[0].value %}- {{ item }}&#92;n{% endfor %}"
Schema
{
"type": "array",
"items": {
"type": "string",
"enum": [
"User",
"Metadata",
"ReadOnly",
"Operator",
"Admin",
"Owner"
]
}
}

Azure > MySQL > Permissions > Levels > Modifiers

A map of Azure API to Guardrails Permission Level used to customize Guardrails'
standard permissions. You can add, remove or redefine the mapping of
Azure API operations to Guardrails permissions levels here.

<br />example:<br /> - &quot;Microsoft.MySQL/MySQL/delete&quot;: operator<br /> - &quot;Microsoft.MySQL/MySQL/write&quot;: admin<br /> - &quot;Microsoft.MySQL/MySQL/read&quot;: readonly<br />

URI
tmod:@turbot/azure-mysql#/policy/types/mySqlPermissionsLevelsModifiers

Azure > MySQL > Regions

A list of Azure regions in which Azure MySQL resources are supported for use.

The expected format is an array of regions names. You may use the '*' and
'?' wildcard characters.

This policy is the default value for all Azure MySQL resources' Regions policies.

URI
tmod:@turbot/azure-mysql#/policy/types/mySqlRegionsDefault
Schema
{
"allOf": [
{
"$ref": "azure#/definitions/regionNameMatcherList"
},
{
"default": [
"australiacentral",
"australiacentral2",
"australiaeast",
"australiasoutheast",
"brazilsouth",
"canadacentral",
"canadaeast",
"centralindia",
"centralus",
"eastasia",
"eastus",
"eastus2",
"francecentral",
"germanywestcentral",
"japaneast",
"japanwest",
"koreacentral",
"koreasouth",
"northcentralus",
"northeurope",
"norwayeast",
"southafricanorth",
"southafricawest",
"southcentralus",
"southeastasia",
"southindia",
"switzerlandnorth",
"uaenorth",
"uksouth",
"ukwest",
"usgovarizona",
"usgovtexas",
"usgovvirginia",
"westcentralus",
"westeurope",
"westindia",
"westus",
"westus2"
]
}
]
}

Azure > MySQL > Server > Active

Determine the action to take when an Azure MySQL server, based on the Azure > MySQL > Server > Active > * policies.

The control determines whether the resource is in active use, and if not,
has the ability to delete / cleanup the resource. When running an automated
compliance environment, it's common to end up with a wide range of alarms
that are difficult and time consuming to clear. The Active control brings
automated, well-defined control to this process.

The Active control checks the status of all defined Active policies for the
resource (Azure > MySQL > Server > Active > *), raises an alarm, and takes the defined enforcement
action. Each Active sub-policy can calculate a status of active, inactive
or skipped. Generally, if the resource appears to be Active for any reason
it will be considered Active.

Note: In contrast with Approved, where if the
resource appears to be Unapproved for any reason it will be considered
Unapproved.

See Active for more information.

URI
tmod:@turbot/azure-mysql#/policy/types/serverActive
Valid Value
[
"Skip",
"Check: Active",
"Enforce: Delete inactive with 1 day warning",
"Enforce: Delete inactive with 3 days warning",
"Enforce: Delete inactive with 7 days warning",
"Enforce: Delete inactive with 14 days warning",
"Enforce: Delete inactive with 30 days warning",
"Enforce: Delete inactive with 60 days warning",
"Enforce: Delete inactive with 90 days warning",
"Enforce: Delete inactive with 180 days warning",
"Enforce: Delete inactive with 365 days warning"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Check: Active",
"Enforce: Delete inactive with 1 day warning",
"Enforce: Delete inactive with 3 days warning",
"Enforce: Delete inactive with 7 days warning",
"Enforce: Delete inactive with 14 days warning",
"Enforce: Delete inactive with 30 days warning",
"Enforce: Delete inactive with 60 days warning",
"Enforce: Delete inactive with 90 days warning",
"Enforce: Delete inactive with 180 days warning",
"Enforce: Delete inactive with 365 days warning"
],
"example": [
"Check: Active"
],
"default": "Skip"
}

Azure > MySQL > Server > Active > Age

The age after which the Azure MySQL server
is no longer considered active. If a create time is unavailable, the time Guardrails discovered the resource is used.

The Active
control determines whether the resource is in active use, and if not, has
the ability to delete / cleanup the resource. When running an automated
compliance environment, it's common to end up with a wide range of alarms
that are difficult and time consuming to clear. The Active control brings
automated, well-defined control to this process.

The Active control checks the status of all defined Active policies for the
resource (Azure > MySQL > Server > Active > *),
raises an alarm, and takes the defined enforcement action. Each Active
sub-policy can calculate a status of active, inactive or skipped. Generally,
if the resource appears to be Active for any reason it will be considered Active.

Note In contrast with Approved, where if the resource appears to be Unapproved
for any reason it will be considered Unapproved.

See Active for more information.

URI
tmod:@turbot/azure-mysql#/policy/types/serverActiveAge
Valid Value
[
"Skip",
"Force inactive if age > 1 day",
"Force inactive if age > 3 days",
"Force inactive if age > 7 days",
"Force inactive if age > 14 days",
"Force inactive if age > 30 days",
"Force inactive if age > 60 days",
"Force inactive if age > 90 days",
"Force inactive if age > 180 days",
"Force inactive if age > 365 days"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Force inactive if age > 1 day",
"Force inactive if age > 3 days",
"Force inactive if age > 7 days",
"Force inactive if age > 14 days",
"Force inactive if age > 30 days",
"Force inactive if age > 60 days",
"Force inactive if age > 90 days",
"Force inactive if age > 180 days",
"Force inactive if age > 365 days"
],
"example": [
"Force inactive if age > 90 days"
],
"default": "Skip"
}

Azure > MySQL > Server > Active > Last Modified

The number of days since the Azure MySQL server was last modified before it is considered
inactive.

The Active
control determines whether the resource is in active use, and if not, has
the ability to delete / cleanup the resource. When running an automated
compliance environment, it's common to end up with a wide range of alarms
that are difficult and time consuming to clear. The Active control brings
automated, well-defined control to this process.

The Active control checks the status of all defined Active policies for the
resource (Azure > MySQL > Server > Active > *), raises an alarm, and takes the defined enforcement
action. Each Active sub-policy can calculate a status of active, inactive
or skipped. Generally, if the resource appears to be Active for any reason
it will be considered Active.

Note In contrast with Approved, where if the
resource appears to be Unapproved for any reason it will be considered
Unapproved.

URI
tmod:@turbot/azure-mysql#/policy/types/serverActiveLastModified
Valid Value
[
"Skip",
"Active if last modified <= 1 day",
"Active if last modified <= 3 days",
"Active if last modified <= 7 days",
"Active if last modified <= 14 days",
"Active if last modified <= 30 days",
"Active if last modified <= 60 days",
"Active if last modified <= 90 days",
"Active if last modified <= 180 days",
"Active if last modified <= 365 days",
"Force active if last modified <= 1 day",
"Force active if last modified <= 3 days",
"Force active if last modified <= 7 days",
"Force active if last modified <= 14 days",
"Force active if last modified <= 30 days",
"Force active if last modified <= 60 days",
"Force active if last modified <= 90 days",
"Force active if last modified <= 180 days",
"Force active if last modified <= 365 days"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Active if last modified <= 1 day",
"Active if last modified <= 3 days",
"Active if last modified <= 7 days",
"Active if last modified <= 14 days",
"Active if last modified <= 30 days",
"Active if last modified <= 60 days",
"Active if last modified <= 90 days",
"Active if last modified <= 180 days",
"Active if last modified <= 365 days",
"Force active if last modified <= 1 day",
"Force active if last modified <= 3 days",
"Force active if last modified <= 7 days",
"Force active if last modified <= 14 days",
"Force active if last modified <= 30 days",
"Force active if last modified <= 60 days",
"Force active if last modified <= 90 days",
"Force active if last modified <= 180 days",
"Force active if last modified <= 365 days"
],
"example": [
"Active if last modified <= 90 days"
],
"default": "Skip"
}

Azure > MySQL > Server > Approved

Determine the action to take when an Azure MySQL server is not approved based on Azure > MySQL > Server > Approved > * policies.

The Approved control checks the status of the defined Approved sub-policies for the resource. If the resource is not approved according to any of these policies, this control raises an alarm and takes the defined enforcement action.

For any enforcement actions that specify if new, e.g., Enforce: Delete unapproved if new, this control will only take the enforcement actions for resources created within the last 60 minutes.

See Approved for more information.

URI
tmod:@turbot/azure-mysql#/policy/types/serverApproved
Valid Value
[
"Skip",
"Check: Approved",
"Enforce: Delete unapproved if new"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Check: Approved",
"Enforce: Delete unapproved if new"
],
"example": [
"Check: Approved"
],
"default": "Skip"
}

Azure > MySQL > Server > Approved > Custom

Determine whether the Azure MySQL server is allowed to exist.
This policy will be evaluated by the Approved control. If an Azure MySQL server is not approved, it will be subject to the action specified in the Azure > MySQL > Server > Approved policy.
See Approved for more information.

Note: The policy value must be a string with a value of Approved, Not approved or Skip, or in the form of YAML objects. The object(s) must contain the key result with its value as Approved or Not approved. A custom title and message can also be added using the keys title and message respectively.

URI
tmod:@turbot/azure-mysql#/policy/types/serverApprovedCustom
Schema
{
"example": [
"Approved",
"Not approved",
"Skip",
{
"result": "Approved"
},
{
"title": "string",
"result": "Not approved"
},
{
"title": "string",
"result": "Approved",
"message": "string"
},
[
{
"title": "string",
"result": "Approved",
"message": "string"
},
{
"title": "string",
"result": "Not approved",
"message": "string"
}
]
],
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"pattern": "^[\\W\\w]{1,32}$"
},
"message": {
"type": "string",
"pattern": "^[\\W\\w]{1,128}$"
},
"result": {
"type": "string",
"pattern": "^(Approved|Not approved|Skip)$"
}
},
"required": [
"result"
],
"additionalProperties": false
}
},
{
"type": "object",
"properties": {
"title": {
"type": "string",
"pattern": "^[\\W\\w]{1,32}$"
},
"message": {
"type": "string",
"pattern": "^[\\W\\w]{1,128}$"
},
"result": {
"type": "string",
"pattern": "^(Approved|Not approved|Skip)$"
}
},
"required": [
"result"
],
"additionalProperties": false
},
{
"type": "string",
"pattern": "^(Approved|Not approved|Skip)$"
}
],
"default": "Skip"
}

Azure > MySQL > Server > Approved > Regions

A list of Azure regions in which Azure MySQL servers are approved for use.

The expected format is an array of regions names. You may use the '*' and '?' wildcard characters.

This policy will be evaluated by the Approved control. If an Azure MySQL server is created in a region that is not in the approved list, it will be subject to the action specified in the Azure > MySQL > Server > Approved policy.

See Approved for more information.

URI
tmod:@turbot/azure-mysql#/policy/types/serverApprovedRegions
Default Template Input
"{\n regions: policyValue(uri:\"tmod:@turbot/azure-mysql#/policy/types/mySqlApprovedRegionsDefault\") {\n value\n }\n}\n"
Default Template
"{% if $.regions.value | length == 0 %} [] {% endif %}{% for item in $.regions.value %}- &#39;{{ item }}&#39;&#92;n{% endfor %}"

Azure > MySQL > Server > Approved > Usage

Determine whether the Azure MySQL server is allowed to exist.

This policy will be evaluated by the Approved control. If an Azure MySQL server is not approved, it will be subject to the action specified in the Azure > MySQL > Server > Approved policy.

See Approved for more information.

URI
tmod:@turbot/azure-mysql#/policy/types/serverApprovedUsage
Valid Value
[
"Not approved",
"Approved",
"Approved if Azure > MySQL > Enabled"
]
Schema
{
"type": "string",
"enum": [
"Not approved",
"Approved",
"Approved if Azure > MySQL > Enabled"
],
"example": [
"Not approved"
],
"default": "Approved if Azure > MySQL > Enabled"
}

Azure > MySQL > Server > CMDB

Configure whether to record and synchronize details for the Azure MySQL server into the CMDB.

The CMDB control is responsible for populating and updating all the attributes for that resource type in the Guardrails CMDB.
All policies and controls in Guardrails are based around the resource, so usually the CMDB policy is set to "Enforce: Enabled".

If set to Skip then all changes to the CMDB are paused - no new resources will be discovered, no updates will be made and deleted resources will not be removed.

To cleanup resources and stop tracking changes, set this policy to "Enforce: Disabled".

CMDB controls also use the Regions policy associated with the resource. If region is not in Azure > MySQL > Server > Regions policy, the CMDB control will delete the resource from the CMDB.

(Note: Setting CMDB to "Skip" will also pause these changes.)

URI
tmod:@turbot/azure-mysql#/policy/types/serverCmdb
Category
Valid Value
[
"Skip",
"Enforce: Enabled",
"Enforce: Enabled if DB for MySQL provider is Registered",
"Enforce: Disabled"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Enforce: Enabled",
"Enforce: Enabled if DB for MySQL provider is Registered",
"Enforce: Disabled"
],
"example": [
"Skip"
],
"default": "Enforce: Enabled if DB for MySQL provider is Registered"
}

Azure > MySQL > Server > Encryption in Transit

Define the Encryption in Transit settings required for Azure > MySQL > Server.

The Encryption in Transit control compares the Encryption in Transit settings against the Encryption in Transit policies for the resource
(Azure > MySQL > Server > Encryption in Transit), raises an alarm, and takes the defined enforcement action

URI
tmod:@turbot/azure-mysql#/policy/types/serverEncryptionInTransit
Category
Valid Value
[
"Skip",
"Check: Enabled",
"Check: Disabled",
"Enforce: Enabled",
"Enforce: Disabled"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Check: Enabled",
"Check: Disabled",
"Enforce: Enabled",
"Enforce: Disabled"
],
"default": "Skip"
}

Azure > MySQL > Server > Regions

A list of Azure regions in which Azure MySQL servers are supported for use.

Any servers in a region not listed here will not be recorded in CMDB.

The expected format is an array of regions names. You may use the '*' and
'?' wildcard characters.

URI
tmod:@turbot/azure-mysql#/policy/types/serverRegions
Default Template Input
"{\n regions: policyValue(uri:\"tmod:@turbot/azure-mysql#/policy/types/mySqlRegionsDefault\") {\n value\n }\n}\n"
Default Template
"{% if $.regions.value | length == 0 %} [] {% endif %}{% for item in $.regions.value %}- &#39;{{ item }}&#39;&#92;n{% endfor %}"

Azure > MySQL > Server > Tags

Determine the action to take when an Azure MySQL server tags are not updated based on the Azure > MySQL > Server > Tags > * policies.

The control ensure Azure MySQL server tags include tags defined in Azure > MySQL > Server > Tags > Template.

Tags not defined in Server Tags Template will not be modified or deleted. Setting a tag value to undefined will result in the tag being deleted.

See Tags for more information.

URI
tmod:@turbot/azure-mysql#/policy/types/serverTags
Valid Value
[
"Skip",
"Check: Tags are correct",
"Enforce: Set tags"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Check: Tags are correct",
"Enforce: Set tags"
],
"example": [
"Check: Tags are correct"
],
"default": "Skip"
}

Azure > MySQL > Server > Tags > Template

The template is used to generate the keys and values for Azure MySQL server.

Tags not defined in Server Tags Template will not be modified or deleted. Setting a tag value to undefined will result in the tag being deleted.

See Tags for more information.

URI
tmod:@turbot/azure-mysql#/policy/types/serverTagsTemplate
Default Template Input
[
"{\n subscription {\n turbot {\n id\n }\n }\n}\n",
"{\n defaultTags: policyValue(uri:\"tmod:@turbot/azure-mysql#/policy/types/mySqlTagsTemplate\" resourceId: \"{{ $.subscription.turbot.id }}\") {\n value\n }\n}\n"
]
Default Template
"{%- if $.defaultTags.value | length == 0 %} [] {%- elif $.defaultTags.value != undefined %}{{ $.defaultTags.value | dump | safe }}{%- else %}{% for item in $.defaultTags.value %}- {{ item }}{% endfor %}{% endif %}"

Azure > MySQL > Tags Template [Default]

A template used to generate the keys and values for Azure MySQL resources.

By default, all MySQL resource Tags > Template policies will use this value.

URI
tmod:@turbot/azure-mysql#/policy/types/mySqlTagsTemplate
Default Template Input
"{\n defaultTags: policyValue(uri:\"tmod:@turbot/azure#/policy/types/defaultTagsTemplate\") {\n value\n }\n}\n"
Default Template
"{%- if $.defaultTags.value | length == 0 %} [] {%- elif $.defaultTags.value != undefined %}{{ $.defaultTags.value | dump | safe }}{%- else %}{% for item in $.defaultTags.value %}- {{ item }}{% endfor %}{% endif %}"

Azure > Turbot > Permissions > Compiled > Levels > @turbot/azure-mysql

A calculated policy that Guardrails uses to create a compiled list of ALL
permission levels for Azure MySQL that is used as input to the
stack that manages the Guardrails IAM permissions objects.

URI
tmod:@turbot/azure-mysql#/policy/types/azureLevelsCompiled

Azure > Turbot > Permissions > Compiled > Service Permissions > @turbot/azure-mysql

A calculated policy that Guardrails uses to create a compiled list of ALL
permissions for Azure MySQL that is used as input to the control that manages
the IAM stack.

URI
tmod:@turbot/azure-mysql#/policy/types/azureCompiledServicePermissions