Control: 4.15 Ensure the 'Minimum TLS version' for storage accounts is set to 'Version 1.2'
Description
In some cases, Azure Storage sets the minimum TLS version to be version 1.0 by default. TLS 1.0 is a legacy version and has known vulnerabilities. This minimum TLS version can be configured to be later protocols such as TLS 1.2.
TLS 1.0 has known vulnerabilities and has been replaced by later versions of the TLS protocol. Continued use of this legacy protocol affects the security of data in transit.
Remediation
From Azure Portal
- Go to
Storage Accounts
. - For each storage account, under
Settings
, clickConfiguration
. - Set the
Minimum TLS version
toVersion 1.2
. - Click
Save
.
From Azure CLI
az storage account update \ --name <storage-account> \ --resource-group <resource-group> \ --min-tls-version TLS1_2
From PowerShell
To set the minimum TLS version, run the following command:
Set-AzStorageAccount -AccountName <STORAGEACCOUNTNAME> ` -ResourceGroupName <RESOURCEGROUPNAME> ` -MinimumTlsVersion TLS1_2
Default Value
If a storage account is created through the portal, the MinimumTlsVersion property for that storage account will be set to TLS 1.2.
If a storage account is created through PowerShell or CLI, the MinimumTlsVersion property for that storage account will not be set, and defaults to TLS 1.0.
Usage
Run the control in your terminal:
powerpipe control run azure_compliance.control.cis_v300_4_15
Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run azure_compliance.control.cis_v300_4_15 --share
SQL
This control uses a named query:
select sa.id as resource, case when minimum_tls_version = 'TLSEnforcementDisabled' then 'alarm' when minimum_tls_version = 'TLS1_2' then 'ok' else 'alarm' end as status, case when minimum_tls_version = 'TLSEnforcementDisabled' then sa.name || ' TLS enforcement is disabled.' when minimum_tls_version = 'TLS1_2' then sa.name || ' minimum TLS version set to ' || minimum_tls_version || '.' else sa.name || ' minimum TLS version set to ' || minimum_tls_version || '.' end as reason , sa.resource_group as resource_group , sub.display_name as subscriptionfrom azure_storage_account sa, azure_subscription subwhere sub.subscription_id = sa.subscription_id;