Windows Azure Access Control List
V nedávné aktualizaci Windows Azure služby umožnil Microsoft nastavit Access Control List (ACL) pro přístup k virtuálním strojům v Azure přes Public Endpointy.
Co lze pomocí Azure ACL nastavit:
- Můžeme na daný Azure virtuální stroj a jeho konkrétní port povolit komunikaci z vybraného rozsahu IP adres
- Zablokovat komunikaci z rozsahu IP adres
- Můžeme vytvořit až 50 pravidel na Endpoint virtuálního stroje
- Můžeme nastavit pořadí pravidel tak, abychom zajistili správnou funkci
Jak nastavit ACL
Azure ACL je možné zatím nastavit pouze přes Azure PowerShell.
Pro testovací účely jsem založil v Windows Azure testovací Windows Server stroj, kde jsem povolil Telnet Server.
Poté jsem vytvořil nový Azure Endpoint pro přístup na port Telnet serveru – Endpoint můžeme nastavit buď přes GUI nebo pomocí PowerShell. Pomocí PS můžeme použít následující:
Get-AzureVM -ServiceName TestServer |Add-AzureEndpoint -Name Telnet -Protocol tcp -PublicPort 23 -LocalPort 23|Update-AzureVM
Kde PublicPort je port, na který se budeme ke službě připojovat, a LocalPort je lokální port, na kterém běží služba. Můžeme tedy „zamaskovat“ skutečný port, na kterém služba běží.
Po konfiguraci Endpointu je možné ověřit komunikaci na Telnet server:
Azure ACL poté nastavíme následovně. Jako příklad použiji stav, kdy chci povolit připojení na Telnet server pouze z „mé“ IP adresy xx.168.58.210
$acl=New-AzureAclConfig
Set-AzureAclConfig -AddRule -ACL $acl -Order 200 -Action Permit -RemoteSubnet xx.168.58.210/32 -Description "Permit IP"
Get-AzureVM -Name TestServer -ServiceName TestServer|set-AzureEndpoint -Name telnet -ACL $acl -Protocol tcp -LocalPort 23 -PublicPort 23 |Update-AzureVM
Po aplikaci ACL na Telnet Endpoint je stále možné přistoupit na Telnet port z „mé“ IP adresy. Ale pokud zkusím přístup z jiné, tak přístup není možný:
Další body na zvážení:
- No ACL – základní nastavení po vytvoření Endpointu je bez ACL, což znamená, že přístup mají všichni
- Permit – po přidání jedné IP adresy nebo rozsahu IP adres s parametrem Permit (viz příklad výše) dojde k zakázaní komunikace, ze všech ostatních IP adres
- Deny – po přidání jedné IP adresy nebo rozsahu IP adres s parametrem Deny je povolena komunikace ze všech ostatních IP adres
- Kombinace Permit a Deny – je možné použít jakoukoliv kombinaci Permit a Deny pravidel, typicky například pro situaci, kdy je potřeba zakázat komunikaci z části povolené IP sítě – pravidla z nižším „Order“ mají vyšší prioritu
- IP adresy nebo rozsahy je třeba zadávat v CIDR formátu např. 10.10.10.0/24
Závěrem uvádím přehled cmdlets, které umožňují konfiguraci ACL
- New-AzureACLConfig
- Get-AzureACLConfig [-VM ] [-EndpointName ]
- Remove-AzureACLConfig [-VM ] [-EndpointName ]
- Set-AzureAclConfig [-AddRule ] [-RemoveRule] [-SetRule ]
- [-ACL ] [-RuleID ] [-Order ] [-Action ] [-RemoteSubnet ] [-Description ]
- Add-AzureEndpoint (-ACL Parameter)
- Set-AzureEndpoint (-ACL Parameter)
ACL jsou vítaným rozšířením Windows Azure služby, které umožňují například ochránit port, na kterém běží administrace dané aplikace, nebo povolit přístup pouze z firemních IP adres, pokud je služba běžící v Azure určena pouze přístup z interní sítě společnosti.
Ondřej Štefka
Mainstream Technologies