Dela via


Säkerhetsöverväganden för att köra instrumentpanelen för .NET.NET Aspire

Instrumentpanelen .NET.NET Aspire ger kraftfulla insikter till dina appar. Instrumentpanelen visar information om resurser, inklusive deras konfiguration, konsolloggar och djupgående telemetri.

Data som visas på instrumentpanelen kan vara känsliga. Konfigurationen kan till exempel innehålla hemligheter i miljövariabler, och telemetri kan innehålla känsliga körningsdata. Var noga med att skydda åtkomsten till instrumentpanelen.

Scenarier för att köra instrumentpanelen

Instrumentpanelen kan köras i olika scenarier, till exempel att automatiskt starta med .NET Aspire verktyg, eller som ett fristående program som är separat från andra .NET Aspire integreringar. Hur du skyddar instrumentpanelen beror på hur den körs.

.NET .NET Aspire verktyg

Instrumentpanelen startas automatiskt när en .NET.NET Aspire appvärd körs. Instrumentpanelen är säker som standard när den körs från .NET.NET Aspire verktyg:

  • Transporten skyddas med HTTPS. Https konfigureras som standard i launchSettings.json. Startprofilen innehåller https adresser i värden för applicationUrl och DOTNET_DASHBOARD_OTLP_ENDPOINT_URL.
  • Webbläsarklientdelen autentiserad med en webbläsartoken.
  • Inkommande telemetri autentiseras med en API-nyckel.

HTTPS på instrumentpanelen använder ASP.NET Core utvecklingscertifikat. Certifikatet måste vara betrott för att instrumentpanelen ska fungera korrekt. De steg som krävs för att lita på utvecklingscertifikatet skiljer sig beroende på datorns operativsystem:

Det finns scenarier där du kanske vill tillåta en osäker transport. Instrumentpanelen kan köras utan HTTPS från .NET.NET Aspire appvärd genom att konfigurera inställningen ASPIRE_ALLOW_UNSECURED_TRANSPORT till true. Mer information finns i Tillåt oskyddad transport i .NET.NET Aspire.

Fristående läge

Instrumentpanelen levereras som en Docker bild och kan användas utan rest av .NET Aspire. När instrumentpanelen startas i fristående läge är den som standard en blandning av säkra och oskyddade inställningar.

  • Webbläsarklientdelen autentiserad med en webbläsartoken.
  • Inkommande telemetri är oskyddad. Varningar visas i konsolen och instrumentpanelens användargränssnitt.

Telemetrislutpunkten accepterar inkommande OTLP-data utan autentisering. När slutpunkten är oskyddad är instrumentpanelen öppen för att ta emot telemetri från ej betrodda appar.

Information om hur du skyddar telemetrin när du kör instrumentpanelen i fristående läge finns i Skydda telemetrislutpunkten.

Säker telemetrislutpunkt

Instrumentpanelen .NET.NET Aspire innehåller en mängd olika sätt att visa loggar, spårningar och mått för din app. Med den här informationen kan du spåra appens beteende och prestanda och diagnostisera eventuella problem som uppstår. Det är viktigt att du kan lita på den här informationen och en varning visas i instrumentpanelens användargränssnitt om telemetri inte är skyddad.

Instrumentpanelen samlar in telemetri via en OTLP (OpenTelemetry protokoll) slutpunkt. Appar skickar telemetri till den här slutpunkten och instrumentpanelen lagrar den externa information som den tar emot i minnet, som sedan är tillgänglig via användargränssnittet.

För att förhindra att ej betrodda appar skickar telemetri till .NET.NET Aspirebör OTLP-slutpunkten skyddas. OTLP-slutpunkten skyddas automatiskt med en API-nyckel när instrumentpanelen startas av .NET.NET Aspire verktyg. Ytterligare konfiguration krävs för fristående läge.

API-nyckelautentisering kan aktiveras på telemetrislutpunkten med ytterligare konfiguration:

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

Föregående Docker kommando:

  • Startar .NET.NET Aspire instrumentpanelsbild och exponerar OTLP-slutpunkten som port 4317
  • Konfigurerar OTLP-slutpunkten att använda ApiKey autentisering. Detta kräver att inkommande telemetri har ett giltigt x-otlp-api-key huvudvärde.
  • Konfigurerar den förväntade API-nyckeln. {MY_APIKEY} i exempelvärdet bör ersättas med en verklig API-nyckel. API-nyckeln kan vara valfri text, men ett värde med minst 128 bitar entropi rekommenderas.

När API-nyckelautentisering har konfigurerats verifierar instrumentpanelen att inkommande telemetri har en nödvändig API-nyckel. Appar som skickar instrumentpanelens telemetri måste konfigureras för att skicka API-nyckeln. Detta kan konfigureras i .NET med OtlpExporterOptions.Headers:

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

Andra språk har olika OpenTelmetry-API:er. Att skicka OTEL_EXPORTER_OTLP_HEADERS miljövariabeln till appar är ett universellt sätt att konfigurera huvudet.

Minnesöverbelastning

Instrumentpanelen lagrar extern information som den tar emot i minnet, till exempel resursinformation och telemetri. Även om antalet resurser som instrumentpanelen spårar begränsas finns det ingen gräns för hur mycket telemetriappar som skickas till instrumentpanelen. Det måste finnas gränser för hur mycket information som lagras för att förhindra att instrumentpanelen använder för mycket minne och uttömmer tillgängligt minne på den aktuella datorn.

Telemetrigränser

För att förhindra minnesöverbelastning begränsar instrumentpanelen hur mycket telemetri den lagrar som standard. Det finns till exempel högst 10 000 strukturerade loggposter per resurs. När gränsen har nåtts tas en gammal post bort för varje ny loggpost som tas emot.

Konfigurationen kan anpassa telemetrigränser.