다음을 통해 공유


.NET .NET Aspire 대시보드를 실행하기 위한 보안 고려 사항

.NET .NET Aspire 대시보드 앱에 대한 강력한 인사이트를 제공합니다. 대시보드에는 구성, 콘솔 로그 및 심층 원격 분석을 비롯한 리소스에 대한 정보가 표시됩니다.

대시보드에 표시되는 데이터는 중요할 수 있습니다. 예를 들어 구성은 환경 변수에 비밀을 포함할 수 있으며 원격 분석에는 중요한 런타임 데이터가 포함될 수 있습니다. 대시보드에 대한 액세스를 보호하려면 주의해야 합니다.

대시보드를 실행하기 위한 시나리오

대시보드는 .NET Aspire 도구로 자동으로 시작하거나 다른 .NET Aspire 통합과 분리된 독립 실행형 애플리케이션과 같은 다양한 시나리오에서 실행할 수 있습니다. 대시보드를 보호하는 단계는 대시보드가 실행되는 방식에 따라 달라집니다.

.NET .NET Aspire 도구

.NET .NET Aspire 앱 호스트가 실행되면 대시보드가 자동으로 시작됩니다. 대시보드는 .NET.NET Aspire 도구에서 실행할 때 기본적으로 안전합니다.

  • 전송은 HTTPS를 사용하여 보호됩니다. HTTPS 사용은 기본적으로 launchSettings.json구성됩니다. 시작 프로필에는 httpsapplicationUrl 값의 DOTNET_DASHBOARD_OTLP_ENDPOINT_URL 주소가 포함됩니다.
  • 브라우저 토큰으로 인증된 브라우저 프런트 엔드입니다.
  • API 키로 인증된 들어오는 원격 분석입니다.

대시보드의 HTTPS는 ASP.NET Core 개발 인증서를 사용합니다. 대시보드가 제대로 작동하려면 인증서를 신뢰할 수 있어야 합니다. 개발 인증서를 신뢰하는 데 필요한 단계는 컴퓨터의 운영 체제에 따라 다릅니다.

  • ASP.NET Core HTTPS 개발 인증서 신뢰
  • HTTPS 인증서 신뢰

보안되지 않은 전송을 허용할 수 있는 시나리오가 있습니다. 대시보드는 .NET.NET Aspire 설정을 구성하여 ASPIRE_ALLOW_UNSECURED_TRANSPORTtrue 앱 호스트에서 HTTPS 없이 실행할 수 있습니다. 자세한 내용은 .NET.NET Aspire보안되지 않은 전송 허용을 참조하세요.

독립 실행형 모드

대시보드는 Docker 이미지로 제공되며 나머지 .NET Aspire없이 사용할 수 있습니다. 대시보드가 독립 실행형 모드로 시작되면 기본적으로 보안 설정과 보안되지 않은 설정이 혼합됩니다.

  • 브라우저 토큰으로 인증된 브라우저 프런트 엔드입니다.
  • 들어오는 원격 분석은 안전하지 않습니다. 콘솔 및 대시보드 UI에 경고가 표시됩니다.

원격 분석 엔드포인트는 인증 없이 들어오는 OTLP 데이터를 허용합니다. 엔드포인트가 보안되지 않은 경우 대시보드는 신뢰할 수 없는 앱에서 원격 분석을 수신할 수 있도록 열려 있습니다.

독립 실행형 모드에서 대시보드를 실행할 때 원격 분석을 보호하는 방법에 대한 자세한 내용은 원격 분석 엔드포인트 보안참조하세요.

보안 원격 분석 엔드포인트

.NET .NET Aspire 대시보드는 앱의 로그, 추적 및 메트릭을 보는 다양한 방법을 제공합니다. 이 정보를 통해 앱의 동작 및 성능을 추적하고 발생하는 문제를 진단할 수 있습니다. 이 정보를 신뢰할 수 있고 원격 분석이 보호되지 않으면 경고가 대시보드 UI에 표시됩니다.

대시보드는 OTLP(OpenTelemetry 프로토콜) 엔드포인트를 통해 원격 분석을 수집합니다. 앱은 이 엔드포인트에 원격 분석을 보내고 대시보드는 메모리에 수신하는 외부 정보를 저장합니다. 그러면 UI를 통해 액세스할 수 있습니다.

신뢰할 수 없는 앱이 원격 분석을 .NET.NET Aspire보내지 않도록 하려면 OTLP 엔드포인트를 보호해야 합니다. OTLP 엔드포인트는 .NET.NET Aspire 도구로 대시보드를 시작할 때 API 키로 자동으로 보호됩니다. 독립 실행형 모드에는 추가 구성이 필요합니다.

몇 가지 추가 구성을 사용하여 원격 분석 엔드포인트에서 API 키 인증을 사용하도록 설정할 수 있습니다.

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 키를 보내도록 구성해야 합니다. .NET사용하여 OtlpExporterOptions.Headers 구성할 수 있습니다.

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

다른 언어에는 다른 OpenTelmetry API가 있습니다. OTEL_EXPORTER_OTLP_HEADERS 환경 변수 앱에 전달하는 것은 헤더를 구성하는 보편적인 방법입니다.

메모리 소모

대시보드는 리소스 세부 정보 및 원격 분석과 같이 받은 외부 정보를 메모리에 저장합니다. 대시보드에서 추적하는 리소스 수는 제한되지만, 대시보드에 보내는 원격 분석 앱의 양에는 제한이 없습니다. 대시보드가 과도한 양의 메모리를 사용하고 현재 컴퓨터에서 사용 가능한 메모리가 소모되는 것을 방지하기 위해 저장된 정보의 양에 제한을 두어야 합니다.

원격 분석 제한

메모리 소모를 방지하기 위해 대시보드는 기본적으로 저장하는 원격 분석의 양을 제한합니다. 예를 들어 리소스당 최대 10,000개의 구조적 로그 항목이 있습니다. 제한에 도달하면 수신된 각 새 로그 항목으로 인해 이전 항목이 제거됩니다.

구성은 원격 분석 제한을 사용자 지정할 수 있습니다.