Samouczek: wdrażanie modułów HSM w istniejącej sieci wirtualnej przy użyciu programu PowerShell

Usługa dedykowanego modułu HSM platformy Azure udostępnia urządzenie fizyczne do wyłącznego użytku przez klienta. Daje ono pełną kontrolę administracyjną, ale przenosi na klienta pełną odpowiedzialność za zarządzanie. Ze względu na udostępnienie sprzętu fizycznego firma Microsoft musi kontrolować, w jaki sposób te urządzenia są przydzielane w celu zapewnienia efektywnego zarządzania pojemnością. W związku z tym w ramach subskrypcji platformy Azure dedykowana usługa HSM nie jest zwykle widoczna na potrzeby aprowizacji zasobów. Każdy klient platformy Azure wymagający dostępu do dedykowanej usługi HSM musi najpierw skontaktować się z kierownictwem konta Microsoft, aby zażądać rejestracji dedykowanego modułu HSM. Aprowizowanie jest możliwe tylko po pomyślnym zakończeniu tego procesu.

Celem tego samouczka jest przedstawienie typowego procesu aprowizacji, w którym:

  • klient ma już sieć wirtualną,
  • klient ma maszynę wirtualną,
  • klient potrzebuje dodać zasoby modułu HSM do tego istniejącego środowiska.

Typowa, wysoka dostępność i architektura wdrażania w wielu regionach jest następująca:

Diagram ilustrujący wdrożenie w wielu regionach.

Ten samouczek koncentruje się na połączeniu modułów HSM i wymaganej bramy usługi ExpressRoute (zobacz podsieć 1 powyżej) zintegrowanej z istniejącą siecią wirtualną (zobacz sieć wirtualna 1 powyżej). Wszystkie inne zasoby to standardowe zasoby platformy Azure. Ten sam proces integracji może zostać użyty dla modułów HSM w podsieci 4 w sieci wirtualnej 3 powyżej.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Wymagania wstępne

Dedykowany moduł HSM platformy Azure nie jest obecnie dostępny w witrynie Azure Portal, dlatego wszystkie interakcje z usługą są wykonywane za pośrednictwem wiersza polecenia lub programu PowerShell. W tym samouczku jest używany program PowerShell w usłudze Azure Cloud Shell. Jeśli dopiero zaczynasz korzystać z programu PowerShell, postępuj zgodnie z instrukcjami wprowadzającymi tutaj: Wprowadzenie do programu Azure PowerShell.

Założenia:

  • Masz przypisanego Menedżera kont Microsoft i spełniasz wymagania pieniężne w wysokości pięciu milionów USD (5 mln USD) lub większego całkowitego zatwierdzonego przychodu platformy Azure rocznie, aby kwalifikować się do dołączania i korzystania z dedykowanego modułu HSM platformy Azure.
  • Przeprowadzono proces rejestracji dedykowanego modułu HSM platformy Azure i zatwierdzono go do korzystania z usługi. Jeśli tak nie jest, skontaktuj się z przedstawicielem firmy Microsoft, aby uzyskać szczegółowe informacje.
  • Utworzono grupę zasobów dla tych zasobów i dla nowych zasobów wdrożonych w tym samouczku.
  • Utworzono już niezbędną sieć wirtualną, podsieć i maszyny wirtualne, a teraz chcesz zintegrować 2 moduły HSM z tym wdrożeniem.

W poniższych instrukcjach założono, że masz już dostęp do witryny Azure Portal i otwarto usługę Cloud Shell (wybierz pozycję ">_" w prawym górnym rogu portalu).

Aprowizowanie dedykowanego modułu HSM

Aprowizowanie modułów HSM i integrowanie z istniejącą siecią wirtualną za pośrednictwem bramy usługi ExpressRoute jest weryfikowane przy użyciu narzędzia wiersza polecenia SSH w celu zapewnienia dostępności i podstawowej dostępności urządzenia HSM na potrzeby dalszych działań konfiguracyjnych. Następujące polecenia użyją szablonu usługi Resource Manager do tworzenia zasobów modułu HSM i skojarzonych zasobów sieciowych.

