次の方法で共有


.NET .NET Aspire ダッシュボードを実行するためのセキュリティに関する考慮事項

.NET .NET Aspire ダッシュボード は、アプリに対する強力な分析情報を提供します。 ダッシュボードには、構成、コンソール ログ、詳細なテレメトリなど、リソースに関する情報が表示されます。

ダッシュボードに表示されるデータは機密性の高い場合があります。 たとえば、構成には環境変数にシークレットを含め、テレメトリには機密性の高いランタイム データを含めることができます。 ダッシュボードへのアクセスをセキュリティで保護するには、注意が必要です。

ダッシュボードを実行するためのシナリオ

ダッシュボードは、.NET Aspire ツールによる自動起動や、他の .NET Aspire 統合とは別のスタンドアロン アプリケーションなど、さまざまなシナリオで実行できます。 ダッシュボードをセキュリティで保護する手順は、ダッシュボードの実行方法によって異なります。

.NET .NET Aspire ツール

ダッシュボードは、.NET.NET Aspire アプリ ホストの実行時に自動的に開始されます。 ダッシュボードは、.NET.NET Aspire ツールから実行すると、既定でセキュリティで保護されます。

  • トランスポートは HTTPS で保護されます。 https の使用は、launchSettings で既定で構成されます。json. 起動プロファイルには、applicationUrl 値と DOTNET_DASHBOARD_OTLP_ENDPOINT_URL 値に https アドレスが含まれます。
  • ブラウザー のフロントエンドがブラウザー トークンで認証されました。
  • API キーを使用して認証された受信テレメトリ。

ダッシュボードの HTTPS では、ASP.NET Core 開発証明書が使用されます。 ダッシュボードが正常に動作するためには、証明書が信頼されている必要があります。 開発証明書を信頼するために必要な手順は、コンピューターのオペレーティング システムによって異なります。

セキュリティで保護されていないトランスポートを許可するシナリオがあります。 ASPIRE_ALLOW_UNSECURED_TRANSPORT 設定を trueに構成することで、.NET.NET Aspire アプリ ホストから HTTPS なしでダッシュボードを実行できます。 詳細については、「でセキュリティで保護されていないトランスポートを許可する を参照してください。

スタンドアロン モード

ダッシュボードは Docker イメージとして出荷され、.NET Aspireの rest なしで使用できます。 ダッシュボードがスタンドアロン モードで起動されると、既定ではセキュリティで保護された設定とセキュリティで保護されていない設定が混在します。

  • ブラウザー のフロントエンドがブラウザー トークンで認証されました。
  • 受信テレメトリはセキュリティで保護されません。 コンソールとダッシュボード UI に警告が表示されます。

テレメトリ エンドポイントは、認証なしで受信 OTLP データを受け入れます。 エンドポイントがセキュリティで保護されていない場合、ダッシュボードは信頼されていないアプリからテレメトリを受け取るために開かれています。

スタンドアロン モードでダッシュボードを実行するときのテレメトリのセキュリティ保護については、「テレメトリ エンドポイントのセキュリティ保護」を参照してください。

セキュリティで保護されたテレメトリ エンドポイント

.NET .NET Aspire ダッシュボードには、アプリのログ、トレース、メトリックを表示するさまざまな方法が用意されています。 この情報を使用すると、アプリの動作とパフォーマンスを追跡し、発生した問題を診断できます。 この情報を信頼できることは重要です。テレメトリがセキュリティで保護されていない場合は、ダッシュボード UI に警告が表示されます。

ダッシュボードは、OTLP (OpenTelemetry プロトコル) エンドポイントを介してテレメトリを収集します。 アプリはこのエンドポイントにテレメトリを送信し、ダッシュボードは受信した外部情報をメモリに格納し、UI 経由でアクセスできます。

信頼されていないアプリがテレメトリを .NET.NET Aspireに送信しないようにするには、OTLP エンドポイントをセキュリティで保護する必要があります。 ツールを使用してダッシュボードを起動すると、OTLP エンドポイントは API キーで自動的 .NET.NET Aspire セキュリティで保護されます。 スタンドアロン モードでは、追加の構成が必要です。

API キー認証は、いくつかの追加構成でテレメトリ エンドポイントで有効にすることができます。

  • Bash
  • PowerShell の
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

上記の Docker コマンド:

  • .NET .NET Aspire ダッシュボード イメージを開始し、OTLP エンドポイントをポート 4317 として公開します
  • ApiKey 認証を使用するように OTLP エンドポイントを構成します。 これには、受信テレメトリに有効な x-otlp-api-key ヘッダー値が必要です。
  • 予想される API キーを構成します。 例の値の {MY_APIKEY} は、実際の API キーに置き換える必要があります。 API キーには任意のテキストを指定できますが、少なくとも 128 ビットのエントロピを持つ値をお勧めします。

API キー認証が構成されると、ダッシュボードは受信テレメトリに必要な API キーがあることを検証します。 ダッシュボード テレメトリを送信するアプリは、API キーを送信するように構成する必要があります。 これは、OtlpExporterOptions.Headersを使用して .NET で構成できます。

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

他の言語では、OpenTelmetry API が異なります。 OTEL_EXPORTER_OTLP_HEADERS 環境変数 をアプリに渡すことは、ヘッダーを構成するための一般的な方法です。

メモリ不足

ダッシュボードには、受信した外部情報 (リソースの詳細やテレメトリなど) がメモリに格納されます。 ダッシュボードが追跡するリソースの数は制限されていますが、ダッシュボードに送信されるテレメトリ アプリの量に制限はありません。 ダッシュボードで過剰な量のメモリを使用し、現在のマシンで使用可能なメモリを使い果たさないように、格納される情報の量に制限を設定する必要があります。

テレメトリの制限

メモリの枯渇を防ぐために、ダッシュボードでは既定で保存されるテレメトリの量が制限されます。 たとえば、リソースごとに最大 10,000 個の構造化ログ エントリがあります。 制限に達すると、受信した新しいログ エントリごとに古いエントリが削除されます。

構成では、テレメトリの制限をカスタマイズできます。