Správa tajných kódů pro nasazení Azure IoT Operations Preview

Důležité

Azure IoT Operations Preview – Služba Azure Arc je aktuálně ve verzi PREVIEW. Tento software ve verzi Preview byste neměli používat v produkčních prostředích.

Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.

Správa tajných kódů ve službě Azure IoT Operations Preview používá Azure Key Vault jako řešení spravovaného trezoru v cloudu a používá ovladač CSI úložiště tajných kódů k načítání tajných kódů z cloudu a jejich ukládání na hraničních zařízeních.

Požadavky

Konfigurace úložiště tajných kódů v clusteru

Operace Azure IoT podporují službu Key Vault pro ukládání tajných kódů a certifikátů. Příkaz az iot ops init Azure CLI automatizuje kroky nastavení instančního objektu pro udělení přístupu k trezoru klíčů a konfiguraci tajných kódů, které potřebujete pro spuštění operací Azure IoT.

Další informace najdete v tématu Nasazení rozšíření Azure IoT Operations Preview do clusteru Kubernetes.

Ruční konfigurace instančního objektu a služby Key Vault

Pokud účet Azure, který az iot ops init spouští příkaz, nemá oprávnění k dotazování Microsoft Graphu a vytváření instančních objektů, můžete tyto počáteční kroky připravit a použít při spuštění příkazu rozhraní příkazového řádku další argumenty, jak je popsáno v tématu Nasazení rozšíření Azure IoT Operations.

Konfigurace instančního objektu pro interakci se službou Key Vault prostřednictvím ID Microsoft Entra

Pomocí těchto kroků vytvořte novou registraci aplikace pro aplikaci Azure IoT Operations, která se použije k ověření ve službě Key Vault.

Nejprve zaregistrujte aplikaci s ID Microsoft Entra:

  1. Na panelu hledání na webu Azure Portal vyhledejte a vyberte ID Microsoft Entra.

  2. V části Spravovat v nabídce Microsoft Entra ID vyberte Registrace aplikací.

  3. Vyberte Nová registrace.

  4. Na stránce Registrace aplikace zadejte následující informace:

    Pole Hodnota
    Název Zadejte název aplikace.
    Podporované typy účtů Ujistěte se, že je vybraná jenom možnost Účty v tomto organizačním adresáři (<pouze YOUR_TENANT_NAME> – jeden tenant ).
    Identifikátor URI přesměrování Vyberte web jako platformu. Webovou adresu můžete ponechat prázdnou.
  5. Vyberte Zaregistrovat.

    Po vytvoření aplikace budete přesměrováni na stránku prostředků.

  6. Zkopírujte ID aplikace (klienta) ze stránky s přehledem registrace aplikace. Tuto hodnotu použijete jako argument při spuštění nasazení operací Azure IoT pomocí az iot ops init příkazu.

Pak dejte aplikaci oprávnění ke službě Key Vault:

  1. Na stránce prostředků vaší aplikace vyberte oprávnění rozhraní API v části Spravovat v nabídce aplikace.

  2. Vyberte Přidat oprávnění.

  3. Na stránce Oprávnění rozhraní API žádosti se posuňte dolů a vyberte Azure Key Vault.

  4. Vyberte Delegovaná oprávnění.

  5. Zaškrtnutím políčka zaškrtněte user_impersonation oprávnění.

  6. Vyberte Přidat oprávnění.

Vytvořte tajný klíč klienta, který se přidá do clusteru Kubernetes pro ověření ve vašem trezoru klíčů:

  1. Na stránce prostředků vaší aplikace vyberte Certifikáty a tajné kódy v části Spravovat v nabídce aplikace.

  2. Vyberte Nový tajný klíč klienta.

  3. Zadejte volitelný popis tajného kódu a pak vyberte Přidat.

  4. Zkopírujte hodnotu z nového tajného kódu. Tuto hodnotu použijete později při spuštění az iot ops init.

Načtěte ID instančního objektu:

  1. Na stránce Přehled aplikace v části Základy vyberte odkaz na název aplikace v části Spravovaná aplikace v místním adresáři. Otevře se vlastnosti podnikové aplikace. Zkopírujte ID objektu, které chcete použít při spuštění az iot ops init.

Vytvořte trezor klíčů.

Vytvořte novou instanci služby Azure Key Vault a ujistěte se, že má model oprávnění nastavený na zásady přístupu k trezoru.

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

