Konfigurowanie kluczy zarządzanych przez klienta dla konta Azure Batch przy użyciu usługi Azure Key Vault i tożsamości zarządzanej

Domyślnie Azure Batch używa kluczy zarządzanych przez platformę do szyfrowania wszystkich danych klienta przechowywanych w usłudze Azure Batch, takich jak certyfikaty, metadane zadania/zadania. Opcjonalnie możesz użyć własnych kluczy, czyli kluczy zarządzanych przez klienta, aby szyfrować dane przechowywane w Azure Batch.

Podane klucze muszą być generowane w usłudze Azure Key Vault i muszą być dostępne przy użyciu tożsamości zarządzanych dla zasobów platformy Azure.

Istnieją dwa typy tożsamości zarządzanych: przypisane przez system i przypisane przez użytkownika.

Możesz utworzyć konto usługi Batch przy użyciu przypisanej przez system tożsamości zarządzanej lub utworzyć oddzielną tożsamość zarządzaną przypisaną przez użytkownika, która ma dostęp do kluczy zarządzanych przez klienta. Zapoznaj się z tabelą porównawczą , aby zrozumieć różnice i rozważyć, która opcja działa najlepiej dla twojego rozwiązania. Jeśli na przykład chcesz użyć tej samej tożsamości zarządzanej w celu uzyskania dostępu do wielu zasobów platformy Azure, wymagana jest tożsamość zarządzana przypisana przez użytkownika. W przeciwnym razie tożsamość zarządzana przypisana przez system skojarzona z kontem usługi Batch może być wystarczająca. Użycie tożsamości zarządzanej przypisanej przez użytkownika umożliwia również wymuszanie kluczy zarządzanych przez klienta podczas tworzenia konta usługi Batch, jak pokazano poniżej.

Tworzenie konta usługi Batch z przypisaną przez system tożsamością zarządzaną

Jeśli nie potrzebujesz oddzielnej tożsamości zarządzanej przypisanej przez użytkownika, możesz włączyć tożsamość zarządzaną przypisaną przez system podczas tworzenia konta usługi Batch.

Ważne

Tożsamość zarządzana przypisana przez system utworzona dla konta usługi Batch na potrzeby szyfrowania danych klienta zgodnie z opisem w tym dokumencie nie może być używana jako tożsamość zarządzana przypisana przez użytkownika w puli usługi Batch. Jeśli chcesz użyć tej samej tożsamości zarządzanej zarówno na koncie usługi Batch, jak i w puli usługi Batch, użyj zamiast tego wspólnej tożsamości zarządzanej przypisanej przez użytkownika.

Azure Portal

W Azure Portal podczas tworzenia kont usługi Batch wybierz pozycję System przypisany w typie tożsamości na karcie Zaawansowane.

Zrzut ekranu przedstawiający nowe konto usługi Batch z przypisanym przez system typem tożsamości.

Po utworzeniu konta można znaleźć unikatowy identyfikator GUID w polu Identyfikator podmiotu zabezpieczeń tożsamości w sekcji Właściwości . W polu Typ tożsamości zostanie wyświetlona wartość System assigned.

Zrzut ekranu przedstawiający unikatowy identyfikator GUID w polu Identyfikator podmiotu zabezpieczeń tożsamości.

Ta wartość jest potrzebna w celu udzielenia temu kontu usługi Batch dostępu do Key Vault.

Interfejs wiersza polecenia platformy Azure

Podczas tworzenia nowego konta usługi Batch określ SystemAssigned parametr --identity .

resourceGroupName='myResourceGroup'
accountName='mybatchaccount'

az batch account create \
    --name $accountName \
    --resource-group $resourceGroupName \
    --locations regionName='West US 2' \
    --identity 'SystemAssigned'

Po utworzeniu konta można sprawdzić, czy tożsamość zarządzana przypisana przez system została włączona na tym koncie. Pamiętaj, aby zanotować wartość PrincipalId, ponieważ ta wartość jest potrzebna do udzielenia temu kontu usługi Batch dostępu do Key Vault.

