Dela via


Hantera hemligheter för azure IoT Operations Preview-distributionen

Viktigt!

Förhandsversion av Azure IoT Operations – aktiverad av Azure Arc finns för närvarande i FÖRHANDSVERSION. Du bör inte använda den här förhandsgranskningsprogramvaran i produktionsmiljöer.

Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.

Hemlighetshantering i Azure IoT Operations Preview använder Azure Key Vault som lösning för hanterat valv i molnet och använder CSI-drivrutinen för hemligheter för att hämta hemligheter från molnet och lagra dem på gränsen.

Förutsättningar

Konfigurera ett hemligt arkiv i klustret

Azure IoT Operations stöder Key Vault för lagring av hemligheter och certifikat. az iot ops init Azure CLI-kommandot automatiserar stegen för att konfigurera ett huvudnamn för tjänsten för att ge åtkomst till nyckelvalvet och konfigurera hemligheterna som du behöver för att köra Azure IoT Operations.

Mer information finns i Distribuera Azure IoT Operations Preview-tillägg till ett Kubernetes-kluster.

Konfigurera tjänstens huvudnamn och Key Vault manuellt

Om Azure-kontot som az iot ops init kör kommandot inte har behörighet att fråga Microsoft Graph och skapa tjänstens huvudnamn kan du förbereda dessa i förväg och använda extra argument när du kör CLI-kommandot enligt beskrivningen i Distribuera Azure IoT Operations-tillägg.

Konfigurera tjänstens huvudnamn för att interagera med Key Vault via Microsoft Entra-ID

Följ de här stegen för att skapa en ny programregistrering för Azure IoT Operations-programmet som ska användas för att autentisera till Key Vault.

Registrera först ett program med Microsoft Entra-ID:

  1. I sökfältet i Azure-portalen söker du efter och väljer Microsoft Entra-ID.

  2. Välj Appregistreringar i avsnittet Hantera på Microsoft Entra-ID-menyn.

  3. Välj Ny registrering.

  4. På sidan Registrera ett program anger du följande information:

    Fält Värde
    Namn Ange ett namn för ditt program.
    Kontotyper som stöds Kontrollera att Endast konton i den här organisationskatalogen (<endast YOUR_TENANT_NAME> – enskild klientorganisation) har valts.
    Omdirigerings-URI Välj Webb som plattform. Du kan lämna webbadressen tom.
  5. Välj Registrera.

    När programmet har skapats dirigeras du till dess resurssida.

  6. Kopiera program-ID:t (klient) från översiktssidan för appregistrering. Du använder det här värdet som ett argument när du kör Azure IoT Operations-distributionen az iot ops init med kommandot .

Ge sedan programmet behörighet för Key Vault:

  1. På resurssidan för din app väljer du API-behörigheter i avsnittet Hantera på appmenyn.

  2. Välj Lägg till behörighet.

  3. På sidan Api-behörigheter för begäran rullar du nedåt och väljer Azure Key Vault.

  4. Välj delegerade behörigheter.

  5. Markera kryssrutan för att välja user_impersonation behörigheter.

  6. Välj Lägg till behörigheter.

Skapa en klienthemlighet som läggs till i ditt Kubernetes-kluster för att autentisera till ditt nyckelvalv:

  1. På resurssidan för din app väljer du Certifikat och hemligheter i avsnittet Hantera på appmenyn.

  2. Välj Ny klienthemlighet.

  3. Ange en valfri beskrivning för hemligheten och välj sedan Lägg till.

  4. Kopiera värdet från den nya hemligheten. Du använder det här värdet senare när du kör az iot ops init.

Hämta objekt-ID:t för tjänstens huvudnamn:

  1. På sidan Översikt för din app går du till avsnittet Essentials och väljer länken Programnamn under Hanterat program i lokal katalog. Då öppnas egenskaperna för företagsprogram. Kopiera objekt-ID:t som ska användas när du kör az iot ops init.

Skapa ett nyckelvalv

Skapa en ny Azure Key Vault-instans och se till att behörighetsmodellen är inställd på Åtkomstprincip för valv.

az keyvault create --enable-rbac-authorization false --name "<your unique key vault name>" --resource-group "<the name of the resource group>"

Om du har ett befintligt nyckelvalv kan du ändra behörighetsmodellen genom att köra följande:

az keyvault update --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --enable-rbac-authorization false 

Du behöver key vault-resurs-ID:t när du kör az iot ops init. Hämta resurs-ID:t genom att köra:

az keyvault show --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --query id  -o tsv

