Konfigurowanie kluczy zarządzanych przez klienta dla konta usługi Azure Batch przy użyciu usługi Azure Key Vault i tożsamości zarządzanej
Domyślnie usługa 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, do szyfrowania danych przechowywanych w usłudze 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 tożsamości zarządzanej przypisanej przez system 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 najlepiej sprawdza się w twoim rozwiązaniu. 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 witrynie Azure Portal podczas tworzenia kont usługi Batch wybierz pozycję System przypisany w typie tożsamości na karcie Zaawansowane .
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
.
Ta wartość jest potrzebna w celu udzielenia temu kontu usługi Batch dostępu do usługi 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 usługi 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 usługi 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 usługi 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 usługi Azure Batch upewnij się, że włączono zarówno funkcję usuwania nietrwałego, jak i ochrony przed przeczyszczeniem.
Dodawanie zasad dostępu do wystąpienia usługi Azure Key Vault
W witrynie Azure Portal po utworzeniu usługi 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.
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 pobrane 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.
Generowanie klucza w usłudze Azure Key Vault
W witrynie Azure Portal przejdź do wystąpienia usługi Key Vault w sekcji klucza , wybierz pozycję Generuj/Importuj. Wybierz typ klucza, aby mieć RSA
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.
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 Zawijanie klucza i Odpakuj klucz są zaznaczone.
Włączanie kluczy zarządzanych przez klienta na koncie usługi Batch
Teraz, gdy zostały spełnione wymagania wstępne, możesz włączyć klucze zarządzane przez klienta na koncie usługi Batch.
Azure Portal
W witrynie Azure Portal przejdź do strony konta 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.
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 usługi Key Vault zaktualizuj konto usługi Batch przy użyciu adresu URL w obszarze keyVaultProperties
parametru {Key Identifier}
. --encryption-key-source
Ustaw również 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.
string subscriptionId = "Your SubscriptionID";
string resourceGroupName = "Your ResourceGroup name";
var credential = new DefaultAzureCredential();
ArmClient _armClient = new ArmClient(credential);
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = _armClient.GetResourceGroupResource(resourceGroupResourceId);
var data = new BatchAccountCreateOrUpdateContent(AzureLocation.EastUS)
{
Encryption = new BatchAccountEncryptionConfiguration()
{
KeySource = BatchAccountKeySource.MicrosoftKeyVault,
KeyIdentifier = new Uri("Your Key Azure Resource Manager Resource ID"),
},
Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.UserAssigned)
{
UserAssignedIdentities = {
[new ResourceIdentifier("Your Identity Azure Resource Manager ResourceId")] = new UserAssignedIdentity(),
},
}
};
var lro = resourceGroupResource.GetBatchAccounts().CreateOrUpdate(WaitUntil.Completed, "Your BatchAccount name", data);
BatchAccountResource batchAccount = lro.Value;
Aktualizowanie wersji klucza zarządzanego przez klienta
Podczas tworzenia nowej wersji klucza zaktualizuj konto usługi Batch, aby używało nowej wersji. Wykonaj te kroki:
- Przejdź do konta usługi Batch w witrynie Azure Portal i wyświetl ustawienia szyfrowania.
- Wprowadź identyfikator URI dla nowej wersji klucza. Alternatywnie możesz wybrać usługę Key Vault i klucz ponownie, aby zaktualizować wersję.
- 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}
Napiwek
Klucze można automatycznie obracać, tworząc zasady rotacji kluczy w usłudze Key Vault. Podczas określania identyfikatora klucza dla konta usługi Batch użyj identyfikatora klucza bez wersji, aby włączyć autorotytację z prawidłowymi zasadami rotacji. Aby uzyskać więcej informacji, zobacz konfigurowanie rotacji kluczy w usłudze 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:
- Przejdź do konta usługi Batch i wyświetl ustawienia szyfrowania.
- Wprowadź identyfikator URI nowego klucza. Alternatywnie możesz wybrać usługę Key Vault i wybrać nowy klucz.
- 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? L.p. 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 i4096
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 usługi Key Vault? Ponieważ włączono ochronę przed przeczyszczaniem i usuwanie nietrwałe, można przywrócić istniejące klucze. Aby uzyskać więcej informacji, zobacz Odzyskiwanie usługi Azure Key Vault.
- Czy mogę wyłączyć klucze zarządzane przez klienta? W dowolnym momencie można ustawić typ szyfrowania konta usługi Batch na wartość "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 usłudze 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 może potrwać do 10 minut po przywróceniu dostępu.
- Chociaż 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 będą ponownie kolejkowane). 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? L.p. W przypadku pul konfiguracji usług Cloud Services (które są przestarzałe) żadne szyfrowanie nie jest stosowane 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 środowisk wysoce poufnych zalecamy włączenie tymczasowego szyfrowania dysków i unikanie 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? L.p. 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
- Dowiedz się więcej o najlepszych rozwiązaniach w zakresie zabezpieczeń w usłudze Azure Batch.
- Dowiedz się więcej o usłudze Azure Key Vault.