az batch account show \
    --name $accountName \
    --resource-group $resourceGroupName \
    --query identity

Uwaga

Tożsamość zarządzana przypisana przez system utworzona na koncie usługi Batch jest używana tylko do pobierania kluczy zarządzanych przez klienta z Key Vault. Ta tożsamość nie jest dostępna w pulach usługi Batch. Aby użyć tożsamości zarządzanej przypisanej przez użytkownika w puli, zobacz Konfigurowanie tożsamości zarządzanych w pulach usługi Batch.

Tworzenie tożsamości zarządzanej przypisanej przez użytkownika

Jeśli wolisz, możesz utworzyć tożsamość zarządzaną przypisaną przez użytkownika , która może służyć do uzyskiwania dostępu do kluczy zarządzanych przez klienta.

Aby uzyskać dostęp do Key Vault, potrzebna jest wartość Identyfikator klienta tej tożsamości.

Konfigurowanie wystąpienia usługi Azure Key Vault

Usługa Azure Key Vault, w której są generowane klucze, musi zostać utworzona w tej samej dzierżawie co konto usługi Batch. Nie musi znajdować się w tej samej grupie zasobów, a nawet w tej samej subskrypcji.

Tworzenie usługi Azure Key Vault

Podczas tworzenia wystąpienia usługi Azure Key Vault z kluczami zarządzanymi przez klienta dla Azure Batch upewnij się, że włączono zarówno funkcję usuwania nietrwałego, jak i ochrony przed przeczyszczaniami.

Zrzut ekranu przedstawiający ekran tworzenia Key Vault.

Dodawanie zasad dostępu do wystąpienia usługi Azure Key Vault

W Azure Portal po utworzeniu Key Vault w obszarze Zasady dostępu w obszarze Ustawienie dodaj dostęp do konta usługi Batch przy użyciu tożsamości zarządzanej. W obszarze Uprawnienia klucza wybierz pozycję Pobierz, Zawijaj klucz i Odpakuj klucz.

Zrzut ekranu przedstawiający ekran Dodawanie zasad dostępu.

W polu Wybierz w obszarze Podmiot zabezpieczeń wypełnij jedną z następujących czynności:

  • W przypadku tożsamości zarządzanej przypisanej przez system: wprowadź principalId wcześniej pobraną wartość lub nazwę konta usługi Batch.
  • W przypadku tożsamości zarządzanej przypisanej przez użytkownika: wprowadź wcześniej pobrany identyfikator klienta lub nazwę tożsamości zarządzanej przypisanej przez użytkownika.

Zrzut ekranu przedstawiający ekran Podmiot zabezpieczeń.

Generowanie klucza w usłudze Azure Key Vault

W Azure Portal przejdź do wystąpienia Key Vault w sekcji klucza, wybierz pozycję Generuj/Importuj. Wybierz typ klucza , który ma być RSA i rozmiar klucza RSA , aby mieć co najmniej 2048 bity. EC Typy kluczy nie są obecnie obsługiwane jako klucz zarządzany przez klienta na koncie usługi Batch.

Tworzenie klucza

Po utworzeniu klucza kliknij nowo utworzony klucz i bieżącą wersję, skopiuj identyfikator klucza w sekcji właściwości . Upewnij się, że w obszarze Dozwolone operacje oba opcje Opakuj klucz i Odpakuj klucz są zaznaczone.

Włączanie kluczy zarządzanych przez klienta na koncie usługi Batch

Po spełnieniu wymagań wstępnych można włączyć klucze zarządzane przez klienta na koncie usługi Batch.

Azure Portal

W Azure Portal przejdź do strony konto usługi Batch. W sekcji Szyfrowanie włącz klucz zarządzany przez klienta. Możesz bezpośrednio użyć identyfikatora klucza lub wybrać magazyn kluczy, a następnie kliknąć pozycję Wybierz magazyn kluczy i klucz.

