FIPS 140-3-stöd för AZURE Linux VM-tillägg och gästagent

Anmärkning

Den här funktionen är för närvarande i offentlig förhandsversion. Produktionsarbetsbelastningar stöds.

Tillägg för virtuella Linux-datorer uppfyller för närvarande FIPS 140-2, men uppdateringar av plattformen krävdes för att lägga till stöd för FIPS 140-3. Dessa ändringar aktiveras för närvarande i det kommersiella molnet och Azure Government-molnen. Linux VM-tillägg som använder skyddade inställningar uppdateras också för att kunna använda en FIPS 140-3-kompatibel krypteringsalgoritm. Den här artikeln hjälper dig att aktivera stöd för FIPS 140-3 på virtuella Linux-datorer där kompatibilitet med FIPS 140-3 tillämpas. Den här ändringen behövs inte på Windows-avbildningar på grund av hur FIPS-efterlevnad implementeras.

Mer information finns i What are the Federal Information Processing Standards (FIPS)?.

Anmärkning

Prova VM-hjälp för snabbare diagnostik. Vi rekommenderar att du kör VM-hjälpen för Windows eller VM-hjälpen för Linux. De här skriptbaserade diagnostikverktygen hjälper dig att identifiera vanliga problem som påverkar gästagenten för virtuella Azure-datorer och övergripande hälsotillstånd för virtuella datorer.

Om du har prestandaproblem med virtuella datorer kör du dessa verktyg innan du kontaktar supporten.

Bekräftade tillägg som stöds

Extension Moln som stöds
Kommersiell
Regering
Luftspärr
MICROSOFT. AKS. BERÄKNA. AKS. LINUX. AKSNODE Kommersiell
Myndigheter
MICROSOFT. AKS. BERÄKNA. AKS. LINUX. FAKTURERING Kommersiell
Myndigheter
MICROSOFT.AZURE.AZUREDEFENDERFORSERVERS.MDE.LINUX Kommersiell
Myndigheter
MICROSOFT.AZURE.EXTENSIONS.CUSTOMSCRIPT Kommersiell
Myndigheter
MICROSOFT.AZURE.KEYVAULT.KEYVAULTFORLINUX Kommersiell
Myndigheter
MICROSOFT.AZURE.MONITOR.AZUREMONITORLINUXAGENT Kommersiell
Myndigheter
MICROSOFT.AZURE.MONITORING.DEPENDENCYAGENT.DEPENDENCYAGENTLINUX Kommersiellt
MICROSOFT.AZURE.NETWORKWATCHER.NETWORKWATCHERAGENTLINUX Kommersiell
Myndigheter
MICROSOFT.AZURE.RECOVERYSERVICES.VMSNAPSHOT Kommersiellt
MICROSOFT.AZURE.SECURITY.MONITORING.AZURESECURITYLINUXAGENT Kommersiellt
MICROSOFT.CPLAT.CORE.LINUXPATCHEXTENSION Kommersiell
Myndigheter
MICROSOFT.CPLAT.KÄRNA.RUNCOMMANDLINUX Kommersiell
Myndigheter
MICROSOFT.CPLAT.CORE.VMAPPLICATIONMANAGERLINUX Kommersiell
Myndigheter
MICROSOFT. CPLAT. PROXYAGENT. PROXYAGENTLINUX Kommersiell
Myndigheter
MICROSOFT.CPLAT.PROXYAGENT.PROXYAGENTLINUXARM64 Kommersiell
Myndigheter
MICROSOFT.GUESTCONFIGURATION.CONFIGURATIONFORLINUX Kommersiellt
MICROSOFT.MANAGEDSERVICES.APPLICATIONHEALTHLINUX Kommersiell
Myndigheter
MICROSOFT.OSTCEXTENSIONS.VMACCESSFORLINUX Kommersiell
Myndigheter

Förutsättningar

