По умолчанию общий файловый ресурс Azure общедоступен, вам не нужно использовать P2S VPN-подключение для подключения Azure общего файлового ресурса в качестве диска на локальном компьютере.
Для подключения Azure общий файловый ресурс с PowerShell на Windows, вы можете сослаться this .
$resourceGroupName = "<your-resource-group-name>"
$storageAccountName = "<your-storage-account-name>"
$fileShareName = "<your-file-share-name>"
# These commands require you to be logged into your Azure account, run Login-AzAccount if you haven't
# already logged in.
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName
$storageAccountKeys = Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName
$fileShare = Get-AzStorageShare -Context $storageAccount.Context | Where-Object {
$_.Name -eq $fileShareName -and $_.IsSnapshot -eq $false
}
if ($fileShare -eq $null) {
throw [System.Exception]::new("Azure file share not found")
}
# The value given to the root parameter of the New-PSDrive cmdlet is the host address for the storage account,
# <storage-account>.file.core.windows.net for Azure Public Regions. $fileShare.StorageUri.PrimaryUri.Host is
# used because non-Public Azure regions, such as sovereign clouds or Azure Stack deployments, will have different
# hosts for Azure file shares (and other storage resources).
$password = ConvertTo-SecureString -String $storageAccountKeys[0].Value -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList "AZURE\$($storageAccount.StorageAccountName)", $password
New-PSDrive -Name <desired-drive-letter> -PSProvider FileSystem -Root "\\$($fileShare.StorageUri.PrimaryUri.Host)\$($fileShare.Name)" -Credential $credential -Persist
Для Linux вы можете получить более подробную информацию о , используя Azure Файлы с Linux.
Редактировать
Azure Файлы предоставляют два основных типа конечных точек для доступа к Azure общим папкам :
- Publi c конечные точки , которые имеют общедоступный c IP-адрес и могут быть доступны из любой точки мира.
- Частные конечные точки , которые существуют в виртуальной сети и имеют частный IP-адрес из адресного пространства этой виртуальной сети.
По умолчанию файл azure предоставляет конечную точку publi c, которую вы можете доступ из любой точки мира, но если у вас есть VPN-подключение, доступ осуществляется через внутренний частный IP-адрес.
Без VPN-подключения вы можете выполнить описанные выше шаги в этом документе. Чтобы использовать соединение P2S VPN с Azure файлами, вам не нужно открывать порт 445. Здесь - полные шаги.
Во-первых, вам нужно настроить P2S VPN соединение для каждого клиента, который хочет подключиться.
Затем следуйте примеру, чтобы смонтировать общий ресурс, перечислите каталог root общего ресурса, чтобы убедиться, что общий ресурс действительно подключен, а затем отключите общий ресурс.
$myShareToMount = "<file-share>"
$storageAccountKeys = Get-AzStorageAccountKey `
-ResourceGroupName $resourceGroupName `
-Name $storageAccountName
$storageAccountKey = ConvertTo-SecureString `
-String $storageAccountKeys[0].Value `
-AsPlainText `
-Force
$nic = Get-AzNetworkInterface -ResourceId $privateEndpoint.NetworkInterfaces[0].Id
$storageAccountPrivateIP = $nic.IpConfigurations[0].PrivateIpAddress
Invoke-Command `
-Session $sessions `
-ArgumentList `
$storageAccountName, `
$storageAccountKey, `
$storageAccountPrivateIP, `
$myShareToMount `
-ScriptBlock {
$storageAccountName = $args[0]
$storageAccountKey = $args[1]
$storageAccountPrivateIP = $args[2]
$myShareToMount = $args[3]
$credential = [System.Management.Automation.PSCredential]::new(
"AZURE\$storageAccountName",
$storageAccountKey)
New-PSDrive `
-Name Z `
-PSProvider FileSystem `
-Root "\\$storageAccountPrivateIP\$myShareToMount" `
-Credential $credential `
-Persist | Out-Null
Get-ChildItem -Path Z:\
Remove-PSDrive -Name Z
}
К сожалению, невозможно постоянно смонтировать общий ресурс поверх PowerShell remoting . Для постоянного монтирования см. Использование общего файлового ресурса Azure с Windows.