Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Som standard använder Microsoft Azure automatiskt genererade nycklar för att kryptera OS-diskarna för de virtuella datorerna i ett Azure Red Hat OpenShift kluster. För extra säkerhet kan du kryptera OS-diskarna med hjälp av självhanterade nycklar när du distribuerar ett kluster. Den här funktionen ger dig mer kontroll genom att kryptera konfidentiella data med kundhanterade nycklar.
Kluster med kundhanterade nycklar har en standardlagringsklass aktiverad med sina nycklar. Därför krypterar dessa nycklar både OS-diskar och datadiskar. Azure Key Vault lagrar kundhanterade nycklar. Mer information om hur du använder Key Vault för att skapa och underhålla nycklar finns i Azure Key Vault grundläggande begrepp.
Med värdbaserad kryptering krypteras data som lagras på den virtuella datorns värd för dina virtuella Azure Red Hat OpenShift noddatorer i vila. Dessa data flödar krypterade till Azure Storage. Värdbaserad kryptering innebär att temporära diskar krypteras i vila med hjälp av plattformshanterade nycklar.
Cacheminnet för OS- och datadiskar krypteras i vila med antingen plattformshanterade nycklar eller kundhanterade nycklar. Typen av nycklar beror på vilken krypteringstyp du anger på dessa diskar. När du använder Azure Red Hat OpenShift krypteras operativsystem och datadiskar som standard i vila med plattformshanterade nycklar. Den här standardinställningen innebär att cacheminnena för dessa diskar också som standard krypteras i vila med plattformshanterade nycklar.
Du kan ange dina egna hanterade nycklar genom att följa krypteringsstegen i nästa avsnitt. De nycklar som du anger i det här steget krypterar också cachen för dessa diskar.
Begränsning
Kunder måste underhålla nyckelvalvet och diskkrypteringsuppsättningen i Azure. Det gick inte att underhålla nycklarna, vilket resulterar i brutna Azure Red Hat OpenShift kluster. De virtuella datorerna slutar fungera och därför slutar hela Azure Red Hat OpenShift klustret att fungera.
Det Azure Red Hat OpenShift tekniska teamet kan inte komma åt nycklarna. Därför kan de inte säkerhetskopiera, replikera eller hämta nycklarna.
Mer information om hur du använder diskkrypteringsuppsättningar för att hantera krypteringsnycklar finns i Kryptering på serversidan av Azure-disklagring.
Förutsättningar
Kontrollera dina behörigheter. Du måste ha behörighet att skapa ett Azure Red Hat OpenShift kluster, ett nyckelvalv och en diskkrypteringsuppsättning.
Bekräfta att du har rollen Key Vault Crypto Officer. Den här rollen har behörighet att skapa en nyckel.
Om du har flera Azure-prenumerationer registrerar du resursprovidrar. Mer information om registrering finns i Registrera resursprovidrar.
Bekräfta att funktionen är aktiverad i
EncryptionAtHostdin prenumeration. Du kan aktivera det genom att köra:az feature register --namespace Microsoft.Compute --name EncryptionAtHostDu kan kontrollera aktuell status för funktionen genom att köra:
az feature show --namespace Microsoft.Compute --name EncryptionAtHost
Skapa en instans av Key Vault
Du måste använda en instans av Key Vault för att lagra dina nycklar. Skapa ett nytt nyckelvalv med rensningsskydd aktiverat. Skapa sedan en ny nyckel i nyckelvalvet för att lagra din egen anpassade nyckel.
Ange miljövariabler:
export KEYVAULT_NAME=aro-enckv export KEYVAULT_KEY_NAME=aro-key export DISK_ENCRYPTION_SET_NAME=aro-des export LOCATION=<location-name> export RESOURCEGROUP=<resource-group-name>Skapa ett nyckelvalv:
az keyvault create \ --name $KEYVAULT_NAME \ --resource-group $RESOURCEGROUP \ --location $LOCATION \ --enable-purge-protection trueAnmärkning
Du måste aktivera rensningsskydd. Se Konfigurera ditt Azure Key Vault.
Valfritt: Eftersom rensningsskydd är aktiverat kan du inte omedelbart återanvända nyckelvalvets namn efter borttagningen. Genom att lägga till specifikationen
--retention-days <NUMBER_OF_DAYS>kan du styra hur länge valvet hålls i tillståndet "mjuk borttagning". Standardvärdet är 90 dagar, men om du anger ett lägre värde (minst 7 dagar) kan du frigöra namnet snabbare.Skapa en nyckel i nyckelvalvet:
az keyvault key create \ --vault-name $KEYVAULT_NAME \ --name $KEYVAULT_KEY_NAME \ --protection softwareAnge nyckelvalvets resurs-ID och nyckel-URL-variabler:
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)
Skapa en diskkrypteringsuppsättning
Använd Azure diskkrypteringsuppsättningen som referenspunkt för diskar i Azure Red Hat OpenShift kluster. Den är ansluten till nyckelvalvet som du skapade i föregående steg och hämtar de kundhanterade nycklarna från den platsen.
Skapa diskkrypteringsuppsättningen:
az disk-encryption-set create \ --name $DISK_ENCRYPTION_SET_NAME \ --location $LOCATION \ --resource-group $RESOURCEGROUP \ --source-vault $KEYVAULT_ID \ --key-url $KEYVAULT_KEY_URLAnge resurs-ID och identitetsvariabler för diskkrypteringsuppsättningen:
DES_ID=$(az disk-encryption-set show --name $DISK_ENCRYPTION_SET_NAME --resource-group $RESOURCEGROUP --query 'id' -o tsv) DES_IDENTITY=$(az disk-encryption-set show --name $DISK_ENCRYPTION_SET_NAME --resource-group $RESOURCEGROUP --query "[identity.principalId]" -o tsv)
Bevilja behörigheter för diskkrypteringsuppsättningen för åtkomst till nyckelvalvet
Du vill att den hanterade identiteten för diskkrypteringsuppsättningen ska använda krypteringsnyckeln. Tilldela en inbyggd roll som ger nödvändiga nyckelbehörigheter, till exempel Key Vault krypteringsanvändare för kryptotjänster eller Key Vault kryptoanvändare. Du kan också använda en anpassad roll, så länge den innehåller nödvändiga behörigheter (wrapkey, unwrapkeyoch get) för att utföra nyckelåtgärder som krävs av diskkrypteringsuppsättningar.
az role assignment create \
--assignee $DES_IDENTITY \
--role "Key Vault Crypto Service Encryption User" \
--scope $KEYVAULT_ID
Skapa ett Azure Red Hat OpenShift-kluster
När du skapar ett kluster kan du aktivera kundhanterade nycklar genom att ange diskkrypteringsuppsättningen. Använd parametern --disk-encryption-set . Till exempel --disk-encryption-set $DES_ID.
Om du vill skapa ett kluster med tjänstens huvudnamn följer du anvisningarna i Skapa ett Azure Red Hat OpenShift kluster.
Här är ett exempel på hur du skapar ett kluster med parametern --disk-encryption-set :
az aro create \
--resource-group $RESOURCEGROUP \
--name $CLUSTER \
--vnet aro-vnet \
--master-subnet master-subnet \
--worker-subnet worker-subnet \
--disk-encryption-set $DES_ID
Anmärkning
Du kan bara aktivera kundhanterade nycklar i befintliga kluster för arbetsnoder, inte huvudnoder. Det går att uppnå den här konfigurationen. Mer information finns i Red Hat-dokumentationen, inklusive Aktivera kundhanterade krypteringsnycklar för en datoruppsättning och Ändra en beräkningsdatoruppsättning.
Innan du skapar klustret måste du bevilja identiteten och identiteten machine-api för att disk-csi-driver. Du måste också ge Azure Red Hat OpenShift-förstapartstjänstens huvudnamn Microsoft.Compute/diskEncryptionSets/read behörighet för diskkrypteringsuppsättningen.
Exempel på rolltilldelningar för identiteten machine-api, identiteten disk-csi-driver och ARO:s förstaparts tjänsthuvudnamn:
az role assignment create \
--assignee-object-id "$(az identity show --resource-group $RESOURCEGROUP --name disk-csi-driver --query principalId -o tsv)" \
--assignee-principal-type ServicePrincipal \
--role <ROLE> \
--scope $DES_ID"
az role assignment create \
--assignee-object-id "$(az identity show --resource-group $RESOURCEGROUP --name machine-api --query principalId -o tsv)" \
--assignee-principal-type ServicePrincipal \
--role <ROLE> \
--scope $DES_ID
az role assignment create \
--assignee-object-id "$(az ad sp list --display-name "Azure Red Hat OpenShift RP" --query '[0].id' -o tsv)" \
--assignee-principal-type ServicePrincipal \
--role <ROLE> \
--scope $DES_ID
När du har skapat Azure Red Hat OpenShift-klustret krypteras alla virtuella datorer med de kundhanterade krypteringsnycklarna.
Kontrollera att du har konfigurerat nycklarna korrekt genom att köra följande kommandon:
Hämta namnet på klusterresursgruppen där klustrets virtuella datorer, diskar och annan infrastruktur finns:
CLUSTERRESOURCEGROUP=$(az aro show --resource-group $RESOURCEGROUP --name $CLUSTER --query 'clusterProfile.resourceGroupId' -o tsv | cut -d '/' -f 5)Kontrollera att diskarna har rätt diskkrypteringsuppsättning ansluten:
az disk list --resource-group $CLUSTERRESOURCEGROUP --query '[].encryption'
Fältet diskEncryptionSetId i utdata måste peka på den diskkrypteringsuppsättning som du angav när du skapade Azure Red Hat OpenShift klustret.
Lägg till stöd för hanterad HSM (mHSM) för kundhanterade nycklar och framtvingning via Azure Policy
Du kan också lägga till stöd för hanterad HSM (mHSM) för kundhanterade nycklar och kräva och neka vissa krypteringsattribut. Det här stödet kräver API och Azure Policy ändringar.
Följ dessa steg för att skapa ett Azure Red Hat OpenShift kluster med mHSM och kundhanterade nycklar:
Etablera och aktivera en hanterad HSM med hjälp av Azure CLI.
Exportera miljövariabler från föregående steg:
export HSM_NAME=<hsm-name> export RESOURCE_GROUP=<resource-group>Aktivera rensningsskydd och nyckelhantering via Azure Resource Manager:
az keyvault update-hsm \ --hsm-name $HSM_NAME \ --resource-group $RESOURCE_GROUP \ --enable-purge-protection true az keyvault setting update \ --hsm-name $HSM_NAME \ --name AllowKeyManagementOperationsThroughARM \ --value trueSlutför de återstående stegen för att aktivera mHSM: Aktivera din hanterade HSM.
Ge dig själv
Managed HSM Crypto Userrollen så att du kan skapa nycklar i mHSM.oid=$(az ad signed-in-user show --query id -o tsv) az keyvault role assignment create \ --hsm-name $HSM_NAME \ --role "Managed HSM Crypto User" \ --assignee $oid \ --scope /keysSkapa en hanterad identitet och ge den
Managed HSM Crypto Service Encryption Userrollen över mHSM.export UA_IDENTITY=<new-ua-identity>HSM_ID="https://${HSM_NAME}.managedhsm.azure.net" az identity create \ --resource-group $RESOURCE_GROUP \ --name $UA_IDENTITY IDENTITY_OBJECT_ID=$(az identity show \ --resource-group $RESOURCE_GROUP \ --name $UA_IDENTITY \ --query principalId -o tsv) az keyvault role assignment create \ --id "$HSM_ID" \ --role "Managed HSM Crypto Service Encryption User" \ --assignee-object-id "$IDENTITY_OBJECT_ID" \ --scope "/keys/byok-key"Skapa en diskkrypteringsuppsättning med hänsyn till:
Ange krypteringstypen till
Encryption at-rest with a customer-managed key.Använd den användartilldelade identiteten som du skapade i föregående steg.
Slutför rolltilldelningen innan du skapar diskkrypteringsuppsättningen.
Exportera miljövariabler från föregående steg:
export LOCATION=<yourLocation> export CLUSTER=<yourNewClusterName> export VIRTUAL_NETWORK=<yourVirtualNetwork> export KEYVAULT_NAME=<yourKeyvaultName> export KEYVAULT_KEY_NAME=byok-key export DISK_ENCRYPTION_SET_NAME=<yourDiskEncryptionSetName>Skapa ett kluster med den nya diskkrypteringsuppsättningen:
DES_ID=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g $RESOURCE_GROUP --query 'id' -o tsv) az aro create --resource-group $RESOURCE_GROUP \ --name $CLUSTER \ --vnet $VIRTUAL_NETWORK \ --master-subnet master-subnet \ --worker-subnet worker-subnet \ --disk-encryption-set $DES_IDNär klustret har skapats bekräftar du krypteringen:
az disk list -g $VIRTUAL_NETWORK --query "[].{DiskName:name, VM:managedBy, EncryptionType:encryption.type, DiskEncryptionSet:encryption.diskEncryptionSetId}" -o tableFör att verifiera krypteringen, leta efter
EncryptionAtRestWithCustomerKeyunder kolumnenEncryptionType.