비주얼 스튜디오 커넥티드 서비스를 사용하여 웹 애플리케이션에 키 볼트 추가하기

이 자습서에서는 ASP.NET Core를 사용하든 모든 유형의 ASP.NET 프로젝트를 사용하든 관계없이 Visual Studio에서 웹 프로젝트의 암호를 관리하는 데 필요한 모든 것을 Azure Key Vault를 사용하여 쉽게 추가하는 방법을 알아봅니다. Visual Studio의 연결된 서비스 기능을 사용하면 Visual Studio에서 Azure의 Key Vault에 연결하는 데 필요한 모든 NuGet 패키지와 구성 설정을 자동으로 추가하도록 할 수 있습니다.

Key Vault를 사용하도록 설정하기 위해 프로젝트에서 연결된 서비스에서 수행하는 변경 내용에 대한 자세한 내용은 Key Vault 연결된 서비스 - 내 ASP.NET 프로젝트에서 변경된 내용 또는 Key Vault 연결된 서비스 - 내 ASP.NET Core 프로젝트에서 변경된 내용을 참조하세요.

필수 조건

프로젝트에 키 볼트 지원 추가

시작하기 전에 Visual Studio에 로그인했는지 확인하세요. Azure 구독에 사용하는 계정과 동일한 계정으로 로그인합니다. 그런 다음, ASP.NET 4.7.1 이상, 또는 ASP.NET Core 웹 프로젝트를 열고 다음 단계를 수행합니다. 표시된 단계는 Visual Studio 2022 버전 17.4용입니다. 다른 버전의 Visual Studio에서는 흐름이 약간 다를 수 있습니다.

  1. 솔루션 탐색기에서 Key Vault 지원을 추가하려는 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가>연결된 서비스를 선택합니다. 서비스 종속성에서 + 아이콘을 선택합니다. 프로젝트에 추가할 수 있는 서비스가 표시된 연결된 서비스 페이지가 나타납니다.

  2. 사용 가능한 서비스 메뉴에서 Azure Key Vault를 선택하고 다음을 클릭합니다.

  3. 사용을 희망하는 구독을 선택한 다음, 사용하려는 Key Vault를 보유하고 있는 경우 이를 선택하고 다음을 클릭합니다.

    구독 선택의 스크린샷

  4. 기존 Key Vault가 없는 경우 새 Key Vault 만들기를 클릭합니다. 리소스 그룹, 위치 및 SKU를 제공하라는 메시지가 표시됩니다.

    “Azure Key Vault 만들기”의 스크린샷

  5. Key Vault 구성 화면에서 Key Vault URI를 참조하는 환경 변수의 이름을 변경할 수 있습니다. 연결 문자열 여기에 저장되지 않고 키 자격 증명 모음에 저장됩니다.

    Azure Key Vault에 연결 화면의 스크린샷.

  6. 다음을 클릭하여 변경 내용 요약을 검토한 다음, 마침을 클릭합니다.

이제 Key Vault에 연결이 설정되고 코드에서 암호에 액세스할 수 있습니다. 새 Key Vault를 방금 만든 경우 코드에서 참조할 수 있는 비밀을 만들어 테스트합니다. Azure Portal, PowerShell 또는 Azure CLI를 사용하여 비밀을 만들 수 있습니다.

.NET용 Azure Key Vault 비밀 클라이언트 라이브러리 - 코드 예제에서 비밀로 작업하는 코드 예제를 참조하세요.

키 자격 증명 모음에 대한 액세스 구성

Key Vault가 Visual Studio에 로그인한 계정과 다른 Microsoft 계정으로 실행되는 경우(예: Key Vault는 회사 계정에서 실행되지만 Visual Studio는 개인 계정을 사용하고 있는 경우) Program.cs 파일에서 Visual Studio가 Key Vault에 액세스할 수 없다는 오류가 발생합니다. 이 문제를 해결하려면 Azure Portal로 이동하여 키 자격 증명 모음을 열고 액세스 제어(IAM)를 선택하여 권한을 설정합니다. Azure 역할 기반 액세스 제어를 사용하여 Key Vault 키, 인증서 및 비밀에 대한 액세스 제공을 참조하세요.

