Szyfrowanie dysków systemu operacyjnego przy użyciu klucza zarządzanego przez klienta w usłudze Azure Red Hat OpenShift
Domyślnie dyski systemu operacyjnego maszyn wirtualnych w klastrze usługi Azure Red Hat OpenShift były szyfrowane przy użyciu automatycznie generowanych kluczy zarządzanych przez platformę Microsoft Azure. W celu zapewnienia dodatkowych zabezpieczeń klienci mogą szyfrować dyski systemu operacyjnego przy użyciu kluczy zarządzanych samodzielnie podczas wdrażania klastra Usługi Azure Red Hat OpenShift. Ta funkcja umożliwia większą kontrolę dzięki szyfrowaniu poufnych danych za pomocą kluczy zarządzanych przez klienta (CMK).
Klastry utworzone za pomocą kluczy zarządzanych przez klienta mają domyślną klasę magazynu włączoną z kluczami. W związku z tym oba dyski systemu operacyjnego i dyski danych są szyfrowane przez te klucze. Klucze zarządzane przez klienta są przechowywane w usłudze Azure Key Vault.
Aby uzyskać więcej informacji na temat tworzenia i obsługi kluczy przy użyciu usługi Azure Key Vault, zobacz Szyfrowanie po stronie serwera usługi Azure Disk Storage w dokumentacji platformy Microsoft Azure.
W przypadku szyfrowania opartego na hoście hosta dane przechowywane na hoście maszyn wirtualnych węzłów agenta usługi Azure Red Hat OpenShift są szyfrowane w stanie spoczynku i przepływy szyfrowane w usłudze Storage. Szyfrowanie oparte na hoście oznacza, że dyski tymczasowe są szyfrowane w spoczynku przy użyciu kluczy zarządzanych przez platformę.
Pamięć podręczna dysków systemu operacyjnego i danych jest szyfrowana w spoczynku przy użyciu kluczy zarządzanych przez platformę lub kluczy zarządzanych przez klienta, w zależności od typu szyfrowania ustawionego na tych dyskach. Domyślnie w przypadku korzystania z usługi Azure Red Hat OpenShift dyski systemu operacyjnego i danych są szyfrowane w spoczynku przy użyciu kluczy zarządzanych przez platformę, co oznacza, że pamięci podręczne dla tych dysków są domyślnie szyfrowane w spoczynku przy użyciu kluczy zarządzanych przez platformę.
Możesz określić własne klucze zarządzane, wykonując poniższe kroki szyfrowania. Pamięć podręczna dla tych dysków będzie również szyfrowana przy użyciu klucza określonego w tym kroku.
Ograniczenie
Jest to odpowiedzialność klientów za utrzymanie usługi Key Vault i zestawu szyfrowania dysków na platformie Azure. Niepowodzenie obsługi kluczy spowoduje uszkodzenie klastrów usługi Azure Red Hat OpenShift. Maszyny wirtualne przestaną działać, a w rezultacie cały klaster usługi Azure Red Hat OpenShift przestanie działać.
Zespół inżynierów usługi Azure Red Hat OpenShift nie może uzyskać dostępu do kluczy. W związku z tym nie mogą tworzyć kopii zapasowych, replikować ani pobierać kluczy.
Aby uzyskać szczegółowe informacje na temat używania zestawów szyfrowania dysków do zarządzania kluczami szyfrowania, zobacz Szyfrowanie po stronie serwera usługi Azure Disk Storage w dokumentacji platformy Microsoft Azure.
Wymagania wstępne
Zweryfikuj swoje uprawnienia. Musisz mieć uprawnienia współautora i administratora dostępu użytkowników lub uprawnienia właściciela.
Jeśli masz wiele subskrypcji platformy Azure, zarejestruj dostawców zasobów. Aby uzyskać szczegółowe informacje o rejestracji, zobacz Rejestrowanie dostawców zasobów.
W subskrypcji musi być włączona funkcja EncryptionAtHost. Możesz ją włączyć, uruchamiając polecenie:
az feature register --namespace Microsoft.Compute --name EncryptionAtHost
Możesz sprawdzić bieżący stan funkcji, uruchamiając polecenie:
az feature show --namespace Microsoft.Compute --name EncryptionAtHost
Tworzenie sieci wirtualnej zawierającej dwie puste podsieci
Utwórz sieć wirtualną zawierającą dwie puste podsieci. Jeśli masz istniejącą sieć wirtualną, która spełnia Twoje potrzeby, możesz pominąć ten krok. Aby zapoznać się z procedurą tworzenia sieci wirtualnej, zobacz Tworzenie sieci wirtualnej zawierającej dwie puste podsieci.
Tworzenie wystąpienia usługi Azure Key Vault
Do przechowywania kluczy należy użyć wystąpienia usługi Azure Key Vault. Utwórz nową usługę Key Vault z włączoną ochroną przeczyszczania. Następnie utwórz nowy klucz w usłudze Key Vault, aby przechowywać własny klucz niestandardowy.
- Ustaw więcej uprawnień środowiska:
export KEYVAULT_NAME=$USER-enckv export KEYVAULT_KEY_NAME=$USER-key export DISK_ENCRYPTION_SET_NAME=$USER-des
- Utwórz usługę Key Vault i klucz w usłudze Key Vault:
az keyvault create -n $KEYVAULT_NAME \ -g $RESOURCEGROUP \ -l $LOCATION \ --enable-purge-protection true az keyvault key create --vault-name $KEYVAULT_NAME \ -n $KEYVAULT_KEY_NAME \ --protection software KEYVAULT_ID=$(az keyvault show --name $KEYVAULT_NAME --query "[id]" -o tsv) KEYVAULT_KEY_URL=$(az keyvault key show --vault-name $KEYVAULT_NAME \ --name $KEYVAULT_KEY_NAME \ --query "[key.kid]" -o tsv)
Tworzenie zestawu usługi Azure Disk Encryption
Zestaw usługi Azure Disk Encryption jest używany jako punkt odniesienia dla dysków w klastrach usługi Azure Red Hat OpenShift. Jest ona połączona z usługą Azure Key Vault utworzoną w poprzednim kroku i ściąga klucze zarządzane przez klienta z tej lokalizacji.
az disk-encryption-set create -n $DISK_ENCRYPTION_SET_NAME \
-l $LOCATION \
-g $RESOURCEGROUP \
--source-vault $KEYVAULT_ID \
--key-url $KEYVAULT_KEY_URL
DES_ID=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g $RESOURCEGROUP --query 'id' -o tsv)
DES_IDENTITY=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME \
-g $RESOURCEGROUP \
--query "[identity.principalId]" \
-o tsv)
Udzielanie uprawnień dla zestawu szyfrowania dysków w celu uzyskania dostępu do usługi Key Vault
Użyj zestawu szyfrowania dysków utworzonego w poprzednim kroku i przyznaj uprawnienie dla zestawu szyfrowania dysków, aby uzyskać dostęp do usługi Azure Key Vault i korzystać z niego.
az keyvault set-policy -n $KEYVAULT_NAME \
-g $RESOURCEGROUP \
--object-id $DES_IDENTITY \
--key-permissions wrapkey unwrapkey get
Tworzenie klastra usługi Azure Red Hat OpenShift
Utwórz klaster usługi Azure Red Hat OpenShift, aby używać kluczy zarządzanych przez klienta.
Uwaga
Włączenie klucza zarządzanego przez klienta w istniejących klastrach usługi ARO jest możliwe tylko w przypadku węzłów roboczych, a nie węzłów głównych. Można to osiągnąć przy użyciu interfejsu API maszyny za pośrednictwem CRS zestawu maszyn. Aby uzyskać więcej informacji, zobacz Włączanie kluczy szyfrowania zarządzanych przez klienta dla zestawu maszyn i Modyfikowanie zestawu maszyn obliczeniowych.
az aro create --resource-group $RESOURCEGROUP \
--name $CLUSTER \
--vnet aro-vnet \
--master-subnet master-subnet \
--worker-subnet worker-subnet \
--disk-encryption-set $DES_ID
Po utworzeniu klastra Usługi Azure Red Hat OpenShift wszystkie maszyny wirtualne są szyfrowane przy użyciu kluczy szyfrowania zarządzanych przez klienta.
Aby sprawdzić, czy klucze zostały prawidłowo skonfigurowane, uruchom następujące polecenia:
- Pobierz nazwę grupy zasobów klastra, w której znajdują się maszyny wirtualne, dyski klastra itd.:
CLUSTERRESOURCEGROUP=$(az aro show --resource-group $RESOURCEGROUP --name $CLUSTER --query 'clusterProfile.resourceGroupId' -o tsv | cut -d '/' -f 5)
- Sprawdź, czy dyski mają dołączony prawidłowy zestaw szyfrowania dysków:
Poleaz disk list -g $CLUSTERRESOURCEGROUP --query '[].encryption'
diskEncryptionSetId
w danych wyjściowych musi wskazywać zestaw szyfrowania dysków określony podczas tworzenia klastra Usługi Azure Red Hat OpenShift.