Pokud máte existující trezor klíčů, můžete model oprávnění změnit spuštěním následujícího příkazu:

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

Po spuštění az iot ops initbudete potřebovat ID prostředku služby Key Vault. Id prostředku načtete spuštěním následujícího příkazu:

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

Nastavení zásad přístupu instančního objektu ve službě Key Vault

Nově vytvořený instanční objekt potřebuje zásady tajnéholist kódu a get přístupu, aby operace Azure IoT fungovaly s úložištěm tajných kódů.

Pro správu zásad přístupu ke službě Key Vault potřebuje objekt zabezpečení přihlášený k rozhraní příkazového řádku dostatečná oprávnění Azure. V modelu řízení přístupu na základě role (RBAC) je toto oprávnění součástí přispěvatele služby Key Vault nebo vyšších rolí.

Tip

Pokud jste k vytvoření trezoru klíčů použili přihlášený objekt příkazového řádku, pravděpodobně už máte správná oprávnění. Pokud ale odkazujete na jiný nebo existující trezor klíčů, měli byste zkontrolovat, jestli máte dostatečná oprávnění k nastavení zásad přístupu.

Spuštěním následujícího příkazu přiřaďte instančnímu objektu tajný klíčlist a get oprávnění.

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

Předání argumentů instančního objektu a služby Key Vault do nasazení operací Azure IoT

Když použijete průvodce nasazením rozšíření Azure IoT Operations, předejte do příkazu další příznaky az iot ops init , aby bylo možné použít předkonfigurovaný instanční objekt a trezor klíčů.

Následující příklad ukazuje, jak připravit cluster pro operace Azure IoT bez jeho plného nasazení pomocí --no-deploy příznaku. Můžete také spustit příkaz bez tohoto argumentu pro výchozí nasazení operací Azure IoT.

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

Jedním krokem, který příkaz provede, je zajistit, init aby všechny třídy zprostředkovatele tajných kódů vyžadované operacemi Azure IoT měly výchozí tajný klíč nakonfigurovaný v trezoru klíčů. Pokud hodnota výchozího tajného kódu neexistuje init , vytvoří ji. Tento krok vyžaduje, aby objekt zabezpečení přihlášený k rozhraní příkazového řádku má oprávnění k tajným kódům set . Pokud chcete použít existující tajný klíč jako výchozí tajný klíč SPC, můžete ho zadat pomocí parametru --kv-sat-secret-name , v takovém případě protokolovaný instanční objekt potřebuje jenom oprávnění k tajným kódům get .

Přidání tajného kódu do komponenty Azure IoT Operations

Jakmile máte v clusteru nastavené úložiště tajných kódů, můžete vytvořit a přidat tajné kódy služby Key Vault.

  1. Vytvořte tajný klíč ve službě Key Vault s jakýmkoli názvem a hodnotou, kterou potřebujete. Tajný klíč můžete vytvořit pomocí webu Azure Portal nebo příkazu az keyvault secret set .

  2. V clusteru identifikujte třídu zprostředkovatele tajných kódů (SPC) pro komponentu, do které chcete tajný kód přidat. Například aio-default-spc. Pomocí následujícího příkazu zobrazte seznam všech řadičů služeb v clusteru:

    kubectl get secretproviderclasses -A
    
  3. Otevřete soubor v preferovaném textovém editoru. Pokud používáte k9s, zadejte e úpravy.

  4. Přidejte tajný objekt do seznamu v části spec.parameters.objects.array. Příklad:

    spec:
      parameters:
        keyvaultName: my-key-vault
        objects: |
          array:
            - |
              objectName: PlaceholderSecret
              objectType: secret
              objectVersion: ""
    
  5. Uložte změny a použijte je v clusteru. Pokud používáte k9s, změny se použijí automaticky.

Ovladač CSI aktualizuje tajné kódy pomocí intervalu dotazování, takže nový tajný kód není pro pod dostupný až do dalšího intervalu dotazování. Pokud chcete komponentu aktualizovat okamžitě, restartujte pody pro danou komponentu. Pokud například chcete restartovat komponentu Zpracovatel dat, spusťte následující příkazy:

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

Tajné kódy Azure IoT MQ Preview

Postup správy tajných kódů pomocí služby Azure Key Vault pro Azure IoT MQ Preview se liší. Další informace najdete v tématu Správa tajných kódů MQ pomocí služby Key Vault.