Partager via


Considérations relatives à la sécurité pour l’exécution du tableau de bord .NET.NET Aspire

Le tableau de bord .NET.NET Aspire offre des insights puissants sur vos applications. Le tableau de bord affiche des informations sur les ressources, notamment leur configuration, leurs journaux de console et les données de télémétrie approfondies.

Les données affichées dans le tableau de bord peuvent être sensibles. Par exemple, la configuration peut inclure des secrets dans des variables d’environnement, et la télémétrie peut inclure des données d’exécution sensibles. Veillez à sécuriser l’accès au tableau de bord.

Scénarios d’exécution du tableau de bord

Le tableau de bord peut être exécuté dans différents scénarios, comme démarrer automatiquement par .NET Aspire outils, ou en tant qu’application autonome distincte d’autres intégrations .NET Aspire. Les étapes de sécurisation du tableau de bord dépendent de la façon dont il est exécuté.

outils .NET.NET Aspire

Le tableau de bord est démarré automatiquement lorsqu’un hôte d’application .NET.NET Aspire est exécuté. Le tableau de bord est sécurisé par défaut lors de l’exécution à partir de .NET.NET Aspire outils :

  • Le transport est sécurisé avec HTTPS. L’utilisation de HTTPS est configurée par défaut dans launchSettings.json. Le profil de lancement inclut des adresses https dans les valeurs de applicationUrl et de DOTNET_DASHBOARD_OTLP_ENDPOINT_URL.
  • Serveur frontal du navigateur authentifié avec un jeton de navigateur.
  • Données de télémétrie entrantes authentifiées avec une clé API.

HTTPS dans le tableau de bord utilise le certificat de développement ASP.NET Core. Le certificat doit être approuvé pour que le tableau de bord fonctionne correctement. Les étapes requises pour approuver le certificat de développement sont différentes en fonction du système d’exploitation de l’ordinateur :

Il existe des scénarios où vous souhaiterez peut-être autoriser un transport non sécurisé. Le tableau de bord peut s’exécuter sans HTTPS à partir de l’hôte de l’application .NET.NET Aspire en configurant le paramètre ASPIRE_ALLOW_UNSECURED_TRANSPORT sur true. Pour plus d’informations, consultez Autoriser le transport non sécurisé dans .NET.NET Aspire.

Mode autonome

Le tableau de bord est fourni en tant qu’image Docker et peut être utilisé sans le reste de .NET Aspire. Lorsque le tableau de bord est lancé en mode autonome, il est défini par défaut sur un mélange de paramètres sécurisés et non sécurisés.

  • Serveur frontal du navigateur authentifié avec un jeton de navigateur.
  • La télémétrie entrante n’est pas sécurisée. Les avertissements sont affichés dans l’interface utilisateur de la console et du tableau de bord.

Le point de terminaison de télémétrie accepte les données OTLP entrantes sans authentification. Lorsque le point de terminaison n’est pas sécurisé, le tableau de bord est ouvert à la réception de données de télémétrie à partir d’applications non approuvées.

Pour plus d’informations sur la sécurisation des données de télémétrie lors de l’exécution du tableau de bord en mode autonome, consultez Sécurisation du point de terminaison de télémétrie.

Sécuriser le point de terminaison de télémétrie

Le tableau de bord .NET.NET Aspire fournit différentes façons d’afficher les journaux, les traces et les métriques de votre application. Ces informations vous permettent de suivre le comportement et les performances de votre application et de diagnostiquer les problèmes qui surviennent. Il est important que vous puissiez approuver ces informations et qu’un avertissement s’affiche dans l’interface utilisateur du tableau de bord si la télémétrie n’est pas sécurisée.

Le tableau de bord collecte les données de télémétrie par le biais d’un point de terminaison OTLP (protocole). Les applications envoient des données de télémétrie à ce point de terminaison, et le tableau de bord stocke les informations externes qu’elle reçoit en mémoire, qui est ensuite accessible via l’interface utilisateur.

Pour empêcher les applications non approuvées d’envoyer des données de télémétrie à .NET.NET Aspire, le point de terminaison OTLP doit être sécurisé. Le point de terminaison OTLP est automatiquement sécurisé avec une clé API lorsque le tableau de bord est démarré par .NET.NET Aspire outils. Une configuration supplémentaire est requise pour le mode autonome.

L’authentification par clé API peut être activée sur le point de terminaison de télémétrie avec une configuration supplémentaire :

docker run --rm -it -d -p 18888:18888 -p 4317:18889 --name aspire-dashboard \
    -e DASHBOARD__OTLP__AUTHMODE='ApiKey' \
    -e DASHBOARD__OTLP__PRIMARYAPIKEY='{MY_APIKEY}' \
    mcr.microsoft.com/dotnet/aspire-dashboard:9.0

Commande Docker précédente :

  • Démarre l’image de tableau de bord .NET.NET Aspire et expose le point de terminaison OTLP en tant que port 4317
  • Configure le point de terminaison OTLP pour utiliser l’authentification ApiKey. Cela nécessite que les données de télémétrie entrantes possèdent une valeur d’en-tête x-otlp-api-key valide.
  • Configure la clé API attendue. {MY_APIKEY} dans l’exemple de valeur doit être remplacé par une clé API réelle. La clé API peut être n’importe quel texte, mais une valeur avec au moins 128 bits d’entropie est recommandée.

Lorsque l’authentification par clé API est configurée, le tableau de bord valide la télémétrie entrante a une clé API requise. Les applications qui envoient les données de télémétrie du tableau de bord doivent être configurées pour envoyer la clé API. Cela peut être configuré dans .NET avec OtlpExporterOptions.Headers:

builder.Services.Configure<OtlpExporterOptions>(
    o => o.Headers = $"x-otlp-api-key={MY_APIKEY}");

D’autres langages ont des API OpenTelmetry différentes. Le passage de la variable d’environnement OTEL_EXPORTER_OTLP_HEADERS aux applications est un moyen universel de configurer l’en-tête.

Épuisement de la mémoire

Le tableau de bord stocke les informations externes qu’il reçoit en mémoire, telles que les détails des ressources et les données de télémétrie. Bien que le nombre de ressources que le tableau de bord effectue sont limitées, il n’existe pas de limite à la quantité d’applications de télémétrie envoyées au tableau de bord. Les limites doivent être placées sur la quantité d’informations stockées pour empêcher le tableau de bord d’utiliser une quantité excessive de mémoire et épuiser la mémoire disponible sur l’ordinateur actuel.

Limites de télémétrie

Pour éviter l’épuisement de la mémoire, le tableau de bord limite la quantité de données de télémétrie qu’il stocke par défaut. Par exemple, il existe un maximum de 10 000 entrées de journal structurées par ressource. Une fois la limite atteinte, chaque nouvelle entrée de journal reçue entraîne la suppression d’une ancienne entrée.

La configuration peut personnaliser les limites de télémétrie.