Zrzut ekranu przedstawiający sekcję Szyfrowanie i opcję włączania klucza zarządzanego przez klienta

Interfejs wiersza polecenia platformy Azure

Po utworzeniu konta usługi Batch przy użyciu przypisanej przez system tożsamości zarządzanej i udzieleniu dostępu do Key Vault zaktualizuj konto usługi Batch przy użyciu adresu URL w parametrze {Key Identifier}keyVaultProperties . Ustaw również wartość --encryption-key-source jako Microsoft.KeyVault.

az batch account set \
    --name $accountName \
    --resource-group $resourceGroupName \
    --encryption-key-source Microsoft.KeyVault \
    --encryption-key-identifier {YourKeyIdentifier}

Tworzenie konta usługi Batch z tożsamością zarządzaną przypisaną przez użytkownika i kluczami zarządzanymi przez klienta

Na przykład przy użyciu klienta .NET zarządzania usługą Batch można utworzyć konto usługi Batch z przypisaną przez użytkownika tożsamością zarządzaną i kluczami zarządzanymi przez klienta.

EncryptionProperties encryptionProperties = new EncryptionProperties()
{
    KeySource = KeySource.MicrosoftKeyVault,
    KeyVaultProperties = new KeyVaultProperties()
    {
        KeyIdentifier = "Your Key Azure Resource Manager Resource ID"
    }
};

BatchAccountIdentity identity = new BatchAccountIdentity()
{
    Type = ResourceIdentityType.UserAssigned,
    UserAssignedIdentities = new Dictionary<string, BatchAccountIdentityUserAssignedIdentitiesValue>
    {
            ["Your Identity Azure Resource Manager ResourceId"] = new BatchAccountIdentityUserAssignedIdentitiesValue()
    }
};
var parameters = new BatchAccountCreateParameters(TestConfiguration.ManagementRegion, encryption:encryptionProperties, identity: identity);

var account = await batchManagementClient.Account.CreateAsync("MyResourceGroup",
    "mynewaccount", parameters);

Aktualizowanie wersji klucza zarządzanego przez klienta

Podczas tworzenia nowej wersji klucza zaktualizuj konto usługi Batch, aby używało nowej wersji. Wykonaj następujące kroki:

  1. Przejdź do konta usługi Batch w Azure Portal i wyświetl ustawienia szyfrowania.
  2. Wprowadź identyfikator URI dla nowej wersji klucza. Alternatywnie możesz wybrać Key Vault i klucz ponownie, aby zaktualizować wersję.
  3. Zapisz zmiany.

Możesz również użyć interfejsu wiersza polecenia platformy Azure, aby zaktualizować wersję.

az batch account set \
    --name $accountName \
    --resource-group $resourceGroupName \
    --encryption-key-identifier {YourKeyIdentifierWithNewVersion}

Porada

Klucze można automatycznie obracać, tworząc zasady rotacji kluczy w Key Vault. Podczas określania identyfikatora klucza dla konta usługi Batch użyj identyfikatora klucza bez wersji, aby włączyć autorotację z prawidłowymi zasadami rotacji. Aby uzyskać więcej informacji, zobacz jak skonfigurować rotację kluczy w Key Vault.

Używanie innego klucza do szyfrowania w usłudze Batch

Aby zmienić klucz używany do szyfrowania usługi Batch, wykonaj następujące kroki:

  1. Przejdź do konta usługi Batch i wyświetl ustawienia szyfrowania.
  2. Wprowadź identyfikator URI nowego klucza. Alternatywnie możesz wybrać Key Vault i wybrać nowy klucz.
  3. Zapisz zmiany.

Możesz również użyć interfejsu wiersza polecenia platformy Azure, aby użyć innego klucza.

az batch account set \
    --name $accountName \
    --resource-group $resourceGroupName \
    --encryption-key-identifier {YourNewKeyIdentifier}