Ange åtkomstprincip för tjänstens huvudnamn i Key Vault

Det nyligen skapade tjänstens huvudnamn behöver en hemlighetslist- och get åtkomstprincip för att Azure IoT Operations ska fungera med det hemliga arkivet.

För att hantera Key Vault-åtkomstprinciper behöver det huvudnamn som loggas in på CLI tillräckligt med Azure-behörigheter. I RBAC-modellen (Rollbaserad åtkomstkontroll) ingår den här behörigheten i Key Vault-deltagare eller högre roller.

Dricks

Om du använde det inloggade CLI-huvudnamnet för att skapa nyckelvalvet har du förmodligen redan rätt behörigheter. Men om du pekar på ett annat eller befintligt nyckelvalv bör du kontrollera att du har tillräcklig behörighet för att ange åtkomstprinciper.

Kör följande för att tilldela hemlighet list och get behörigheter till tjänstens huvudnamn.

az keyvault set-policy --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --object-id <Object ID copied from Enterprise Application SP in Microsoft Entra ID> --secret-permissions get list

Skicka argument för tjänstens huvudnamn och Key Vault till Azure IoT Operations-distribution

När du följer guiden Distribuera Azure IoT Operations-tillägg skickar du ytterligare flaggor till az iot ops init kommandot för att använda det förkonfigurerade tjänstens huvudnamn och nyckelvalv.

I följande exempel visas hur du förbereder klustret för Azure IoT-åtgärder utan att distribuera det fullständigt med hjälp --no-deploy av flaggan. Du kan också köra kommandot utan det här argumentet för en standarddistribution av Azure IoT Operations.

az iot ops init --cluster "<your cluster name>" --resource-group "<the name of the resource group>" \
    --kv-id <Key Vault Resource ID> \
    --sp-app-id <Application registration App ID (client ID) from Microsoft Entra ID> \
    --sp-object-id <Object ID copied from Enterprise Application in Microsoft Entra ID> \
    --sp-secret "<Client Secret from App registration in Microsoft Entra ID>" \
    --no-deploy

Ett steg som init kommandot tar är att se till att alla spcs (Secret Provider Classes) som krävs av Azure IoT Operations har en standardhemlighet konfigurerad i nyckelvalvet. Om det inte finns init något värde för standardhemligheten skapas ett värde. Det här steget kräver att det huvudnamn som loggas in på CLI har hemliga set behörigheter. Om du vill använda en befintlig hemlighet som standard-SPC-hemlighet kan du ange den med parametern --kv-sat-secret-name , i vilket fall det inloggade huvudnamnet bara behöver hemliga get behörigheter.

Lägga till en hemlighet i en Azure IoT Operations-komponent

När du har konfigurerat det hemliga arkivet i klustret kan du skapa och lägga till Key Vault-hemligheter.

  1. Skapa din hemlighet i Key Vault med det namn och värde du behöver. Du kan skapa en hemlighet med hjälp av Azure-portalen eller kommandot az keyvault secret set .

  2. I klustret identifierar du den hemliga providerklassen (SPC) för den komponent som du vill lägga till hemligheten i. Exempel: aio-default-spc Använd följande kommando för att lista alla SPC:er i klustret:

    kubectl get secretproviderclasses -A
    
  3. Öppna filen i önskad textredigerare. Om du använder k9:er skriver du e för att redigera.

  4. Lägg till det hemliga objektet i listan under spec.parameters.objects.array. Till exempel:

    spec:
      parameters:
        keyvaultName: my-key-vault
        objects: |
          array:
            - |
              objectName: PlaceholderSecret
              objectType: secret
              objectVersion: ""
    
  5. Spara ändringarna och tillämpa dem på klustret. Om du använder k9:er tillämpas ändringarna automatiskt.

CSI-drivrutinen uppdaterar hemligheter med hjälp av ett avsökningsintervall, därför är den nya hemligheten inte tillgänglig för podden förrän nästa avsökningsintervall. Om du vill uppdatera en komponent omedelbart startar du om poddarna för komponenten. Om du till exempel vill starta om dataprocessorkomponenten kör du följande kommandon:

kubectl delete pod aio-dp-reader-worker-0 -n azure-iot-operations
kubectl delete pod aio-dp-runner-worker-0 -n azure-iot-operations

Azure IoT MQ Preview-hemligheter

Stegen för att hantera hemligheter med Azure Key Vault för Azure IoT MQ Preview skiljer sig åt. Mer information finns i Hantera MQ-hemligheter med Key Vault.