[Storage] BREAKING CHANGE: az storage account create/update: Remove --min-tls-version values TLS1_0, TLS1_1#32740
[Storage] BREAKING CHANGE: az storage account create/update: Remove --min-tls-version values TLS1_0, TLS1_1#32740
az storage account create/update: Remove --min-tls-version values TLS1_0, TLS1_1#32740Conversation
️✔️AzureCLI-FullTest
|
|
| rule | cmd_name | rule_message | suggest_message |
|---|---|---|---|
| storage account create | cmd storage account create removed property deprecate_info_target |
||
| storage account create | cmd storage account create update parameter min_tls_version: updated property choices from ['TLS1_0', 'TLS1_1', 'TLS1_2', 'TLS1_3'] to ['TLS1_2', 'TLS1_3'] |
||
| storage account update | cmd storage account update removed property deprecate_info_target |
||
| storage account update | cmd storage account update update parameter min_tls_version: updated property choices from ['TLS1_0', 'TLS1_1', 'TLS1_2', 'TLS1_3'] to ['TLS1_2', 'TLS1_3'] |
|
Thank you for your contribution! We will review the pull request and get back to you soon. |
|
The git hooks are available for azure-cli and azure-cli-extensions repos. They could help you run required checks before creating the PR. Please sync the latest code with latest dev branch (for azure-cli) or main branch (for azure-cli-extensions). pip install azdev --upgrade
azdev setup -c <your azure-cli repo path> -r <your azure-cli-extensions repo path>
|
There was a problem hiding this comment.
Pull request overview
This PR updates the Storage command module to enforce the retirement of TLS 1.0/1.1 by removing TLS1_0 and TLS1_1 from --min-tls-version choices for az storage account create/update, and removes the prior “auto-upgrade to TLS1_2” behavior.
Changes:
- Restrict
--min-tls-versiontoTLS1_2/TLS1_3for storage account create/update. - Remove fallback logic (and warning) that previously mapped
TLS1_0/TLS1_1toTLS1_2. - Update scenario tests + recordings to stop using retired TLS versions and delete the breaking-change registration file.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
src/azure-cli/azure/cli/command_modules/storage/_params.py |
Removes TLS1_0/TLS1_1 from CLI argument choices for create/update. |
src/azure-cli/azure/cli/command_modules/storage/operations/account.py |
Removes warning + coercion logic for TLS1_0/TLS1_1 inputs. |
src/azure-cli/azure/cli/command_modules/storage/tests/latest/test_storage_account_scenarios.py |
Updates min-TLS scenario tests to no longer pass TLS1_0/TLS1_1 (but leaves commented-out test logic). |
src/azure-cli/azure/cli/command_modules/storage/tests/latest/recordings/test_storage_create_with_min_tls.yaml |
Updates the recording to match the revised test flow. |
src/azure-cli/azure/cli/command_modules/storage/_breaking_change.py |
Removes the breaking-change notice registration (file deleted). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| c.argument('min_tls_version', arg_type=get_enum_type(['TLS1_2', 'TLS1_3']), | ||
| help='The minimum TLS version to be permitted on requests to storage. ' | ||
| ' Values TLS1_0 and TLS1_1 have been retired on 2026/02/03 and will be removed on 2026/03/03.' | ||
| ' Microsoft recommends setting MinimumTlsVersion to TLS1_2') | ||
| 'Microsoft recommends setting MinimumTlsVersion to TLS1_2') |
There was a problem hiding this comment.
Similar to create, please add coverage to ensure az storage account update --min-tls-version TLS1_0|TLS1_1 fails as expected (e.g., expect_failure=True). Without a test, this breaking behavior could regress silently.
| name_0 = self.create_random_name(prefix='cli', length=24) | ||
| name_1_2 = self.create_random_name(prefix='cli', length=24) | ||
| name_1_3 = self.create_random_name(prefix='cli', length=24) | ||
|
|
||
| self.cmd('az storage account create -n {} -g {} --min-tls-version TLS1_0'.format(name1, resource_group), | ||
| checks=[JMESPathCheck('minimumTlsVersion', 'TLS1_2')]) | ||
| # service should default to tls1.2, currently service issue | ||
| # self.cmd('az storage account create -n {} -g {}'.format(name_0, resource_group), | ||
| # checks=[JMESPathCheck('minimumTlsVersion', 'TLS1_2')]) |
There was a problem hiding this comment.
name_0 is unused because the default-create assertion is commented out. Please avoid leaving commented-out test logic; either remove the unused variable and related commented block, or replace it with an explicit skip/xfail (with a tracking issue/link) so the reason is preserved without dead code.
| name_1_3 = self.create_random_name(prefix='cli', length=24) | ||
|
|
||
| self.cmd('az storage account create -n {} -g {} --min-tls-version TLS1_0'.format(name1, resource_group), | ||
| checks=[JMESPathCheck('minimumTlsVersion', 'TLS1_2')]) | ||
| # service should default to tls1.2, currently service issue | ||
| # self.cmd('az storage account create -n {} -g {}'.format(name_0, resource_group), | ||
| # checks=[JMESPathCheck('minimumTlsVersion', 'TLS1_2')]) | ||
|
|
||
| self.cmd('az storage account create -n {} -g {} --min-tls-version TLS1_1'.format(name2, resource_group), | ||
| checks=[JMESPathCheck('minimumTlsVersion', 'TLS1_2')]) | ||
|
|
||
| self.cmd('az storage account create -n {} -g {} --min-tls-version TLS1_2'.format(name3, resource_group), | ||
| self.cmd('az storage account create -n {} -g {} --min-tls-version TLS1_2'.format(name_1_2, resource_group), | ||
| checks=[JMESPathCheck('minimumTlsVersion', 'TLS1_2')]) | ||
|
|
||
| # setting minimumTlsVersion 1.3 is not supported yet, | ||
| # https://learn.microsoft.com/en-us/azure/storage/common/transport-layer-security-configure-minimum-version?tabs=portal | ||
| # self.cmd('az storage account create -n {} -g {} --min-tls-version TLS1_3'.format(name4, resource_group), | ||
| # self.cmd('az storage account create -n {} -g {} --min-tls-version TLS1_3'.format(name_1_3, resource_group), | ||
| # checks=[JMESPathCheck('minimumTlsVersion', 'TLS1_3')]) |
There was a problem hiding this comment.
name_1_3 is currently unused because the TLS1_3 create is commented out. Either drop the variable (and commented test) or convert the TLS1_3 scenario into an explicit skip/xfail so the test intent and current limitation are captured without dead code.
| c.argument('min_tls_version', arg_type=get_enum_type(['TLS1_2', 'TLS1_3']), | ||
| help='The minimum TLS version to be permitted on requests to storage. ' | ||
| ' Values TLS1_0 and TLS1_1 have been retired on 2026/02/03 and will be removed on 2026/03/03.' | ||
| ' Microsoft recommends setting MinimumTlsVersion to TLS1_2') | ||
| 'Microsoft recommends setting MinimumTlsVersion to TLS1_2') |
There was a problem hiding this comment.
Now that TLS1_0/TLS1_1 are removed from the argument choices, it would be good to add a scenario test that verifies az storage account create --min-tls-version TLS1_0|TLS1_1 fails with an appropriate error (e.g., expect_failure=True). This will prevent accidental reintroduction and documents the breaking behavior.
Related command
Description
Remove
--min-tls-versionvaluesTLS1_0,TLS1_1as they have been retired by service since 02/03Testing Guide
History Notes
[Storage] BREAKING CHANGE:
az storage account create/update: Remove--min-tls-versionvaluesTLS1_0,TLS1_1This checklist is used to make sure that common guidelines for a pull request are followed.
The PR title and description has followed the guideline in Submitting Pull Requests.
I adhere to the Command Guidelines.
I adhere to the Error Handling Guidelines.