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 versiontoVersion 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_15Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run azure_compliance.control.cis_v300_4_15 --shareSQL
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  left join azure_subscription sub on sub.subscription_id = sa.subscription_id;