Często zadawane pytania

  • Czy klucze zarządzane przez klienta są obsługiwane dla istniejących kont usługi Batch? Nie. Klucze zarządzane przez klienta są obsługiwane tylko w przypadku nowych kont usługi Batch.
  • Czy mogę wybrać rozmiary kluczy RSA większe niż 2048 bitów? Tak, obsługiwane są również rozmiary 3072 kluczy RSA i 4096 bitów.
  • Jakie operacje są dostępne po odwołaniu klucza zarządzanego przez klienta? Jedyną dozwoloną operacją jest usunięcie konta, jeśli usługa Batch utraci dostęp do klucza zarządzanego przez klienta.
  • Jak przywrócić dostęp do konta usługi Batch, jeśli przypadkowo usunąłem klucz Key Vault? Ponieważ ochrona przed przeczyszczeniem i usuwanie nietrwałe są włączone, można przywrócić istniejące klucze. Aby uzyskać więcej informacji, zobacz Odzyskiwanie Key Vault platformy Azure.
  • Czy mogę wyłączyć klucze zarządzane przez klienta? W dowolnym momencie można ustawić typ szyfrowania konta usługi Batch na "Klucz zarządzany przez firmę Microsoft". Możesz usunąć lub zmienić klucz później.
  • Jak mogę obrócić klucze? Klucze zarządzane przez klienta nie są automatycznie obracane, chyba że klucz jest bez wersji z odpowiednimi zasadami rotacji kluczy ustawionymi w Key Vault. Aby ręcznie obrócić klucz, zaktualizuj identyfikator klucza skojarzony z kontem.
  • Po przywróceniu dostępu jak długo potrwa ponowne działanie konta usługi Batch? Ponowne udostępnienie konta po przywróceniu dostępu może potrwać do 10 minut.
  • Gdy konto usługi Batch jest niedostępne, co się stanie z moimi zasobami? Wszystkie pule aktywne po utracie dostępu usługi Batch do klucza zarządzanego przez klienta będą nadal działać. Jednak węzły w tych pulach zostaną przekształcone w stan niedostępny, a zadania przestaną działać (i zostaną ponownie wprowadzone do kolejki). Po przywróceniu dostępu węzły staną się ponownie dostępne, a zadania zostaną uruchomione ponownie.
  • Czy ten mechanizm szyfrowania ma zastosowanie do dysków maszyn wirtualnych w puli usługi Batch? Nie. W przypadku pul konfiguracji Cloud Services (które są przestarzałe), nie zastosowano szyfrowania dla systemu operacyjnego i dysku tymczasowego. W przypadku pul konfiguracji maszyny wirtualnej system operacyjny i wszystkie określone dyski danych są domyślnie szyfrowane przy użyciu klucza zarządzanego przez platformę Microsoft. Obecnie nie można określić własnego klucza dla tych dysków. Aby zaszyfrować dysk tymczasowy maszyn wirtualnych dla puli usługi Batch przy użyciu klucza zarządzanego przez platformę Microsoft, należy włączyć właściwość diskEncryptionConfiguration w puli konfiguracji maszyny wirtualnej . W przypadku wysoce poufnych środowisk zalecamy włączenie tymczasowego szyfrowania dysków i uniknięcie przechowywania poufnych danych na dyskach systemu operacyjnego i danych. Aby uzyskać więcej informacji, zobacz Tworzenie puli z włączonym szyfrowaniem dysków
  • Czy tożsamość zarządzana przypisana przez system na koncie usługi Batch jest dostępna w węzłach obliczeniowych? Nie. Tożsamość zarządzana przypisana przez system jest obecnie używana tylko do uzyskiwania dostępu do usługi Azure Key Vault dla klucza zarządzanego przez klienta. Aby użyć tożsamości zarządzanej przypisanej przez użytkownika w węzłach obliczeniowych, zobacz Konfigurowanie tożsamości zarządzanych w pulach usługi Batch.

Następne kroki