Ćwiczenie — Ograniczanie dostępu do usługi Azure Storage za pomocą punktów końcowych usługi
Jako architekt rozwiązań planujesz przeniesienie poufnych plików schematów technicznych do usługi Azure Storage. Pliki te muszą być dostępne tylko z komputerów w sieci firmowej. Chcesz utworzyć punkt końcowy usługi sieci wirtualnej dla usługi Azure Storage, aby zabezpieczyć połączenia z kontami magazynu.
W tej lekcji utworzysz punkt końcowy usługi i użyjesz reguł sieci, aby ograniczyć dostęp do usługi Azure Storage. Utworzysz punkt końcowy usługi sieci wirtualnej Azure Storage w podsieci Databases. Następnie sprawdzisz, czy maszyna wirtualna DataServer może uzyskać dostęp do usługi Azure Storage. Na koniec sprawdzisz, czy maszyna wirtualna AppServer , która znajduje się w innej podsieci, nie może uzyskać dostępu do magazynu.
Dodawanie reguł do sieciowej grupy zabezpieczeń
W tym miejscu upewnisz się, że komunikacja z usługą Azure Storage przechodzi przez punkt końcowy usługi. Dodasz reguły ruchu wychodzącego, aby zezwolić na dostęp do usługi Storage, ale odmówić całego innego ruchu internetowego.
Aby utworzyć regułę ruchu wychodzącego, aby zezwolić na dostęp do magazynu, uruchom następujące polecenie w usłudze Cloud Shell:
az network nsg rule create \ --resource-group $rg \ --nsg-name ERP-SERVERS-NSG \ --name Allow_Storage \ --priority 190 \ --direction Outbound \ --source-address-prefixes "VirtualNetwork" \ --source-port-ranges '*' \ --destination-address-prefixes "Storage" \ --destination-port-ranges '*' \ --access Allow \ --protocol '*' \ --description "Allow access to Azure Storage"
Aby utworzyć regułę ruchu wychodzącego w celu odmowy całego dostępu do Internetu, uruchom następujące polecenie w usłudze Cloud Shell:
az network nsg rule create \ --resource-group $rg \ --nsg-name ERP-SERVERS-NSG \ --name Deny_Internet \ --priority 200 \ --direction Outbound \ --source-address-prefixes "VirtualNetwork" \ --source-port-ranges '*' \ --destination-address-prefixes "Internet" \ --destination-port-ranges '*' \ --access Deny \ --protocol '*' \ --description "Deny access to Internet."
Teraz sieciowa grupa zabezpieczeń ERP-SERVERS-NSG powinna zawierać następujące reguły:
Nazwa reguły | Kierunek | Priorytet | Przeznaczenie |
---|---|---|---|
AllowSSHRule | Przychodzący | 100 | Zezwalaj na przychodzący ruch SSH |
reguła http | Przychodzący | 150 | Odmów z maszyny wirtualnej DataServer do maszyny wirtualnej AppServer na porcie 80 |
Zezwól_na_przechowywanie | Wychodzący | 190 | Zezwalaj na dostęp do usługi Azure Storage |
Odmów_Dostępu_Do_Internetu | Wychodzący | 200 | Odmów dostępu do Internetu z sieci wirtualnej |
W tym momencie zarówno maszyna wirtualna AppServer , jak i maszyna wirtualna DataServer mają dostęp do usługi Azure Storage.
Konfigurowanie konta magazynu i udziału plików
W tym kroku utworzysz nowe konto magazynu, a następnie dodasz udział plików platformy Azure do tego konta. Ten udział plików to miejsce, w którym będziesz przechowywać diagramy inżynieryjne.
Aby utworzyć konto magazynu dla dokumentów inżynieryjnych, uruchom następujące polecenie w usłudze Cloud Shell:
STORAGEACCT=$(az storage account create \ --resource-group $rg \ --name engineeringdocs$RANDOM \ --sku Standard_LRS \ --query "name" | tr -d '"')
Aby zapisać klucz podstawowy konta magazynu w zmiennej, uruchom następujące polecenie w usłudze Cloud Shell:
STORAGEKEY=$(az storage account keys list \ --resource-group $rg \ --account-name $STORAGEACCT \ --query "[0].value" | tr -d '"')
Aby utworzyć udział plików Azure o nazwie erp-data-share, uruchom następujące polecenie w Cloud Shell.
az storage share create \ --account-name $STORAGEACCT \ --account-key $STORAGEKEY \ --name "erp-data-share"
Włączanie punktu końcowego usługi
Teraz należy skonfigurować konto przechowywania tak, aby dostęp do niego miały tylko serwery baz danych, przypisując punkt końcowy przechowywania do podsieci Databases. Następnie należy dodać regułę zabezpieczeń do konta magazynu.
Aby przypisać punkt końcowy Microsoft.Storage do podsieci, uruchom następujące polecenie w usłudze Cloud Shell:
az network vnet subnet update \ --vnet-name ERP-servers \ --resource-group $rg \ --name Databases \ --service-endpoints Microsoft.Storage
Aby odmówić dostępu, zmień domyślną akcję na
Deny
, uruchamiając następujące polecenie w usłudze Cloud Shell. Po odmowie dostępu do sieci konto magazynu nie jest dostępne z żadnej sieci.az storage account update \ --resource-group $rg \ --name $STORAGEACCT \ --default-action Deny
Aby ograniczyć dostęp do konta magazynu, uruchom następujące polecenie w usłudze Cloud Shell. Domyślnie kota magazynu są otwarte, aby akceptować cały ruch. Chcesz, by do magazynu dostęp miał tylko ruch z podsieci Databases.
az storage account network-rule add \ --resource-group $rg \ --account-name $STORAGEACCT \ --vnet-name ERP-servers \ --subnet Databases
Testowanie dostępu do zasobów magazynu
W tym kroku połączysz się z obydwoma serwerami i sprawdzisz, czy tylko DataServer ma dostęp do udziału plików Azure na koncie magazynowym.
Aby zapisać publiczne adresy IP maszyny wirtualnej AppServer i maszyny wirtualnej DataServer do zmiennych, uruchom następujące polecenie w usłudze Cloud Shell:
APPSERVERIP="$(az vm list-ip-addresses \ --resource-group $rg \ --name AppServer \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)" DATASERVERIP="$(az vm list-ip-addresses \ --resource-group $rg \ --name DataServer \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)"
Aby połączyć się z maszyną wirtualną AppServer i spróbować zamontować zasób plików Azure, uruchom następujące polecenie w usłudze Cloud Shell:
ssh -t azureuser@$APPSERVERIP \ "mkdir azureshare; \ sudo mount -t cifs //$STORAGEACCT.file.core.windows.net/erp-data-share azureshare \ -o vers=3.0,username=$STORAGEACCT,password=$STORAGEKEY,dir_mode=0777,file_mode=0777,sec=ntlmssp; findmnt \ -t cifs; exit; bash"
Wprowadź hasło, które zostało użyte podczas tworzenia maszyny wirtualnej.
Odpowiedź powinna zawierać komunikat
mount error
. To połączenie nie jest dozwolone, ponieważ nie ma punktu końcowego usługi dla konta magazynowego w podsieci Applications.Aby nawiązać połączenie z maszyną wirtualną DataServer i spróbować zainstalować udział plików platformy Azure, uruchom następujące polecenie w usłudze Cloud Shell:
ssh -t azureuser@$DATASERVERIP \ "mkdir azureshare; \ sudo mount -t cifs //$STORAGEACCT.file.core.windows.net/erp-data-share azureshare \ -o vers=3.0,username=$STORAGEACCT,password=$STORAGEKEY,dir_mode=0777,file_mode=0777,sec=ntlmssp;findmnt \ -t cifs; exit; bash"
Wprowadź hasło, które zostało użyte podczas tworzenia maszyny wirtualnej.
Instalacja powinna zakończyć się powodzeniem, a odpowiedź powinna zawierać szczegóły punktu instalacji. Jest to dozwolone, ponieważ utworzono punkt końcowy usługi dla konta magazynowego w podsieci Databases.
Korzystając z punktu końcowego usługi magazynowania w podsieci Databases, zweryfikowałeś, że DataServer może uzyskiwać dostęp do magazynu danych. Potwierdziliście również, że AppServer nie może uzyskać dostępu do pamięci. Dzieje się tak, ponieważ ten serwer znajduje się w innej podsieci i nie ma dostępu do punktu końcowego usługi sieci wirtualnej.