Sdílet prostřednictvím


Povolení zabezpečených nastavení v operacích Azure IoT

Nastavení zabezpečení pro operace Azure IoT zahrnuje nastavení správy tajných kódů a spravovanou identitu přiřazenou uživatelem pro cloudová připojení; Například server OPC UA nebo koncové body toku dat.

Tento článek obsahuje pokyny k povolení nastavení zabezpečení, pokud jste to neudělali během počátečního nasazení.

Požadavky

  • Instance provozu Azure IoT nasazená s testovacím nastavením.

  • Azure CLI nainstalované na vývojovém počítači. Tento scénář vyžaduje Azure CLI verze 2.53.0 nebo vyšší. Použijte az --version ke kontrole vaší verze a az upgrade k aktualizaci v případě potřeby. Další informace najdete v tématu Postup instalace Azure CLI.

  • Nejnovější verze rozšíření connectedk8s pro Azure CLI. Pomocí následujícího příkazu přidejte rozšíření nebo ho aktualizujte na nejnovější verzi:

    az extension add --upgrade --name connectedk8s
    
  • Rozšíření Azure IoT Operations pro Azure CLI. Pomocí následujícího příkazu přidejte rozšíření nebo ho aktualizujte na nejnovější verzi:

    az extension add --upgrade --name azure-iot-ops
    

Povolení zabezpečeného nastavení clusteru

Pro povolení synchronizace tajemství pro vaši instanci Azure IoT Operations musí být ve vašem clusteru povoleny funkce vystavitele OIDC a federace identit úloh. Tato konfigurace je vyžadována, aby rozšíření úložiště tajemství služby Azure Key Vault synchronizovalo tajemství z Azure Key Vault a ukládalo je na okraji jako tajemství Kubernetes.

U clusterů Azure Kubernetes Service (AKS) je možné funkce vystavitele a identity úloh OIDC povolit pouze při vytváření clusteru. U clusterů v AKS Edge Essentials umožňuje automatizovaný skript tyto funkce ve výchozím nastavení. V případě clusterů AKS v Místním prostředí Azure postupujte podle pokynů k nasazení a konfiguraci identity úloh v clusteru AKS s podporou clusteru Azure Arc a vytvořte nový cluster, pokud ho nemáte s požadovanými funkcemi.

V případě clusterů k3s v Kubernetes můžete aktualizovat existující cluster. Pokud chcete povolit a nakonfigurovat tyto funkce, postupujte následovně:

  1. Aktualizujte klastr k povolení vydavatele OIDC a identity úloh.

    az connectedk8s update -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --enable-oidc-issuer --enable-workload-identity
    

    Pokud jste při vytváření clusteru povolili funkce vystavitele OIDC a identity úloh, nemusíte znovu spouštět předchozí příkaz. Pomocí následujícího příkazu zkontrolujte stav funkcí vystavitele OIDC a identit úloh pro váš cluster:

    az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query "{ClusterName:name, OIDCIssuerEnabled:oidcIssuerProfile.enabled, WorkloadIdentityEnabled:securityProfile.workloadIdentity.enabled}"
    
  2. Získejte adresu URL vystavitele clusteru.

    az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
    

    Poznamenejte si výstup z tohoto příkazu, který použijete v dalších krocích.

  3. Na počítači, na kterém jste nasadili cluster Kubernetes, vytvořte konfigurační soubor k3s:

    sudo nano /etc/rancher/k3s/config.yaml
    
  4. Přidejte do config.yaml souboru následující obsah a nahraďte <SERVICE_ACCOUNT_ISSUER> zástupný text adresou URL vystavitele clusteru, který jste si poznamenali dříve:

    kube-apiserver-arg:
    - service-account-issuer=<SERVICE_ACCOUNT_ISSUER>
    - service-account-max-token-expiration=24h
    

    Uložte soubor a ukončete editor nano.

  5. Restartujte službu k3s:

    sudo systemctl restart k3s
    

Nastavení správy tajných kódů

Správa tajemství pro operace Azure IoT používá rozšíření Secret Store k synchronizaci tajemství ze služby Azure Key Vault a jejich ukládání na okraji sítě jako tajemství Kubernetes. Rozšíření Secret Store vyžaduje spravovanou identitu přiřazenou uživatelem s přístupem ke službě Azure Key Vault, ve které jsou tajné kódy uložené. Další informace najdete v tématu Co jsou spravované identity pro prostředky Azure?