Weryfikowanie rejestracji funkcji

Jak wspomniano, każde działanie aprowizacji wymaga zarejestrowania dedykowanej usługi HSM dla Twojej subskrypcji. Aby to sprawdzić, uruchom następujące polecenie programu PowerShell w usłudze Cloud Shell w witrynie Azure Portal.

Get-AzProviderFeature -ProviderNamespace Microsoft.HardwareSecurityModules -FeatureName AzureDedicatedHsm

Polecenie powinno zwrócić stan "Zarejestrowane", zanim przejdziesz dalej. Jeśli nie zarejestrowano Cię w tej usłudze, skontaktuj się z przedstawicielem konta Microsoft.

Stan subskrypcji.

Tworzenie zasobów modułu HSM

Urządzenie HSM jest aprowidowane w sieci wirtualnej klienta, co wymaga podsieci. Zależność modułu HSM umożliwiająca komunikację między siecią wirtualną a urządzeniem fizycznym jest bramą usługi ExpressRoute, a na koniec maszyna wirtualna jest wymagana do uzyskania dostępu do urządzenia HSM przy użyciu oprogramowania klienckiego firmy Thales.

Zasób dedykowanego modułu HSM można utworzyć przy użyciu szablonu usługi ARM na podstawie poniższego przykładu. Należy zaktualizować parametry, zastępując wiersze zawierające ciąg "value":"" preferowanymi nazwami zasobów.

  • namingInfix Prefiks nazw zasobów modułu HSM
  • ExistingVirtualNetworkName Nazwa sieci wirtualnej używanej dla modułów HSM
  • DedicatedHsmResourceName1 Nazwa zasobu modułu HSM w zasobach sprzętowych 1 centrum danych
  • DedicatedHsmResourceName2 Nazwa zasobu modułu HSM w zasobach sprzętowych 2 centrum danych
  • hsmSubnetRange Zakres adresów IP podsieci dla modułów HSM
  • ERSubnetRange Zakres adresów IP podsieci dla bramy sieci wirtualnej

Przykład tych zmian jest następujący:

{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "namingInfix": {
      "value": "MyHSM"
    },
    "ExistingVirtualNetworkName": {
      "value": "MyHSM-vnet"
    },
    "DedicatedHsmResourceName1": {
      "value": "HSM1"
    },
    "DedicatedHsmResourceName2": {
      "value": "HSM2"
    },
    "hsmSubnetRange": {
      "value": "10.0.2.0/24"
    },
    "ERSubnetRange": {
      "value": "10.0.255.0/26"
    },
  }
}

Skojarzony plik szablonu usługi Resource Manager tworzy sześć zasobów z następującymi informacjami:

  • Podsieć dla modułów HSM w określonej sieci wirtualnej
  • Podsieć dla bramy sieci wirtualnej
  • Brama sieci wirtualnej łącząca sieć wirtualną z urządzeniami HSM
  • Publiczny adres IP bramy
  • Moduł HSM w zasobach sprzętowych 1
  • Moduł HSM w zasobach sprzętowych 2

Po ustawieniu wartości parametrów pliki należy przekazać do udziału plików usługi Cloud Shell w witrynie Azure Portal do użycia. W witrynie Azure Portal wybierz symbol ">_" Cloud Shell w prawym górnym rogu, co sprawia, że dolna część ekranu jest środowiskiem poleceń. Opcje to BASH i PowerShell i należy wybrać powłokę BASH, jeśli nie jest jeszcze ustawiona.

Wybierz opcję przekazywania/pobierania na pasku narzędzi, aby przekazać pliki szablonu i parametrów do udziału plików:

Udział plików.

Po przekazaniu plików możesz przystąpić do tworzenia zasobów.

Przed utworzeniem nowych zasobów modułu HSM wymagane są pewne zasoby wstępne. Należy mieć sieć wirtualną z zakresami adresów na potrzeby obliczeń, modułów HSM i bramy. Następujące polecenia przedstawiają przykładowy sposób tworzenia takiej sieci wirtualnej.

$compute = New-AzVirtualNetworkSubnetConfig `
  -Name compute `
  -AddressPrefix 10.2.0.0/24
