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. Například při použití pokynů v části Nasazení operací Azure IoT do clusteru Kubernetes s podporou arc jste zvolili testovací nastavení.
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 aaz 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
Pokud chcete povolit synchronizaci tajných kódů pro instanci azure IoT Operations, musí být váš cluster povolený jako vystavitel OIDC a pro federaci identit úloh. Tato konfigurace se vyžaduje, aby rozšíření Secret Store synchronizovala tajné kódy z trezoru klíčů Azure a ukládaly je na hraničních zařízeních jako tajné kódy 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ě:
Aktualizujte cluster tak, aby povolil vystavitele OIDC a identitu ú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}"
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.
Vytvořte konfigurační soubor k3s:
sudo nano /etc/rancher/k3s/config.yaml
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.
Restartujte službu k3s:
sudo systemctl restart k3s
Nastavení správy tajných kódů
Správa tajných kódů pro operace Azure IoT používá rozšíření Tajné úložiště tajných kódů k synchronizaci tajných kódů z trezoru klíčů Azure a jejich uložení na hraničních zařízeních jako tajné kódy Kubernetes. Rozšíření Secret Store vyžaduje spravovanou identitu přiřazenou uživatelem s přístupem k trezoru klíčů Azure, kde se tajné kódy ukládají. Další informace najdete v tématu Co jsou spravované identity pro prostředky Azure?
Nastavení správy tajných kódů:
Vytvořte trezor klíčů Azure, který se používá k ukládání tajných kódů, a udělte vašemu
Key Vault Secrets Officer
uživatelskému účtu oprávnění ke správě tajných kódů s rolí.Vytvořte spravovanou identitu přiřazenou uživatelem pro rozšíření Úložiště tajných kódů.
Pomocí příkazu az iot ops secretsync můžete nastavit instanci operací Azure IoT pro synchronizaci tajných kódů. Tento příkaz:
- Vytvoří přihlašovací údaje federované identity 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 k trezoru klíčů Azure.
- Přidá minimální třídu zprostředkovatele tajných kódů přidruženou k instanci 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
Teď, když je nastavení synchronizace tajných kódů hotové, najdete v tématu Správa tajných kódů pro nasazení operací Azure IoT, kde se dozvíte, jak používat tajné kódy 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ů.
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 tomu, pro který cloudový prostředek použijete spravovanou identitu.
Pomocí příkazu az iot ops identity přiřaďte identitu k instanci Azure IoT Operations. Tento příkaz také vytvoří přihlašovací údaje federované identity pomocí vystavitele OIDC označeného připojeného clusteru 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
Teď můžete tuto spravovanou identitu použít v koncových bodech toku dat pro cloudová připojení.