Dela via


Kryptera OS-diskar med en kundhanterad nyckel på Azure Red Hat OpenShift

Som standard krypterades OS-diskarna för de virtuella datorerna i ett Azure Red Hat OpenShift-kluster med automatiskt genererade nycklar som hanteras av Microsoft Azure. För ytterligare säkerhet kan kunder kryptera OS-diskarna med självhanterade nycklar när de distribuerar ett Azure Red Hat OpenShift-kluster. Den här funktionen ger mer kontroll genom att kryptera konfidentiella data med kundhanterade nycklar (CMK).

Kluster som skapats med kundhanterade nycklar har en standardlagringsklass aktiverad med sina nycklar. Därför krypteras både OS-diskar och datadiskar av dessa nycklar. Kundhanterade nycklar lagras i Azure Key Vault.

Mer information om hur du använder Azure Key Vault för att skapa och underhålla nycklar finns i Kryptering på serversidan av Azure Disk Storage i Microsoft Azure-dokumentationen.

Med värdbaserad kryptering krypteras data som lagras på den virtuella datorns värd för dina virtuella Azure Red Hat OpenShift-agentnoders virtuella datorer i vila och flöden krypteras till lagringstjänsten. Värdbaskryptering innebär att temporära diskar krypteras i vila med plattformshanterade nycklar.

Cachen för OS- och datadiskar krypteras i vila med antingen plattformshanterade nycklar eller kundhanterade nycklar, beroende på vilken krypteringstyp som angetts på dessa diskar. När du använder Azure Red Hat OpenShift krypteras operativsystem och datadiskar som standard i vila med plattformshanterade nycklar, vilket innebär att cacheminnena för dessa diskar också som standard krypteras i vila med plattformshanterade nycklar.

Du kan ange dina egna hanterade nycklar enligt krypteringsstegen nedan. Cachen för dessa diskar krypteras också med den nyckel som du anger i det här steget.

Begränsning

Det är kundernas ansvar att underhålla nyckelvalvet och diskkrypteringsuppsättningen i Azure. Om nycklarna inte underhålls resulterar det 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.

Azure Red Hat OpenShift Engineering-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 dina krypteringsnycklar finns i Kryptering på serversidan av Azure Disk Storage i Microsoft Azure-dokumentationen.

Förutsättningar

  • Kontrollera dina behörigheter. Du måste ha behörigheter som deltagare och administratör för användaråtkomst eller ägarbehörigheter.

  • Om du har flera Azure-prenumerationer registrerar du resursprovidrar. Mer information om registrering finns i Registrera resursprovidrar.

  • Du måste ha funktionen EncryptionAtHost aktiverad i din prenumeration. Du kan aktivera det genom att köra:

    az feature register --namespace Microsoft.Compute --name EncryptionAtHost
    
  • Du kan kontrollera aktuell status för funktionen genom att köra:

    az feature show --namespace Microsoft.Compute --name EncryptionAtHost
    

Skapa ett virtuellt nätverk som innehåller två tomma undernät

Skapa ett virtuellt nätverk som innehåller två tomma undernät. Om du har ett befintligt virtuellt nätverk som uppfyller dina behov kan du hoppa över det här steget. Mer information om hur du skapar ett virtuellt nätverk finns i Skapa ett virtuellt nätverk som innehåller två tomma undernät.

Skapa en Azure Key Vault-instans

Du måste använda en Azure Key Vault-instans för att lagra dina nycklar. Skapa ett nytt Key Vault med rensningsskydd aktiverat. Skapa sedan en ny nyckel i Nyckelvalvet för att lagra din egen anpassade nyckel.

  1. Ange fler miljöbehörigheter:
    export KEYVAULT_NAME=$USER-enckv
    export KEYVAULT_KEY_NAME=$USER-key
    export DISK_ENCRYPTION_SET_NAME=$USER-des
    
  2. Skapa ett Nyckelvalv och en nyckel i Nyckelvalvet:
    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)
    

Skapa en Azure Disk Encryption Set

Azure Disk Encryption Set används som referenspunkt för diskar i Azure Red Hat OpenShift-kluster. Den är ansluten till Azure Key Vault som du skapade i föregående steg och hämtar de kundhanterade nycklarna från den platsen.

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)

Bevilja behörigheter för diskkrypteringsuppsättningen för åtkomst till Key Vault

Använd den diskkrypteringsuppsättning som du skapade i föregående steg och bevilja behörighet för diskkrypteringsuppsättningen för att komma åt och använda Azure Key Vault.

az keyvault set-policy -n $KEYVAULT_NAME \
                       -g $RESOURCEGROUP \
                       --object-id $DES_IDENTITY \
                       --key-permissions wrapkey unwrapkey get

Skapa ett Azure Red Hat OpenShift-kluster

Skapa ett Azure Red Hat OpenShift-kluster för att använda kundhanterade nycklar.

Kommentar

Att aktivera CMK på befintliga ARO-kluster är bara möjligt för arbetsnoder, inte huvudnoder. Du kan uppnå detta med hjälp av machine-API via machineset CRs. Mer information finns i Aktivera kundhanterade krypteringsnycklar för en datoruppsättning och Ändra en beräkningsdatoruppsättning .

az aro create --resource-group $RESOURCEGROUP \
              --name $CLUSTER  \
              --vnet aro-vnet  \
              --master-subnet master-subnet \
              --worker-subnet worker-subnet \
              --disk-encryption-set $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:

  1. Hämta namnet på klusterresursgruppen där klustrets virtuella datorer, diskar och så vidare finns:
    CLUSTERRESOURCEGROUP=$(az aro show --resource-group $RESOURCEGROUP --name $CLUSTER --query 'clusterProfile.resourceGroupId' -o tsv | cut -d '/' -f 5)
    
  2. Kontrollera att diskarna har rätt diskkrypteringsuppsättning ansluten:
    az disk list -g $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.