Share via


Geheimen beheren voor uw Azure IoT Operations Preview-implementatie

Belangrijk

Azure IoT Operations Preview: ingeschakeld door Azure Arc is momenteel in PREVIEW. Gebruik deze preview-software niet in productieomgevingen.

Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.

Geheimenbeheer in Azure IoT Operations Preview maakt gebruik van Azure Key Vault als de oplossing voor beheerde kluizen in de cloud en gebruikt het CSI-stuurprogramma voor geheimenopslag om geheimen uit de cloud op te halen en op te slaan aan de rand.

Vereisten

  • Een Kubernetes-cluster met Arc. Zie Uw cluster voorbereiden voor meer informatie.

Een geheim archief configureren in uw cluster

Azure IoT Operations ondersteunt Key Vault voor het opslaan van geheimen en certificaten. Met az iot ops init de Azure CLI-opdracht worden de stappen voor het instellen van een service-principal geautomatiseerd om toegang te verlenen tot de sleutelkluis en de geheimen te configureren die u nodig hebt voor het uitvoeren van Azure IoT-bewerkingen.

Zie Azure IoT Operations Preview-extensies implementeren in een Kubernetes-cluster voor meer informatie.

Service-principal en Key Vault handmatig configureren

Als het Azure-account dat de az iot ops init opdracht uitvoert, geen machtigingen heeft om query's uit te voeren op Microsoft Graph en service-principals te maken, kunt u deze vooraf voorbereiden en extra argumenten gebruiken bij het uitvoeren van de CLI-opdracht, zoals beschreven in Azure IoT Operations-extensies implementeren.

Service-principal configureren voor interactie met Key Vault via Microsoft Entra-id

Volg deze stappen om een nieuwe toepassingsregistratie te maken voor de Azure IoT Operations-toepassing die moet worden gebruikt om te verifiëren bij Key Vault.

Registreer eerst een toepassing bij Microsoft Entra-id:

  1. Zoek en selecteer Microsoft Entra ID in de zoekbalk van Azure Portal.

  2. Selecteer App-registraties in de sectie Beheren van het menu Microsoft Entra-id.

  3. Selecteer Nieuwe registratie.

  4. Geef op de pagina Een toepassing registreren de volgende informatie op:

    Veld Weergegeven als
    Naam Geef een naam op voor uw toepassing.
    Ondersteunde accounttypen Zorg ervoor dat accounts in deze organisatiemap alleen (<alleen YOUR_TENANT_NAME> - één tenant) is geselecteerd.
    Omleidings-URI Selecteer Web als platform. U kunt het webadres leeg laten.
  5. Selecteer Registreren.

    Wanneer uw toepassing is gemaakt, wordt u omgeleid naar de resourcepagina.

  6. Kopieer de toepassings-id (client) op de overzichtspagina van de app-registratie. U gebruikt deze waarde als argument bij het uitvoeren van azure IoT Operations-implementatie met de az iot ops init opdracht.

Geef vervolgens uw toepassingsmachtigingen voor Key Vault:

  1. Selecteer OP de resourcepagina voor uw app API-machtigingen in de sectie Beheren van het app-menu.

  2. Selecteer Een machtiging toevoegen.

  3. Schuif omlaag op de pagina Api-machtigingen aanvragen en selecteer Azure Key Vault.

  4. Selecteer Gedelegeerde machtigingen.

  5. Schakel het selectievakje in om user_impersonation machtigingen in te schakelen.

  6. Selecteer Machtigingen toevoegen.

Maak een clientgeheim dat wordt toegevoegd aan uw Kubernetes-cluster om te verifiëren bij uw sleutelkluis:

  1. Selecteer certificaten en geheimen in de sectie Beheren van het app-menu op de resourcepagina voor uw app.

  2. Selecteer Nieuw clientgeheim.

  3. Geef een optionele beschrijving op voor het geheim en selecteer vervolgens Toevoegen.

  4. Kopieer de waarde uit uw nieuwe geheim. U gebruikt deze waarde later wanneer u deze uitvoert az iot ops init.

Haal de object-id van de service-principal op:

  1. Selecteer op de pagina Overzicht voor uw app, onder de sectie Essentials, de koppeling toepassingsnaam onder Beheerde toepassing in de lokale map. Hiermee opent u de eigenschappen van de ondernemingstoepassing. Kopieer de object-id die moet worden gebruikt wanneer u deze uitvoert az iot ops init.

Maak een sleutelkluis.