Du måste uppfylla följande fyra krav för att använda en FIPS 140-3-kompatibel virtuell dator i Azure:

  • Den virtuella datorn måste finnas i en region där FIPS 140-3-plattformsändringar distribueras.
  • Din Azure-prenumeration måste vara anmäld till FIPS 140-3-aktivering.
  • Varje virtuell dator måste registreras i FIPS 140-3-aktivering i Azure Resource Manager.
  • I gästoperativsystemet (OS) måste operativsystemet konfigureras för FIPS 140-läge. Operativsystemet måste köra en version av Azure-gästagenten (waagent), som också är kompatibel med FIPS 140-3.

Kontrollera sedan för att säkerställa funktionerna i vm-tilläggen.


Implementera förutsättningar

1. Prenumerationsaktivering/anmäl dig

Eftersom inte alla tillägg registreras med FIPS 140-3-kryptering ännu kräver vi att prenumerationen väljer funktionen _Microsoft.Compute/OptInToFips1403Compliance_.

Azure CLI (kommandoradsgränssnittet för Azure)

az feature register --namespace Microsoft.Compute --name OptInToFips1403Compliance

Kontrollera med följande kommando:

az feature list | jq '.[] | select(.name=="Microsoft.Compute/OptInToFips1403Compliance")'
{
  "id": "/subscriptions/<SUBSCRIPTION ID>/providers/Microsoft.Features/providers/Microsoft.Compute/features/OptInToFips1403Compliance",
  "name": "Microsoft.Compute/OptInToFips1403Compliance",
  "properties": {
    "state": "Registered"
  },
  "type": "Microsoft.Features/providers/features"
}

2. Per-VM anmäl dig

Det finns olika metoder för att välja varje virtuell dator. Du kan göra ändringarna vid distributionen för en ny virtuell dator. Du kan också ändra en befintlig virtuell dator för att lägga till FIPS 140-3-aktiveringen på Azure-plattformen.

Varning

Vi rekommenderar inte att du använder följande opt-in-metoder i Red Hat Enterprise Linux (RHEL) 9.5 och 9.6 genom att använda version 2.7.0.6 av WALinuxAgent på produktionssystem. Ett problem kan uppstå efter omstarten, efter FIPS-aktiveringen och efterföljande omstart. På dessa virtuella datorer går waagent.service in i en intern loop och kommer aldrig till ett Ready läge. På grund av det här felet kan inga tillägg fungera. För testning kan du prova lösningen RHEL 9.

Distribuera en ny virtuell dator

Om du vill distribuera en ny virtuell dator med FIPS 140-3 aktiverad omedelbart använder du en Azure Resource Manager-mall (ARM-mall) eller Azure CLI. Lägg till egenskapen enableFips1403Encryption i additionalCapabilities avsnittet i objektdefinitionen virtualMachines .

{
  "type": "Microsoft.Compute/virtualMachines",
  "apiVersion": "2024-11-01",
  "name": "[parameters('vmName')]",
  "location": "[parameters('location')]",
  "properties": {
	  "additionalCapabilities": {
      "enableFips1403Encryption": true
    }
  }
}

Ändra en befintlig virtuell dator

az cli-kommandon

Anmärkning

För government-molnet använder du https://management.usgovcloudapi.net i stället för https://management.azure.com.

Uppdateringar av SDK/CLI pågår fortfarande, men du kan fortsätta att använda az cli för att lägga till egenskapen.

az rest \
--method put \
--url 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>/?api-version=2024-11-01' \
--body '{"location": "<LOCATION>", "properties": {"additionalCapabilities": {"enableFips1403Encryption": true}}}'

put När kommandot körs matas den resulterande JSON-filen ut för den ändrade virtuella datorn. För senare verifiering kan du köra det här get kommandot mot VM-objektet, som matar ut den fullständiga JSON-filen igen.

az rest \
--method get \
--url 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>/?api-version=2024-11-01'

Kommandoutdata bör innehålla:

{
 "enableFips1403Encryption": true
}

För att enklare hitta egenskapen i utdata kan du lägga till jq för att parsa ut det specifika avsnitt som behövs. Det här blocket är det nya kommandot:

az rest \
--method get \
--url 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>/?api-version=2024-11-01' \
| jq .properties.additionalCapabilities

Som jämförelse, ett möjligt resultat när du försöker aktivera FIPS 140-3 på en virtuell dator när den virtuella datorn inte finns i en aktiverad region, put kan kommandot mata ut följande kod, vilket indikerar att åtgärden inte är möjlig i regionen.