Jak zřídit správu tajemství:

  1. Vytvořte službu Azure Key Vault , která se používá k ukládání tajných kódů, a udělte svému uživatelskému účtu oprávnění ke správě tajných kódů s Key Vault Secrets Officer rolí.

  2. Vytvořte spravovanou identitu přiřazenou uživatelem pro rozšíření Úložiště tajných kódů, která se použije pro přístup k trezoru klíčů.

  3. Použijte příkaz az iot ops secretsync enable k nastavení instance Azure IoT Operations pro synchronizaci tajemství. Tento příkaz:

    • Vytvoří přihlašovací údaje pro federovanou identitu pomocí spravované identity přiřazené uživatelem.
    • Přidá přiřazení role ke spravované identitě přiřazené uživatelem pro přístup ke službě Azure Key Vault.
    • Přidá minimální třídu poskytovatele tajemství přidruženou k instanci Microsoft Azure IoT Operations.
    # Variable block
    AIO_INSTANCE_NAME="<AIO_INSTANCE_NAME>"
    RESOURCE_GROUP="<RESOURCE_GROUP>"
    USER_ASSIGNED_MI_NAME="<USER_ASSIGNED_MI_NAME>"
    KEYVAULT_NAME="<KEYVAULT_NAME>"
    
    #Get the resource ID of the user-assigned managed identity
    USER_ASSIGNED_MI_RESOURCE_ID=$(az identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query id --output tsv)
    
    #Get the resource ID of the key vault
    KEYVAULT_RESOURCE_ID=$(az keyvault show --name $KEYVAULT_NAME --resource-group $RESOURCE_GROUP --query id --output tsv)
    
    #Enable secret synchronization
    az iot ops secretsync enable --instance $AIO_INSTANCE_NAME \
                                 --resource-group $RESOURCE_GROUP \
                                 --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID \
                                 --kv-resource-id $KEYVAULT_RESOURCE_ID
    

Nyní, když je nastavení synchronizace tajemství dokončeno, můžete odkázat na Správa tajemství pro nasazení operací Azure IoT a dozvědět se, jak používat tajemství s operacemi Azure IoT.

Nastavení spravované identity přiřazené uživatelem pro cloudová připojení

Některé komponenty operací Azure IoT, jako jsou koncové body toku dat, používají spravovanou identitu přiřazenou uživatelem pro cloudová připojení. Doporučujeme použít samostatnou identitu od identity, kterou jste použili k nastavení správy tajných kódů.

  1. Vytvořte spravovanou identitu přiřazenou uživatelem, která se používá pro cloudová připojení.

    Poznámka:

    Identitě budete muset udělit oprávnění k jakémukoliv cloudovému prostředku, u kterého použijete spravovanou identitu.

  2. Pomocí příkazu az iot ops identity přiřaďte identitu k instanci Azure IoT Operations. Tento příkaz také vytvoří pověření federované identity pomocí vystavitele OIDC spojeného s vybraným připojeným clusterem a účtu služby Azure IoT Operations.

    # Variable block
    AIO_INSTANCE_NAME="<AIO_INSTANCE_NAME>"
    RESOURCE_GROUP="<RESOURCE_GROUP>"
    USER_ASSIGNED_MI_NAME="<USER_ASSIGNED_MI_NAME FOR CLOUD CONNECTIONS>"
    
    #Get the resource ID of the user-assigned managed identity
    USER_ASSIGNED_MI_RESOURCE_ID=$(az identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query id --output tsv)
    
    #Assign the identity to the Azure IoT Operations instance
    az iot ops identity assign --name $AIO_INSTANCE_NAME \
                               --resource-group $RESOURCE_GROUP \
                               --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID
    
  3. Restartujte pody registru schématu, aby se použila nová identita.

    kubectl delete pods adr-schema-registry-0 adr-schema-registry-1 -n azure-iot-operations
    

Teď můžete tuto spravovanou identitu použít v koncových bodech toku dat pro cloudová připojení.