참고 항목

이전 키 자격 증명 모음은 레거시 액세스 정책 모델을 사용할 수 있습니다. Azure RBAC를 사용하도록 이전 키 자격 증명 모음을 마이그레이션하는 것이 좋습니다. Azure RBAC(역할 기반 액세스 제어)와 액세스 정책 비교 참조하세요.

ASP.NET Core 프로젝트를 수정하는 방법

이 섹션에서는 Visual Studio를 사용하여 Key Vault 연결 서비스를 추가할 때의 ASP.NET 프로젝트의 정확한 변경 사항을 확인합니다.

ASP.NET Core에 대한 참조 추가

프로젝트 파일 .NET 참조 및 NuGet 패키지 참조에 영향을 줍니다.

Type 참조
NuGet Microsoft.AspNetCore.AzureKeyVault.HostingStartup

ASP.NET Core용 파일 추가

  • ConnectedService.json이 추가되어 연결된 서비스 공급자, 버전 및 문서 링크에 대한 일부 정보가 기록되어 있습니다.

ASP.NET Core의 프로젝트 파일 변경 사항

  • 커넥티드 서비스 항목 그룹과 ConnectedServices.json 파일을 추가합니다.

ASP.NET Core용 launchsettings.json 변경 사항

  • IIS Express 프로필과 웹 프로젝트 이름과 일치하는 프로필 모두에 다음 환경 변수 항목을 추가합니다.

      "environmentVariables": {
        "ASPNETCORE_HOSTINGSTARTUP__KEYVAULT__CONFIGURATIONENABLED": "true",
        "ASPNETCORE_HOSTINGSTARTUP__KEYVAULT__CONFIGURATIONVAULT": "<your keyvault URL>"
      }
    

ASP.NET Core용 변경 사항

  • 리소스 그룹을 만들거나 기존 리소스 그룹을 사용했습니다.
  • 지정된 리소스 그룹에 Key Vault 생성됨.

ASP.NET Framework 프로젝트가 수정되는 방법

이 섹션에서는 Visual Studio를 사용하여 Key Vault 연결 서비스를 추가할 때의 ASP.NET 프로젝트의 정확한 변경 사항을 확인합니다.

ASP.NET Framework에 대한 참조 추가

프로젝트 파일 .NET 참조 및 packages.config(NuGet 참조에 영향을 미칩니다).

Type 참조
.NET; NuGet Azure.Identity
.NET; NuGet Azure.Security.KeyVault.Keys
.NET; NuGet Azure.Security.KeyVault.Secrets

Important

기본적으로 Azure.Identity 1.1.1이 설치되어 있으며, 이 버전은 Visual Studio 자격 증명을 지원하지 않습니다. 패키지 참조를 1.2 이상 버전으로 수동으로 업데이트하려면 Visual Studio 자격 증명을 사용하세요.

ASP.NET Framework용 파일 추가

  • ConnectedService.json이 추가되어 연결된 서비스 공급자, 버전 및 문서 링크에 대한 일부 정보가 기록되어 있습니다.

ASP.NET Framework용 프로젝트 파일 변경 사항

  • 커넥티드 서비스 항목 그룹 및 커넥티드 서비스.json 파일을 추가했습니다.
  • 추가된 참조 섹션에 설명된 .NET 어셈블리에 대한 참조입니다 .

다음 단계

이 자습서를 따랐다면 Key Vault 권한이 자체 Azure 구독으로 실행되도록 설정되어 있지만 프로덕션 시나리오에서는 바람직하지 않을 수 있습니다. 관리 ID를 만들어 앱에 대한 Key Vault 액세스를 관리할 수 있습니다. 자세한 내용은 Key Vault에서 인증 받는 방법Key Vault 액세스 정책 할당을 참조하세요.

Key Vault 개발자 가이드를 확인하여 Key Vault 개발에 대해 자세히 알아봅니다.

Azure Key Vault에서 ASP.NET Core 앱에 대한 구성을 저장하는 것을 원할 경우 ASP.NET Core Azure Key Vault 구성 공급자를 참조하세요.