({
  "error": {
    "code": "BadRequest",
    "message": "Creation of VMs using a Fips 140-3 compliant encryption for extension settings isn't supported in this region."
  }
})

3. Överväganden för gäster

Viktiga ändringar måste göras i Linux OS-miljön för att aktivera och stödja FIPS 140-3-efterlevnad.

Konfigurera operativsystemet för FIPS-aktivering

Följande distributioner stöder FIPS 140-3 och innehåller instruktioner för aktivering:

Äldre versioner av dessa operativsystem fungerar på FIPS 140-2-nivå och kräver inte något av dessa särskilda överväganden.

Linux-gästagent

Lägsta version av Goal State Agent : v2.14.0.1. För att vara säker på att måltillståndet uppdateras AutoUpdate.Enabled bör flaggan vara y eller kommenteras ut helt så att standardbeteendet används.

/etc/waagent.conf:

AutoUpdate.Enabled=y
RHEL 9-lösning

Den här lösningen är endast avsedd för testning och stöder inte alla scenarier för distribution av virtuella datorer. När du har aktiverat FIPS på en virtuell dator som körs kör du följande kommandon för att fortsätta:

systemctl stop waagent

# apply the patch
sed -i -E '/(.+)(self._initialize_telemetry\(\))/s//\1# \2/' /usr/lib/python3.9/site-packages/azurelinuxagent/daemon/main.py

Använd följande kommando för att kontrollera att den tidigare ändringen har tillämpats:

grep self\._initialize_telemetry /usr/lib/python3.9/site-packages/azurelinuxagent/daemon/main.py

Utdata bör vara exakt den här texten:

        # self._initialize_telemetry()

Starta om agenten efter verifieringen:

systemctl start waagent

Validation

Så här validerar du rätt funktioner för vm-tilläggen:

  • Kontrollera att agentstatusen är Ready.
  • Testa ett tillägg med hjälp av de skyddade inställningarna för VM-tilläggen.
    • Genom att Reset Password använda funktionen i Azure-portalen eller az cliåterställer du ett lösenord eller skapar en ny tillfällig användare.
    • Kör ett anpassat skript.

Om dessa tester misslyckas tvingar du Azure-plattformen att generera ett nytt PFX-paket (Personal Information Exchange).

Återställa lösenord

Använd antingen Azure-portalen eller ett az cli kommando, till exempel det här exemplet, för att ange en användares lösenord eller skapa en tillfällig användare. Kontrollera körningstillståndet för att avgöra om det är framgång eller misslyckande.

az vm user update \
  --resource-group <YourResourceGroup> \
  --name <YourVMName> \
  --username <NewUsername> \
  --password <NewPassword>

Köra ett anpassat skript

Använd dokumentationen för anpassade skripttillägg för att skicka ett grundläggande skript, till exempel cat /etc/os-release, för att testa tilläggsfunktioner.

Åtgärda ett valideringsfel

Om verifieringarna inte kan köras tvingar du Azure-plattformen att generera ett nytt PFX-paket. Det finns två metoder för att tvinga fram den här regenereringen:

  • Omallokera den virtuella datorn.
  • Tillämpa ett Azure Key Vault-certifikat.

Frigör/omallokera den virtuella datorn

Du kan använda Azure CLI, Azure-portalen eller någon annan metod för att frigöra den virtuella datorn. Vänta tills frigöringen sker och starta sedan den virtuella datorn.

Lägga till ett Key Vault-certifikat

Skapa Key Vault-certifikatet, lägg till det i den ändrade ARM-mallen och distribuera det.

Mer information finns i Komma igång med Key Vault-certifikat.

I följande exempel visas avsnittet properties i VM-modellen:

      "secrets": [
        {
          "sourceVault": {
            "id": "/subscriptions/<subId>/resourceGroups/<resource group>/providers/Microsoft.KeyVault/vaults/<keyvault name>"
          },
          "vaultCertificates": [
            {
              "certificateUrl": "https://<keyvault name>.vault.azure.net/secrets/rsa/5cc588f8f3404268b2ca4d05e544e7fb"
            }
          ]
        }
      ],