Sdílet prostřednictvím


Aspekty zabezpečení pro spuštění řídicího panelu .NET.NET Aspire

Řídicí panel .NET.NET Aspire nabízí vašim aplikacím výkonné přehledy. Řídicí panel zobrazuje informace o prostředcích, včetně jejich konfigurace, protokolů konzoly a podrobné telemetrie.

Data zobrazená na řídicím panelu můžou být citlivá. Konfigurace může například zahrnovat tajné kódy do proměnných prostředí a telemetrie může zahrnovat citlivá data modulu runtime. Je potřeba zajistit zabezpečení přístupu k řídicímu panelu.

Scénáře spuštění řídicího panelu

Řídicí panel je možné spustit v různých scénářích, jako je automatické spouštění pomocí nástrojů .NET Aspire nebo jako samostatná aplikace, která je oddělená od ostatních .NET Aspire integrací. Postup zabezpečení řídicího panelu závisí na tom, jak se spouští.

nástroje .NET.NET Aspire

Řídicí panel se automaticky spustí při spuštění hostitele aplikace .NET.NET Aspire. Řídicí panel je ve výchozím nastavení zabezpečený při spuštění z nástrojů .NET.NET Aspire:

  • Přenos je zabezpečený protokolem HTTPS. Použití protokolu HTTPS je ve výchozím nastavení nakonfigurované v launchSettings.json. Spouštěcí profil obsahuje https adresy v applicationUrl a DOTNET_DASHBOARD_OTLP_ENDPOINT_URL hodnotách.
  • Front-end prohlížeče se ověřil pomocí tokenu prohlížeče.
  • Příchozí telemetrie ověřená pomocí klíče rozhraní API

PROTOKOL HTTPS na řídicím panelu používá ASP.NET Core vývojový certifikát. Aby řídicí panel fungoval správně, musí být certifikát důvěryhodný. Kroky potřebné k důvěryhodnosti vývojového certifikátu se liší v závislosti na operačním systému počítače:

Existují scénáře, ve kterých můžete chtít povolit nezabezpečený přenos. Řídicí panel se dá spustit bez HTTPS z hostitele aplikace .NET.NET Aspire nakonfigurováním nastavení ASPIRE_ALLOW_UNSECURED_TRANSPORT na true. Další informace naleznete v tématu Povolit nezabezpečený přenos v .NET.NET Aspire.

Samostatný režim

Řídicí panel se dodává jako obrázek Docker a dá se použít bez rest.NET Aspire. Když se řídicí panel spustí v samostatném režimu, použije se ve výchozím nastavení kombinace zabezpečených a nezabezpečených nastavení.

  • Front-end prohlížeče se ověřil pomocí tokenu prohlížeče.
  • Příchozí telemetrie není zabezpečená. Upozornění se zobrazují v uživatelském rozhraní konzoly a řídicího panelu.

Koncový bod telemetrie přijímá příchozí data OTLP bez ověřování. Když je koncový bod nezabezpečený, řídicí panel se otevře pro příjem telemetrie z nedůvěryhodných aplikací.

Informace o zabezpečení telemetrie při spuštění řídicího panelu v samostatném režimu najdete v tématu Zabezpečení koncového bodu telemetrie.

Zabezpečený koncový bod telemetrie

Řídicí panel .NET.NET Aspire nabízí různé způsoby zobrazení protokolů, trasování a metrik pro vaši aplikaci. Tyto informace umožňují sledovat chování a výkon vaší aplikace a diagnostikovat případné problémy. Je důležité, abyste této informace důvěřovali, a pokud telemetrie není zabezpečená, zobrazí se v uživatelském rozhraní řídicího panelu upozornění.

Řídicí panel shromažďuje telemetrii prostřednictvím koncového bodu OTLP (protokol). Aplikace odesílají telemetrii do tohoto koncového bodu a řídicí panel ukládá externí informace, které přijímá do paměti, což je pak přístupné prostřednictvím uživatelského rozhraní.

Aby nedůvěryhodné aplikace neodesílaly telemetrii do .NET.NET Aspire, měl by být koncový bod OTLP zabezpečený. Koncový bod OTLP se při spuštění řídicího panelu automaticky zabezpečuje pomocí klíče rozhraní API .NET.NET Aspire nástroji. Pro samostatný režim se vyžaduje další konfigurace.

U koncového bodu telemetrie je možné povolit ověřování pomocí klíče rozhraní API s určitou další konfigurací:

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

Předchozí příkaz Docker:

  • Spustí image řídicího panelu .NET.NET Aspire a zpřístupní koncový bod OTLP jako port 4317.
  • Nakonfiguruje koncový bod OTLP tak, aby používal ověřování ApiKey. To vyžaduje, aby příchozí telemetrie má platnou hodnotu x-otlp-api-key hlavičky.
  • Nakonfiguruje očekávaný klíč rozhraní API. {MY_APIKEY} v ukázkové hodnotě by se měl nahradit skutečným klíčem rozhraní API. Klíč rozhraní API může být libovolný text, ale doporučuje se hodnota s nejméně 128 bity entropie.

Pokud je nakonfigurované ověřování pomocí klíče rozhraní API, řídicí panel ověří, že příchozí telemetrie má požadovaný klíč rozhraní API. Aplikace, které odesílají telemetrii řídicího panelu, musí být nakonfigurované tak, aby odesílaly klíč rozhraní API. To lze nakonfigurovat v .NET pomocí OtlpExporterOptions.Headers:

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

Jiné jazyky mají různá rozhraní API OpenTelmetry. Předání proměnné prostředí OTEL_EXPORTER_OTLP_HEADERS aplikacím představuje univerzální způsob konfigurace hlavičky.

Vyčerpání paměti

Řídicí panel ukládá externí informace, které přijímá v paměti, jako jsou podrobnosti o prostředcích a telemetrie. I když je počet prostředků, které řídicí panel sleduje, omezený není limit počtu aplikací telemetrie, které se na řídicí panel odesílají. Omezení musí být umístěna na tom, kolik informací je uloženo, aby řídicí panel nemohl používat nadměrné množství paměti a vyčerpání dostupné paměti na aktuálním počítači.

Limity telemetrie

Aby se zabránilo vyčerpání paměti, řídicí panel omezuje, kolik telemetrických dat se ve výchozím nastavení ukládá. Existuje například maximálně 10 000 položek strukturovaného protokolu na prostředek. Po dosažení limitu způsobí, že každá nová položka protokolu se odebere.

Konfigurace může přizpůsobit limity telemetrie.