更改 Azure 存储帐户 TLS 版本
Change Azure Storage Account TLS versions
是否有人拥有或看到过批量更改 Azure Strorage 帐户 TLS 版本的脚本?我们有数百个存储帐户仍启用了 TLS 1.0 或 1.1,我们希望将它们更改为 1.2。因为手动点击的人太多了,所以真的不是选项..
我现在已经用谷歌搜索并尝试自己编写脚本,但我的头撞墙了。
我已经设法遍历我的所有订阅和存储帐户并将存储帐户名称、资源组和 tls 版本保存到 csv,但现在我需要下一步的帮助:我如何才能将 TLS 版本更改为1.2 如果是 1.0 或 1.1 使用该数据。
Set-AzStorageAccount -ResourceGroupName $rgName `
-Name $accountName `
-MinimumTlsVersion TLS1_2
我现在的剧本
$Subscriptions = Get-AzSubscription
$data = foreach ($sub in $Subscriptions) {
# suppress output on this line
Write-Host Working with Subscription $sub.Name
$null = Get-AzSubscription -SubscriptionName $sub.Name | Set-AzContext
# let Select-Object output the objects that will be collected in variable $data
Get-AzStorageAccount | Select-Object StorageAccountName, ResourceGroupName,
@{Name = 'TLSVersion'; Expression = {$_.MinimumTlsVersion}}
}
# write a CSV file containing this data
$data | Export-Csv -Path C:\temp\data.csv -NoTypeInformation
提示?
• 非常感谢您准备的用于更改跨各种订阅的多个存储帐户的 TLS 版本的脚本。我还尝试测试用于更改订阅中多个存储帐户的 TLS 版本的特定 cmdlet,因为我没有多个订阅并且效果很好。此外,如果您无法访问多个订阅的资源,则无法执行此脚本。
对于所有订阅,此脚本成功执行所需的最低 Azure 资源管理器角色是 '贡献者',并且 您需要使用此用户 ID 在该订阅中登录,该订阅在管理组中的层次结构高于其他订阅,以便它有权相应地执行和访问这些订阅中的资源。
• 因此,可以成功更改用户 ID 有权访问的任何订阅中存储帐户的 TLS 版本的实际脚本如下所示。此外,它还会导出一个 CSV 文件,其中包含此脚本访问的所有存储帐户的列表:-
$Subscriptions = Get-AzSubscription
$data = foreach ($sub in $Subscriptions) {
Write-Host Working with Subscription $sub.Name
$null = Get-AzSubscription -SubscriptionName $sub.Name | Set-AzContext
Get-AzStorageAccount | Set-AzStorageAccount -MinimumTlsVersion TLS1_2 @{Name = 'TLSVersion'; Expression = {$_.MinimumTlsVersion}}
}
$data | Export-Csv -Path C:\data.csv -NoTypeInformation ‘
您还可以配置 Azure 策略 以在存储帐户上强制执行 TLS v2.0,以便在存储帐户上强制使用 TLS v2.0,方法是输入以下 JSON 代码作为 Azure 策略分配中的策略。
{
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Storage/storageAccounts"
},
{
"not": {
"field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
"equals": "TLS1_2"
}
}
]
},
"then": {
"effect": "deny"
}
}
}
有关这方面的更多详细信息,请参阅下面的文档link:-
是否有人拥有或看到过批量更改 Azure Strorage 帐户 TLS 版本的脚本?我们有数百个存储帐户仍启用了 TLS 1.0 或 1.1,我们希望将它们更改为 1.2。因为手动点击的人太多了,所以真的不是选项..
我现在已经用谷歌搜索并尝试自己编写脚本,但我的头撞墙了。
我已经设法遍历我的所有订阅和存储帐户并将存储帐户名称、资源组和 tls 版本保存到 csv,但现在我需要下一步的帮助:我如何才能将 TLS 版本更改为1.2 如果是 1.0 或 1.1 使用该数据。
Set-AzStorageAccount -ResourceGroupName $rgName `
-Name $accountName `
-MinimumTlsVersion TLS1_2
我现在的剧本
$Subscriptions = Get-AzSubscription
$data = foreach ($sub in $Subscriptions) {
# suppress output on this line
Write-Host Working with Subscription $sub.Name
$null = Get-AzSubscription -SubscriptionName $sub.Name | Set-AzContext
# let Select-Object output the objects that will be collected in variable $data
Get-AzStorageAccount | Select-Object StorageAccountName, ResourceGroupName,
@{Name = 'TLSVersion'; Expression = {$_.MinimumTlsVersion}}
}
# write a CSV file containing this data
$data | Export-Csv -Path C:\temp\data.csv -NoTypeInformation
提示?
• 非常感谢您准备的用于更改跨各种订阅的多个存储帐户的 TLS 版本的脚本。我还尝试测试用于更改订阅中多个存储帐户的 TLS 版本的特定 cmdlet,因为我没有多个订阅并且效果很好。此外,如果您无法访问多个订阅的资源,则无法执行此脚本。
对于所有订阅,此脚本成功执行所需的最低 Azure 资源管理器角色是 '贡献者',并且 您需要使用此用户 ID 在该订阅中登录,该订阅在管理组中的层次结构高于其他订阅,以便它有权相应地执行和访问这些订阅中的资源。
• 因此,可以成功更改用户 ID 有权访问的任何订阅中存储帐户的 TLS 版本的实际脚本如下所示。此外,它还会导出一个 CSV 文件,其中包含此脚本访问的所有存储帐户的列表:-
$Subscriptions = Get-AzSubscription
$data = foreach ($sub in $Subscriptions) {
Write-Host Working with Subscription $sub.Name
$null = Get-AzSubscription -SubscriptionName $sub.Name | Set-AzContext
Get-AzStorageAccount | Set-AzStorageAccount -MinimumTlsVersion TLS1_2 @{Name = 'TLSVersion'; Expression = {$_.MinimumTlsVersion}}
}
$data | Export-Csv -Path C:\data.csv -NoTypeInformation ‘
您还可以配置 Azure 策略 以在存储帐户上强制执行 TLS v2.0,以便在存储帐户上强制使用 TLS v2.0,方法是输入以下 JSON 代码作为 Azure 策略分配中的策略。
{
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Storage/storageAccounts"
},
{
"not": {
"field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
"equals": "TLS1_2"
}
}
]
},
"then": {
"effect": "deny"
}
}
}
有关这方面的更多详细信息,请参阅下面的文档link:-