다음을 통해 공유


Azure Key Vault를 사용하여 프로덕션 시 비밀 보호

팁 (조언)

이 콘텐츠는 .NET Docs 또는 오프라인으로 읽을 수 있는 다운로드 가능한 무료 PDF로 제공되는 컨테이너화된 .NET 애플리케이션용 .NET 마이크로 서비스 아키텍처인 eBook에서 발췌한 내용입니다.

컨테이너화된 .NET 애플리케이션을 위한 .NET 마이크로서비스 아키텍처 eBook의 표지 썸네일.

환경 변수로 저장되거나 Secret Manager 도구에 의해 저장된 비밀은 여전히 로컬로 저장되고 컴퓨터에 암호화되지 않습니다. 비밀을 저장하기 위한 더 안전한 옵션은 키와 비밀을 저장하기 위한 안전한 중앙 위치를 제공하는 Azure Key Vault입니다.

Azure.Extensions.AspNetCore.Configuration.Secrets 패키지를 사용하면 ASP.NET Core 애플리케이션이 Azure Key Vault에서 구성 정보를 읽을 수 있습니다. Azure Key Vault의 비밀 사용을 시작하려면 다음 단계를 수행합니다.

  1. 애플리케이션을 Azure AD 애플리케이션으로 등록합니다. 키 자격 증명 모음에 대한 액세스는 Azure AD에서 관리됩니다. 이 작업은 Azure 관리 포털을 통해 수행할 수 있습니다.\

    또는 애플리케이션이 암호 또는 클라이언트 암호 대신 인증서를 사용하여 인증하도록 하려면 New-AzADApplication PowerShell cmdlet을 사용할 수 있습니다. Azure Key Vault에 등록하는 인증서에는 공개 키만 필요합니다. 애플리케이션은 프라이빗 키를 사용합니다.

  2. 등록된 애플리케이션이 키 자격 증명 모음에 액세스할 수 있도록 새 서비스 주체를 만듭니다. 다음 PowerShell 명령을 사용하여 이 작업을 수행할 수 있습니다.

    $sp = New-AzADServicePrincipal -ApplicationId "<Application ID guid>"
    Set-AzKeyVaultAccessPolicy -VaultName "<VaultName>" -ServicePrincipalName $sp.ServicePrincipalNames[0] -PermissionsToSecrets all -ResourceGroupName "<KeyVault Resource Group>"
    
  3. 애플리케이션에 키 자격 증명 저장소를 구성 소스로 포함하려면 IConfigurationRoot 인스턴스를 생성할 때 AzureKeyVaultConfigurationExtensions.AddAzureKeyVault 확장 메서드를 호출하세요.

AddAzureKeyVault를 호출하려면 이전 단계에서 등록된 애플리케이션 ID가 필요하며, 해당 ID는 키 자격 증명 모음에 대한 액세스 권한이 있어야 합니다. 또는 먼저 Azure CLI 명령을 az login실행할 수 있습니다. 그런 다음, 오버로드 AddAzureKeyVault 를 사용하면 클라이언트 대신 DefaultAzureCredential이 사용됩니다.

중요합니다

이전 공급자의 구성 값을 재정의할 수 있도록 Azure Key Vault를 마지막 구성 공급자로 등록하는 것이 좋습니다.

추가 리소스