$delegation = New-AzDelegation `
  -Name "myDelegation" `
  -ServiceName "Microsoft.HardwareSecurityModules/dedicatedHSMs"

$hsmsubnet = New-AzVirtualNetworkSubnetConfig ` 
  -Name hsmsubnet ` 
  -AddressPrefix 10.2.1.0/24 ` 
  -Delegation $delegation 


$gwsubnet= New-AzVirtualNetworkSubnetConfig `
  -Name GatewaySubnet `
  -AddressPrefix 10.2.255.0/26


New-AzVirtualNetwork `
  -Name myHSM-vnet `
  -ResourceGroupName myRG `
  -Location westus `
  -AddressPrefix 10.2.0.0/16 `
  -Subnet $compute, $hsmsubnet, $gwsubnet

Uwaga

Najważniejszą konfiguracją dla sieci wirtualnej jest to, że podsieć urządzenia HSM musi mieć delegowanie ustawione na "Microsoft.HardwareSecurityModules/dedicatedHSMs". Aprowizacja modułu HSM nie będzie możliwa bez tego ustawienia.

Po wprowadzeniu wszystkich wymagań wstępnych i zaktualizowaniu szablonu usługi Resource Manager przy użyciu unikatowych nazw (co najmniej nazwy grupy zasobów), uruchom następujące polecenie:


New-AzResourceGroupDeployment -ResourceGroupName myRG `
     -TemplateFile .\Deploy-2HSM-toVNET-Template.json `
     -TemplateParameterFile .\Deploy-2HSM-toVNET-Params.json `
     -Name HSMdeploy -Verbose

Wykonywanie tego polecenia powinno zająć około 20 minut. Użyta opcja "-verbose" zapewni, że stan jest stale wyświetlany.

Wdrażanie decydowanego modułu HSM.

Po pomyślnym zakończeniu wyświetlanym przez parametr "provisioningState": "Succeeded" (Powodzenie) możesz zalogować się do istniejącej maszyny wirtualnej i użyć protokołu SSH, aby zapewnić dostępność urządzenia HSM.

Weryfikowanie wdrożenia

Aby zweryfikować, czy urządzenia zostały zaaprowizowane, i wyświetlić atrybuty urządzeń, uruchom następujący zestaw poleceń. Upewnij się, że grupa zasobów została odpowiednio ustawiona, a nazwa zasobu jest dokładnie taka sama jak w pliku parametrów.


$subid = (Get-AzContext).Subscription.Id
$resourceGroupName = "myRG"
$resourceName = "HSM1"  
Get-AzResource -Resourceid /subscriptions/$subId/resourceGroups/$resourceGroupName/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/$resourceName

Stan aprowizacji.

Teraz będzie można również zobaczyć zasoby przy użyciu Eksploratora zasobów platformy Azure. Po przejściu do eksploratora rozwiń węzeł "subskrypcje" po lewej stronie, rozwiń konkretną subskrypcję dedykowanego modułu HSM, rozwiń węzeł "grupy zasobów", rozwiń użytą grupę zasobów, a na koniec wybierz element "resources".

Testowanie wdrożenia

Testowanie wdrożenia to przypadek nawiązywania połączenia z maszyną wirtualną, która może uzyskiwać dostęp do modułów HSM, a następnie łączyć się bezpośrednio z urządzeniem HSM. Za pomocą tych akcji można potwierdzić, czy moduł HSM jest osiągalny. Narzędzie SSH jest używane do nawiązywania połączenia z maszyną wirtualną. Polecenie będzie podobne do poniższego, ale zostanie użyta nazwa administratora i nazwa serwera DNS określona w parametrze.

ssh adminuser@hsmlinuxvm.westus.cloudapp.azure.com

Używane hasło to hasło z pliku parametrów. Po zalogowaniu się do maszyny wirtualnej z systemem Linux możesz zalogować się do modułu HSM przy użyciu prywatnego adresu IP znajdującego się w portalu dla prefiksu>zasobu <hsm_vnic.


(Get-AzResource -ResourceGroupName myRG -Name HSMdeploy -ExpandProperties).Properties.networkProfile.networkInterfaces.privateIpAddress

Gdy będziesz mieć adres IP, uruchom następujące polecenie:

ssh tenantadmin@<ip address of HSM>

W przypadku pomyślnego wyświetlenia monitu o podanie hasła. Domyślne hasło to PASSWORD. Moduł HSM wyświetli monit o zmianę hasła. Ustaw silne hasło i skorzystaj z dowolnego mechanizmu, który jest preferowany w Twojej organizacji do przechowywania hasła i zapobiegania jego utracie.

Ważne

Jeśli hasło zostanie utracone, konieczne będzie zresetowanie modułu HSM, co spowoduje utratę kluczy.

Po nawiązaniu połączenia z urządzeniem HSM przy użyciu protokołu SSH uruchom następujące polecenie, aby upewnić się, że moduł HSM działa.

hsm show

Dane wyjściowe powinny wyglądać podobnie do tych na poniższym obrazie:

Zrzut ekranu przedstawiający dane wyjściowe polecenia show modułu HSM.

W tym momencie przydzielono wszystkie zasoby na potrzeby wdrożenia o wysokiej dostępności, dwóch modułów HSM oraz zweryfikowanego dostępu i stanu operacyjnego. Dalsze czynności związane z konfiguracją lub testowaniem obejmują dodatkową pracę z samym modułem HSM. W tym celu należy postępować zgodnie z instrukcjami w przewodniku administracyjnym modułu HSM Thales Luna 7, aby zainicjować moduł HSM i utworzyć partycje. Cała dokumentacja i oprogramowanie są dostępne bezpośrednio z firmy Thales do pobrania po zarejestrowaniu się w portalu pomocy technicznej klienta firmy Thales i mają identyfikator klienta. Pobierz oprogramowanie klienckie w wersji 7.2, aby uzyskać wszystkie wymagane składniki.

Usuwanie lub czyszczenie zasobów

Jeśli skończysz z tylko urządzeniem HSM, można go usunąć jako zasób i wrócić do bezpłatnej puli. Poważnym problemem w takim przypadku są jakiekolwiek poufne dane klienta znajdujące się na urządzeniu. Najlepszym sposobem na "zerowanie" urządzenia jest trzykrotne pobranie hasła administratora modułu HSM (uwaga: nie jest to administrator urządzenia, jest to rzeczywisty administrator HSM). Jako środek bezpieczeństwa w celu ochrony materiału klucza nie można usunąć urządzenia jako zasobu platformy Azure, dopóki nie będzie w stanie zerowanym.

Uwaga

Jeśli masz problem z konfiguracją urządzenia firmy Thales, skontaktuj się z pomocą techniczną firmy Thales.

Jeśli chcesz usunąć zasób HSM na platformie Azure, możesz użyć następującego polecenia zastępującego zmienne "$" unikatowymi parametrami:


$subid = (Get-AzContext).Subscription.Id
$resourceGroupName = "myRG" 
$resourceName = "HSMdeploy"  
Remove-AzResource -Resourceid /subscriptions/$subId/resourceGroups/$resourceGroupName/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/$resourceName 

Następne kroki

Po wykonaniu kroków w tym samouczku zasoby dedykowanego modułu HSM zostaną zaaprowizowane i będą dostępne w Twojej sieci wirtualnej. Teraz jesteś w stanie uzupełnić to wdrożenie większą ilością zasobów zgodnie z wymaganiami preferowanej architektury wdrażania. Więcej informacji na temat ułatwiania planowania wdrożenia możesz znaleźć w dokumentach z pojęciami. Zalecany jest projekt z dwoma modułami HSM w regionie podstawowym służącym do zapewnienia dostępności na poziomie regału sprzętowego i dwoma modułami HSM w regionie pomocniczym służącym do zapewnienia dostępności regionalnej. Plik szablonu użyty w tym samouczku może zostać w łatwy sposób użyty jako podstawa dla wdrożenia z dwoma modułami HSM, ale konieczne jest zmodyfikowanie jego parametrów w celu spełnienia wymagań.