Best practices for Azure
Recipe ID
org.openrewrite.terraform.azure.AzureBestPracticesArtifact
org.openrewrite.recipe:rewrite-terraformSecurely operate on Microsoft Azure.
Usage
This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.
mod run . --recipe org.openrewrite.terraform.azure.AzureBestPracticesIf the recipe isn’t available locally, install it with:
mod config recipes jar install org.openrewrite.recipe:rewrite-terraform:3.14.6Definition
This recipe runs the following recipes in order.
- Encrypt Azure VM data disk with ADE/CMK
org.openrewrite.terraform.azure.EncryptAzureVMDataDiskWithADECMK - Enable Azure Storage secure transfer required
org.openrewrite.terraform.azure.EnableAzureStorageSecureTransferRequired - Disable Kubernetes dashboard
org.openrewrite.terraform.azure.DisableKubernetesDashboard - Ensure the storage container storing activity logs is not publicly accessible
org.openrewrite.terraform.azure.EnsureTheStorageContainerStoringActivityLogsIsNotPubliclyAccessible - Ensure Azure Network Watcher NSG flow logs retention is greater than 90 days
org.openrewrite.terraform.azure.EnsureAzureNetworkWatcherNSGFlowLogsRetentionIsGreaterThan90Days - Ensure Azure App Service Web app redirects HTTP to HTTPS
org.openrewrite.terraform.azure.EnsureAzureAppServiceWebAppRedirectsHTTPToHTTPS - Ensure Web App uses the latest version of TLS encryption
org.openrewrite.terraform.azure.EnsureWebAppUsesTheLatestVersionOfTLSEncryption - Ensure Web App uses the latest version of HTTP
org.openrewrite.terraform.azure.EnsureWebAppUsesTheLatestVersionOfHTTP - Ensure standard pricing tier is selected
org.openrewrite.terraform.azure.EnsureStandardPricingTierIsSelected - Ensure a security contact phone number is present
org.openrewrite.terraform.azure.EnsureASecurityContactPhoneNumberIsPresent - Ensure Send email notification for high severity alerts is enabled
org.openrewrite.terraform.azure.EnsureSendEmailNotificationForHighSeverityAlertsIsEnabled - Ensure Send email notification for high severity alerts to admins is enabled
org.openrewrite.terraform.azure.EnsureSendEmailNotificationForHighSeverityAlertsToAdminsIsEnabled - Ensure Azure SQL server audit log retention is greater than 90 days
org.openrewrite.terraform.azure.EnsureAzureSQLServerAuditLogRetentionIsGreaterThan90Days - Ensure Azure SQL Server threat detection alerts are enabled for all threat types
org.openrewrite.terraform.azure.EnsureAzureSQLServerThreatDetectionAlertsAreEnabledForAllThreatTypes - Ensure Azure SQL server send alerts to field value is set
org.openrewrite.terraform.azure.EnsureAzureSQLServerSendAlertsToFieldValueIsSet - Ensure MSSQL servers have email service and co-administrators enabled
org.openrewrite.terraform.azure.EnsureMSSQLServersHaveEmailServiceAndCoAdministratorsEnabled - Ensure MySQL server databases have Enforce SSL connection enabled
org.openrewrite.terraform.azure.EnsureMySQLServerDatabasesHaveEnforceSSLConnectionEnabled - Ensure Azure PostgreSQL database server with SSL connection is enabled
org.openrewrite.terraform.azure.EnsureAzurePostgreSQLDatabaseServerWithSSLConnectionIsEnabled - Set Azure Storage Account default network access to deny
org.openrewrite.terraform.azure.SetAzureStorageAccountDefaultNetworkAccessToDeny - Enable Azure Storage Account Trusted Microsoft Services access
org.openrewrite.terraform.azure.EnableAzureStorageAccountTrustedMicrosoftServicesAccess - Ensure activity log retention is set to 365 days or greater
org.openrewrite.terraform.azure.EnsureActivityLogRetentionIsSetTo365DaysOrGreater - Ensure log profile is configured to capture all activities
org.openrewrite.terraform.azure.EnsureLogProfileIsConfiguredToCaptureAllActivities - Ensure all keys have an expiration date
org.openrewrite.terraform.azure.EnsureAllKeysHaveAnExpirationDate - Ensure AKV secrets have an expiration date set
org.openrewrite.terraform.azure.EnsureAKVSecretsHaveAnExpirationDateSet - Ensure Azure key vault is recoverable
org.openrewrite.terraform.azure.EnsureAzureKeyVaultIsRecoverable - Ensure storage account uses latest TLS version
org.openrewrite.terraform.azure.EnsureStorageAccountUsesLatestTLSVersion - Ensure public network access enabled is set to False for mySQL servers
org.openrewrite.terraform.azure.EnsurePublicNetworkAccessEnabledIsSetToFalseForMySQLServers - Ensure MySQL is using the latest version of TLS encryption
org.openrewrite.terraform.azure.EnsureMySQLIsUsingTheLatestVersionOfTLSEncryption - Ensure app service enables HTTP logging
org.openrewrite.terraform.azure.EnsureAppServiceEnablesHTTPLogging - Ensure app service enables detailed error messages
org.openrewrite.terraform.azure.EnsureAppServiceEnablesDetailedErrorMessages - Ensure app service enables failed request tracing
org.openrewrite.terraform.azure.EnsureAppServiceEnablesFailedRequestTracing - Ensure PostgreSQL server disables public network access
org.openrewrite.terraform.azure.EnsurePostgreSQLServerDisablesPublicNetworkAccess - Ensure managed identity provider is enabled for app services
org.openrewrite.terraform.azure.EnsureManagedIdentityProviderIsEnabledForAppServices - Ensure FTP Deployments are disabled
org.openrewrite.terraform.azure.EnsureFTPDeploymentsAreDisabled - Ensure MySQL server disables public network access
org.openrewrite.terraform.azure.EnsureMySQLServerDisablesPublicNetworkAccess - Ensure MySQL server enables geo-redundant backups
org.openrewrite.terraform.azure.EnsureMySQLServerEnablesGeoRedundantBackups - Enable geo-redundant backups on PostgreSQL server
org.openrewrite.terraform.azure.EnableGeoRedundantBackupsOnPostgreSQLServer - Ensure key vault allows firewall rules settings
org.openrewrite.terraform.azure.EnsureKeyVaultAllowsFirewallRulesSettings - Ensure key vault enables purge protection
org.openrewrite.terraform.azure.EnsureKeyVaultEnablesPurgeProtection - Ensure key vault secrets have
content_typesetorg.openrewrite.terraform.azure.EnsureKeyVaultSecretsHaveContentTypeSet - Ensure AKS policies add-on
org.openrewrite.terraform.azure.EnsureAKSPoliciesAddOn - Ensure Azure application gateway has WAF enabled
org.openrewrite.terraform.azure.EnsureAzureApplicationGatewayHasWAFEnabled - Ensure MySQL server enables Threat Detection policy
org.openrewrite.terraform.azure.EnsureMySQLServerEnablesThreatDetectionPolicy - Ensure PostgreSQL server enables Threat Detection policy
org.openrewrite.terraform.azure.EnsurePostgreSQLServerEnablesThreatDetectionPolicy - Ensure PostgreSQL server enables infrastructure encryption
org.openrewrite.terraform.azure.EnsurePostgreSQLServerEnablesInfrastructureEncryption
Data tables
Structured output this recipe can produce.
- Source files that had resultsSource files that were modified by the recipe run.
org.openrewrite.table.SourcesFileResults - Source files that had search resultsSearch results that were found during the recipe run.
org.openrewrite.table.SearchResults - Source files that errored on a recipeThe details of all errors produced by a recipe run.
org.openrewrite.table.SourcesFileErrors - Recipe performanceStatistics used in analyzing the performance of recipes.
org.openrewrite.table.RecipeRunStats