З цими дозволами ви можете додати призначення користувача до групи додатків, що необхідно для доступу до віртуальної машини віртуального робочого столу.
> [!WARNING]
> Зловмисник з цими дозволами може робити набагато більш небезпечні речі, ніж це.
З цими дозволами ви можете додати призначення користувача до групи додатків, що необхідно для доступу до віртуальної машини віртуального робочого столу:
Крім того, ви можете змінити користувача віртуальної машини та пароль для доступу до неї.
```bash
az vm user update \
--resource-group <RESOURCE_GROUP_NAME> \
--name <VM_NAME> \
--username <USERNAME> \
--password <NEW_PASSWORD>
```
Зверніть увагу, що для того, щоб користувач міг отримати доступ до робочого столу або програми, йому також потрібна роль `Virtual Machine User Login`або`Virtual Machine Administrator Login` над VM.
Це **розширення VM**, яке належить Microsoft і використовує PowerShell DSC для управління конфігурацією Azure Windows VMs. Тому його можна використовувати для **виконання довільних команд**у Windows VMs через це розширення:
Це **VM розширення**, яке належить Microsoft і використовує PowerShell DSC для управління конфігурацією Azure Windows VMs. Тому його можна використовувати для **виконання довільних команд**у Windows VMs через це розширення:
```bash
# Content of revShell.ps1
Configuration RevShellConfig {
@@ -157,13 +157,13 @@ Set-AzVMDscExtension `
<summary>Гібридний Runbook Worker</summary>
Це розширення VM, яке дозволяє виконувати runbook уVM з облікового запису автоматизації. Для отримання додаткової інформації перегляньте службу [Automation Accounts](../az-services/az-automation-account/index.html).
Це розширення ВМ, яке дозволяє виконувати runbook-иуВМ з облікового запису автоматизації. Для отримання додаткової інформації перегляньте службу [Automation Accounts](../az-services/az-automation-account/index.html).
Це необхідні дозволи для **створення нового галерейного застосунку та його виконання всередині VM**. Галерейні застосунки можуть виконувати будь-що, тому зловмисник може зловживати цим для компрометації екземплярів VM, виконуючи довільні команди.
Це необхідні дозволи для **створення нового галерейного застосунку та його виконання всередині ВМ**. Галерейні застосунки можуть виконувати будь-що, тому зловмисник може зловживати цим для компрометації екземплярів ВМ, виконуючи довільні команди.
Останні 2 дозволи можуть бути уникнуті шляхом спільного використання застосунку з орендарем.
Ця дозволяє користувачу **увійти як користувач у VM через SSH або RDP** (за умови, що автентифікація Entra ID увімкнена у VM).
Ця дозволяє користувачу **увійти як користувач у VM через SSH або RDP** (якщо автентифікація Entra ID увімкнена у VM).
Увійдіть через **SSH** за допомогою **`az ssh vm --name <vm-name> --resource-group <rsc-group>`** та через **RDP** з вашими **звичайними обліковими даними Azure**.
Ця дозволяє користувачу **увійти як користувач у VM через SSH або RDP** (за умови, що автентифікація Entra ID увімкнена у VM).
Ця дозволяє користувачу **увійти як користувач у VM через SSH або RDP** (якщо автентифікація Entra ID увімкнена у VM).
Увійдіть через **SSH** за допомогою **`az ssh vm --name <vm-name> --resource-group <rsc-group>`** та через **RDP** з вашими **звичайними обліковими даними Azure**.
Згідно з [**документацією**](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/compute#microsoftcompute), це дозволення дозволяє вам керувати ОС вашого ресурсу через Windows Admin Center як адміністратор. Отже, здається, що це надає доступ до WAC для контролю ВМ...
Згідно з [**документацією**](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/compute#microsoftcompute), це дозволяє вам керувати ОС вашого ресурсу через Windows Admin Center як адміністратор. Отже, здається, що це надає доступ до WAC для контролю ВМ...
@@ -9,56 +9,100 @@ Virtual Desktop - це **сервіс віртуалізації робочих
### Host Pools
Host pools в Azure Virtual Desktop - це колекції віртуальних машин Azure, налаштованих як хости сеансів, які надають віртуальні робочі столи та додатки користувачам. Є два основних типи:
- **Особисті хост-пули**, де кожна віртуальна машина призначена для одного користувача, з його середовищем
- **Об'єднані хост-пули**, де кілька користувачів ділять ресурси на будь-якому доступному хості сеансу. Має налаштовуваний ліміт сеансів, а конфігурація хоста сеансу дозволяє Azure Virtual Desktop автоматизувати створення хостів сеансів на основі конфігурації.
Кожен хост-пул має **токен реєстрації**, який використовується для реєстрації віртуальних машину хост-пулі.
- **Особисті хост-пули**, де кожна віртуальна машина призначена для одного користувача.
- Можна налаштувати так, щоб **адміністратор міг призначати** конкретних користувачів до ВМабо щоб це робилося **автоматично**.
- Це ідеально підходить для людей з інтенсивними навантаженнями, оскільки кожна особа матиме свою власну ВМ. Більше того, вони зможуть зберігати файли та налаштовувати параметри на диску ОС, і ці налаштування зберігатимуться, оскільки **кожен користувач має свою власну ВМ (хост)**.
### Application groups & Workspace
Групи додатків **контролюють доступ користувачів** до повного робочого столу або конкретних наборів додатків, доступних на хостах сеансів у хост-пулі. Є два типи:
-**Групи додатків робочого столу**, які надають користувачам доступ до повного робочого столу Windows (доступні як з особистими, так і з об'єднаними хост-пулами)
-**Групи RemoteApp**, які дозволяють користувачам отримувати доступ до окремих опублікованих додатків (доступні лише з об'єднаними хост-пулами).
Хост-пул може мати одну групу додатків робочого столу, але кілька груп RemoteApp. Користувачі можуть бути призначені до кількох груп додатків у різних хост-пулах. Якщо користувач призначений як до групи робочого столу, так і до групи RemoteApp у одному й тому ж хост-пулі, він бачить лише ресурси з переважного типу групи, встановленого адміністраторами.
- **Пулені хост-пули**, де кілька **користувачів ділять ресурси** на доступних хостах сеансів.
- Можна налаштувати **максимальну кількість користувачів** (сеансів) на хост.
-Можна **додати ВМ вручну**, використовуючи ключі реєстрації, або**дозволити Azure автоматично масштабувати** кількість хостів без можливості додавання ВМ за допомогою ключа реєстрації. Автоматичне масштабування ВМ для особистих пулів не можливе.
-Щоб зберегти файли в сеансах користувачів, потрібно використовувати **FSlogix**.
**Workspace** - це **колекція груп додатків**, що дозволяє користувачам отримувати доступ до робочих столів та груп додатків, призначених їм. Кожна група додатків повинна бути пов'язана з робочим простором, і вона може належати лише одному робочому простору одночасно.
### Session Hosts
Це **ВМ, до яких підключаться користувачі.**
- Якщо було обрано автоматичне масштабування, буде створено шаблон з **характеристиками хостів**, які потрібно створити для пулу.
- Якщо ні, при створенні хост-пулу можна вказати **характеристики та кількість ВМ**, які ви хочете створити, і Azure створить та додасть їх для вас.
Основні функції для **налаштування ВМ**:
- **префікс** назви нових ВМ
- **тип ВМ**: Це може бути “Azure virtual machine” (для використання ВМ Azure) або “Azure Local virtual machine”, що дозволяє хостам розгортатися на місці або на краю.
- Місцезнаходження, зони, параметри безпеки ВМ, образ, ЦП, пам'ять, розмір диска…
- **VNet, група безпеки та порти**, які потрібно відкрити для Інтернету
- Можна встановити облікові дані для автоматичного **приєднання до домену AD**, або використовувати каталог Entra ID
- Якщо Entra ID, можна автоматично **зареєструвати нову ВМ в Intune**
- Потрібно встановити **ім'я користувача адміністратора та пароль**, якщо Azure не буде масштабувати хости, в цьому випадку **секрет повинен бути налаштований з ім'ям користувача та іншим з паролем**
- Можна **налаштувати скрипт для виконання** для користувацької конфігурації
### Application Groups
**Групи додатків** контролюють доступ користувачів до повного робочого столу або конкретних наборів додатків, доступних на хостах сеансів у межах хост-пулу.
Є два типи груп додатків:
- **Групи додатків робочого столу**, які надають користувачам доступ до повних робочих столів Windows та прикріплених додатків.
- **Групи RemoteApp**, які дозволяють користувачам отримувати доступ до окремих додатків.
- Неприпустимо призначати цей тип групи додатків для особистого пулу.
- Потрібно вказати шлях до бінарного файлу для виконання всередині ВМ.
Пулений пул може мати **одну групу додатків робочого столу** та **кілька груп RemoteApp**, і користувачі можуть бути призначені до кількох груп додатків у різних хост-пулах.
Коли користувачу **надається доступ**, йому надається роль **`Desktop Virtualization User`** у групі додатків.
### Workspaces & Connections
**Workspace** - це колекція груп додатків.
Щоб **підключитися** до робочого столу або додатків, до яких призначено, можна зробити це з [https://windows365.microsoft.com/ent#/devices](https://windows365.microsoft.com/ent#/devices)
І є інші методи, описані на [https://learn.microsoft.com/en-us/azure/virtual-desktop/users/connect-remote-desktop-client](https://learn.microsoft.com/en-us/azure/virtual-desktop/users/connect-remote-desktop-client)
Коли користувач отримує доступ до свого облікового запису, йому буде **представлено все, до чого він має доступ, розділене за робочими просторами**. Тому потрібно додати **кожну групу додатків до одного робочого простору**, щоб визначені доступи були видимими.
Щоб користувач міг отримати доступ до робочого столу або додатку, йому також потрібна роль **`Virtual Machine User Login`** або**`Virtual Machine Administrator Login`** на ВМ.
### Managed Identities
Неможливо призначити керовані ідентичності хост-пулам, тому створені ВМ всередині пулу матимуть їх.
Однак можливо **призначити системні та користувацькі керовані ідентичності ВМ**і потім отримати доступ до токенів з метаданих. Насправді, після запуску хост-пулів з вебу, 2 згенеровані ВМ мають увімкнену системну призначену керовану ідентичність (хоча вона не має жодних дозволів).
### Key Features
- **Гнучке створення ВМ**: Створюйте віртуальні машини Azure безпосередньо або додавайте локальні віртуальні машини Azure пізніше.
- **Функції безпеки**: Увімкніть Trusted Launch (безпечний завантаження, vTPM, моніторинг цілісності) для розширеної безпеки ВМ (необхідна віртуальна мережа). Може інтегрувати Azure Firewall і контролювати трафік через групи безпеки мережі.
- **Приєднання до домену**: Підтримка приєднання до домену Active Directory з налаштовуваними конфігураціями.
- **Діагностика та моніторинг**: Увімкніть налаштування діагностики для потокового запису журналів і метрик до Log Analytics, облікових записів зберігання або подій для моніторингу.
- **Шаблони користувацьких зображень**: Створюйте та керуйте ними для використання при додаванні хостів сеансів. Легко додавайте загальні налаштування або власні скрипти.
- **Реєстрація робочого простору**: Легко реєструйте групи додатків робочого столу за замовчуванням до нових або існуючих робочих просторів для спрощеного управління доступом користувачів.
### Enumeration
```bash
az extension add --name desktopvirtualization
# List HostPool of a Resource group
az desktopvirtualization hostpool list --resource-group <Resource_Group>
# List HostPools
az desktopvirtualization hostpool list
# List Workspaces
az desktopvirtualization workspace list
# List Application Groups
az desktopvirtualization applicationgroup list --resource-group <Resource_Group>
# List Application Groups By Subscription
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/applicationGroups?api-version=2024-04-03"
az desktopvirtualization applicationgroup list
# List Applications in a Application Group
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications?api-version=2024-04-03"
# Check if Desktops are enabled
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/desktops?api-version=2024-04-03"
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts?api-version=2024-04-03"
# List Workspace in a resource group
az desktopvirtualization workspace list --resource-group <Resource_Group>
# List Workspace in a subscription
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/workspaces?api-version=2024-04-03"
# List App Attach Package By Resource Group
# List App Attach packages
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/appAttachPackages?api-version=2024-04-03"
# List App Attach Package By Subscription
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/appAttachPackages?api-version=2024-04-03"
# List user sessions
az rest --method GET --url "https://management.azure.com/ssubscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostpools/{hostPoolName}/sessionhosts/{hostPoolHostName}/userSessions?api-version=2024-04-03"
# List Desktops
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/desktops?api-version=2024-04-03"
@@ -68,35 +112,27 @@ az rest --method GET --url "https://management.azure.com/subscriptions/{subscrip
# List private endpoint connections associated with hostpool.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateEndpointConnections?api-version=2024-04-03"
# List private endpoint connections associated By Workspace.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateEndpointConnections?api-version=2024-04-03"
# List the private link resources available for a hostpool.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateLinkResources?api-version=2024-04-03"
# List the private link resources available for this workspace.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateLinkResources?api-version=2024-04-03"
# List sessionHosts/virtual machines.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts?api-version=2024-04-03"
# List start menu items in the given application group.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/startMenuItems?api-version=2024-04-03"
# List userSessions.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions?api-version=2024-04-03"
# List userSessions By Host Pool
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/userSessions?api-version=2024-04-03"
```
### Connection
Щоб підключитися до віртуального робочого столу через веб, ви можете отримати доступ через https://client.wvd.microsoft.com/arm/webclient/ (найбільш поширений варіант), або https://client.wvd.microsoft.com/webclient/index.html (класичний)
Існують інші методи, які описані тут [https://learn.microsoft.com/en-us/azure/virtual-desktop/users/connect-remote-desktop-client?tabs=windows](https://learn.microsoft.com/en-us/azure/virtual-desktop/users/connect-remote-desktop-client?tabs=windows)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.