Aktivieren sicherer Einstellungen in „Azure IoT Einsatz“
Die sicheren Einstellungen für Azure IoT Einsatz umfassen das Einrichten der Geheimnisverwaltung und einer benutzerseitig zugewiesenen verwalteten Identität für Cloudverbindungen, z. B. einen OPC UA-Server, oder Datenflussendpunkte.
Dieser Artikel enthält Anweisungen zum Aktivieren sicherer Einstellungen, wenn dies nicht bereits während der Erstbereitstellung erfolgt ist.
Voraussetzungen
Eine Instanz von Azure IoT Einsatz, die mit Testeinstellungen bereitgestellt wurde. Sie haben z. B. Testeinstellungen ausgewählt, als Sie den Anweisungen in Bereitstellen von „Azure IoT Einsatz“ in einem Kubernetes-Cluster mit Arc-Unterstützung folgten.
Installation der Azure CLI auf Ihrem Entwicklungscomputer. Für dieses Szenario ist mindestens die Version 2.64.0 der Azure CLI erforderlich. Verwenden Sie
az --version
, um Ihre Version zu überprüfen. Bei Bedarf können Sie sie mithilfe vonaz upgrade
aktualisieren. Weitere Informationen finden Sie unter Installieren der Azure CLI.Die aktuelle Version der connectedk8s-Erweiterung für die Azure CLI. Verwenden Sie den folgenden Befehl, um die Erweiterung hinzuzufügen oder auf die neueste Version zu aktualisieren:
az extension add --upgrade --name connectedk8s
Die Azure IoT Einsatz-Erweiterung für die Azure CLI. Verwenden Sie den folgenden Befehl, um die Erweiterung hinzuzufügen oder auf die neueste Version zu aktualisieren:
az extension add --upgrade --name azure-iot-ops
Aktivieren des Clusters für sichere Einstellungen
Um die Synchronisierung von Geheimnissen für Ihre Azure IoT Einsatz-Instanz zu aktivieren, muss Ihr Cluster als OIDC-Aussteller und für den Workloadidentitätsverbund aktiviert sein. Diese Konfiguration ist erforderlich, damit die Geheimnisspeichererweiterung die Geheimnisse aus einer Azure Key Vault-Instanz synchronisiert und als Kubernetes-Geheimnisse am Edge speichert.
Für Azure Kubernetes Service-Cluster (AKS) können der OIDC-Aussteller und die Workloadidentitätsfeatures nur zum Zeitpunkt der Clustererstellung aktiviert werden. Für Cluster in AKS Edge Essentials aktiviert das automatisierte Skript diese Features standardmäßig. Führen Sie für AKS-Cluster in Azure Local die Schritte zum Bereitstellen und Konfigurieren der Workloadidentität auf einem Cluster mit AKS-Aktivierung durch Azure Arc aus, um einen neuen Cluster zu erstellen, wenn Sie über keinen mit den erforderlichen Features verfügen.
Bei k3s-Clustern in Kubernetes können Sie einen vorhandenen Cluster aktualisieren. Führen Sie die folgenden Schritte aus, um diese Features zu aktivieren und zu konfigurieren:
Aktualisieren Sie den Cluster, um OIDC-Aussteller und Workloadidentität zu aktivieren.
az connectedk8s update -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --enable-oidc-issuer --enable-workload-identity
Wenn Sie die Features für OIDC-Aussteller und Workloadidentität bei der Clustererstellung aktiviert haben, müssen Sie den vorherigen Befehl nicht erneut ausführen. Verwenden Sie den folgenden Befehl, um den Status der OIDC-Aussteller- und Workloadidentitätsfeatures für Ihren Cluster zu überprüfen:
az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query "{ClusterName:name, OIDCIssuerEnabled:oidcIssuerProfile.enabled, WorkloadIdentityEnabled:securityProfile.workloadIdentity.enabled}"
Rufen Sie die Aussteller-URL des Clusters ab.
az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
Notieren Sie sich die Ausgabe dieses Befehls, um sie in den nächsten Schritten zu verwenden.
Erstellen Sie die k3s-Konfigurationsdatei:
sudo nano /etc/rancher/k3s/config.yaml
Fügen Sie der Datei
config.yaml
den folgenden Inhalt hinzu, und ersetzen Sie den Platzhalter<SERVICE_ACCOUNT_ISSUER>
durch die Aussteller-URL Ihres Clusters, die Sie zuvor notiert haben:kube-apiserver-arg: - service-account-issuer=<SERVICE_ACCOUNT_ISSUER> - service-account-max-token-expiration=24h
Speichern Sie die Datei, und beenden Sie den Nano-Editor.
Starten Sie den k3s-Dienst neu:
sudo systemctl restart k3s
Einrichten der Geheimnisverwaltung
Die Geheimnisverwaltung für Azure IoT Einsatz verwendet die Geheimnisspeicher-Erweiterung, um die Geheimnisse aus einer Azure Key Vault-Instanz zu synchronisieren und sie als Kubernetes-Geheimnisse am Edge zu speichern. Die Erweiterung für den Geheimnisspeicher erfordert eine benutzerseitig zugewiesene verwaltete Identität mit Zugriff auf die Azure Key Vault-Instanz, in der Geheimnisse gespeichert werden. Weitere Informationen finden Sie unter Was sind verwaltete Identitäten für Azure-Ressourcen?.
So richten Sie die Geheimnisverwaltung ein:
Erstellen Sie eine Azure Key Vault-Instanz, die zum Speichern von Geheimnissen verwendet wird, und erteilen Sie Ihrem Benutzerkonto Berechtigungen zum Verwalten von Geheimnissen mit der Rolle
Key Vault Secrets Officer
.Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identität für die Geheimnisspeicher-Erweiterung.
Verwenden Sie den Befehl az iot ops secretsync enable, um die Azure IoT Einsatz-Instanz für die Geheimnissynchronisierung einzurichten. Dieser Befehl:
- Erstellt Anmeldeinformationen einer Verbundidentität mithilfe der benutzerseitig zugewiesenen verwalteten Identität.
- Fügt der benutzerseitig zugewiesenen verwalteten Identität eine Rollenzuweisung für den Zugriff auf Azure Key Vault hinzu.
- Fügt eine minimale Geheimnisanbieterklasse hinzu, die der Azure IoT Einsatz-Instanz zugeordnet ist.
# 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
Nachdem die Einrichtung der Geheimnissynchronisierung abgeschlossen ist, können Sie unterVerwalten von Geheimnissen für Ihre Bereitstellung von „Azure IoT Einsatz“ nachlesen, wie Geheimnisse mit „Azure IoT Einsatz“ verwendet werden.
Einrichten einer benutzerseitig zugewiesenen verwalteten Identität für Cloudverbindungen
Einige Azure IoT Einsatz-Komponenten, wie z. B. Datenflussendpunkte, verwenden eine benutzerseitig zugewiesene verwaltete Identität für Cloudverbindungen. Wir empfehlen, dass Sie eine andere Identität verwenden als die, die Sie zum Einrichten der Geheimnisverwaltung verwendet haben.
Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identität, die für Cloudverbindungen verwendet wird.
Hinweis
Sie müssen die Identitätsberechtigung für die Cloudressource erteilen, für die Sie die verwaltete Identität verwenden möchten.
Verwenden Sie den Befehl az iot ops identity assign, um die Identität der Azure IoT Einsatz-Instanz zuzuweisen. Mit diesem Befehl werden außerdem Anmeldeinformationen einer Verbundidentität mithilfe des OIDC-Ausstellers des angegebenen verbundenen Clusters und des Azure IoT Einsatz-Dienstkontos erstellt.
# 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
Sie können nun diese verwaltete Identität in Datenflussendpunkten für Cloudverbindungen verwenden.