Maak een nieuw Azure Key Vault-exemplaar en zorg ervoor dat het machtigingsmodel is ingesteld op kluistoegangsbeleid.

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

Als u een bestaande sleutelkluis hebt, kunt u het machtigingsmodel wijzigen door het volgende uit te voeren:

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

U hebt de Key Vault-resource-id nodig wanneer u deze uitvoert az iot ops init. Voer de volgende opdracht uit om de resource-id op te halen:

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

Toegangsbeleid voor service-principals instellen in Key Vault

De zojuist gemaakte service-principal heeft geheimlist en get toegangsbeleid nodig voor de Azure IoT-bewerkingen om met het geheime archief te kunnen werken.

Voor het beheren van Key Vault-toegangsbeleid heeft de principal die is aangemeld bij de CLI voldoende Azure-machtigingen nodig. In het RBAC-model (Role Based Access Control) is deze machtiging opgenomen in key vault-inzender of hogere rollen.

Tip

Als u de aangemelde CLI-principal hebt gebruikt om de sleutelkluis te maken, hebt u waarschijnlijk al de juiste machtigingen. Als u echter verwijst naar een andere of bestaande sleutelkluis, moet u controleren of u over voldoende machtigingen beschikt om toegangsbeleid in te stellen.

Voer het volgende uit om geheimlist en get machtigingen toe te wijzen aan de service-principal.

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

Service-principal en Key Vault-argumenten doorgeven aan De implementatie van Azure IoT Operations

Wanneer u de handleiding Azure IoT Operations-extensies implementeert, geeft u aanvullende vlaggen door aan de az iot ops init opdracht om de vooraf geconfigureerde service-principal en sleutelkluis te gebruiken.

In het volgende voorbeeld ziet u hoe u het cluster voorbereidt op Azure IoT Operations zonder het volledig te implementeren met behulp van de --no-deploy vlag. U kunt de opdracht ook uitvoeren zonder dit argument voor een standaardimplementatie van Azure IoT Operations.

az iot ops init --name "<your unique key vault 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

Een van de stappen die de init opdracht uitvoert, is ervoor te zorgen dat alle SPC's (Secret Provider Classes) die vereist zijn voor Azure IoT Operations, een standaardgeheim hebben geconfigureerd in de sleutelkluis. Als er geen waarde voor het standaardgeheim bestaat init , wordt er een gemaakt. Voor deze stap is vereist dat de principal die is aangemeld bij de CLI geheime set machtigingen heeft. Als u een bestaand geheim wilt gebruiken als het standaard-SPC-geheim, kunt u dit opgeven met de --kv-sat-secret-name parameter. In dat geval heeft de aangemelde principal alleen geheime get machtigingen nodig.

Een geheim toevoegen aan een Azure IoT Operations-onderdeel

Zodra u het geheime archief hebt ingesteld op uw cluster, kunt u Key Vault-geheimen maken en toevoegen.

  1. Maak uw geheim in Key Vault met de naam en waarde die u nodig hebt. U kunt een geheim maken met behulp van Azure Portal of de opdracht az keyvault secret set.

  2. Identificeer in uw cluster de SPC (Secret Provider Class) voor het onderdeel waaraan u het geheim wilt toevoegen. Bijvoorbeeld: aio-default-spc. Gebruik de volgende opdracht om alle SPCs in uw cluster weer te geven:

    kubectl get secretproviderclasses -A
    
  3. Open het bestand in de teksteditor van uw voorkeur. Als u k9s gebruikt, typt e u om te bewerken.

  4. Voeg het geheime object toe aan de lijst onder spec.parameters.objects.array. Voorbeeld:

    spec:
      parameters:
        keyvaultName: my-key-vault
        objects: |
          array:
            - |
              objectName: PlaceholderSecret
              objectType: secret
              objectVersion: ""
    
  5. Sla uw wijzigingen op en pas deze toe op uw cluster. Als u k9s gebruikt, worden uw wijzigingen automatisch toegepast.

Het CSI-stuurprogramma werkt geheimen bij met behulp van een polling-interval, daarom is het nieuwe geheim pas beschikbaar voor de pod als het volgende polling-interval. Als u een onderdeel onmiddellijk wilt bijwerken, start u de pods voor het onderdeel opnieuw op. Voer bijvoorbeeld de volgende opdrachten uit om het dataprocessoronderdeel opnieuw op te starten:

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-geheimen

De stappen voor het beheren van geheimen met Azure Key Vault voor Azure IoT MQ Preview verschillen. Zie MQ-geheimen beheren met Key Vault voor meer informatie.