Azure Key Vault 개발자 가이드

Azure Key Vault를 사용하면 애플리케이션 내에서 중요한 정보에 안전하게 액세스할 수 있습니다.

  • 키, 비밀 및 인증서는 코드를 직접 작성할 필요 없이 보호되며 애플리케이션에서 쉽게 사용할 수 있습니다.
  • 고객이 고유한 키, 비밀, 인증서를 소유하고 관리하도록 허용하므로 핵심 소프트웨어 기능을 제공하는 데 집중할 수 있습니다. 애플리케이션은 이러한 방식으로 고객의 테넌트 키, 비밀 및 인증서에 대한 책임 또는 잠재적인 법적 책임을 지지 않습니다.
  • 애플리케이션에서 키를 서명 및 암호화에 사용할 수 있지만 키 관리는 애플리케이션 외부에서 유지할 수 있습니다. 자세한 내용은 키 정보를 참조하세요.
  • 암호, 액세스 키 및 SAS 토큰과 같은 자격 증명은 비밀로 Key Vault에 저장하여 관리할 수 있습니다. 자세한 내용은 비밀 정보를 참조하세요.
  • 인증서를 관리합니다. 자세한 내용은 인증서 정보를 참조하세요.

Azure Key Vault에 대한 일반 정보는 Azure Key Vault 정보를 참조하세요.

공개 미리 보기

새로운 Key Vault 기능의 공개 미리 보기가 정기적으로 릴리스됩니다. 퍼블릭 미리 보기 기능을 사용해 보고, 피드백 메일 주소인 azurekeyvault@microsoft.com을 통해 의견을 알려주세요.

키 자격 증명 모음 만들기 및 관리

다른 Azure 서비스와 마찬가지로 Key Vault는 Azure Resource Manager를 통해 관리됩니다. Azure Resource Manager는 Azure용 배포 및 관리 서비스입니다. 이를 사용하여 Azure 계정에서 리소스를 만들고, 업데이트하고, 삭제할 수 있습니다.

Azure RBAC(역할 기반 액세스 제어)관리 평면이라고도 하는 관리 계층에 대한 액세스를 제어합니다. Key Vault의 관리 평면을 사용하여 액세스 정책을 포함하여 키 자격 증명 모음 및 해당 특성을 만들고 관리합니다. 데이터 평면을 사용하여 키, 인증서 및 비밀을 관리합니다.

미리 정의된 Key Vault 기여자 역할을 사용하여 Key Vault에 대한 관리 액세스 권한을 부여할 수 있습니다.

키 자격 증명 모음 관리에 대한 API 및 SDK

Azure CLI PowerShell REST API Resource Manager .NET Python Java JavaScript
참조
빠른 시작
참조
빠른 시작
참조 참조
빠른 시작
참조 참조 참조 참조

설치 패키지 및 소스 코드는 클라이언트 라이브러리를 참조하세요.

코드에서 Key Vault에 인증

Key Vault는 액세스 권한을 부여하기 위해 Microsoft Entra 보안 주체가 필요한 Microsoft Entra 인증을 사용합니다. Microsoft Entra 보안 주체는 사용자, 애플리케이션 서비스 주체, Azure 리소스에 대한 관리 ID 또는 이러한 유형의 그룹일 수 있습니다.

인증 모범 사례

관리 ID를 Azure에 배포된 애플리케이션에 사용하는 것이 좋습니다. 관리 ID를 지원하지 않는 Azure 서비스를 사용하거나 애플리케이션이 온-프레미스에 배포되는 경우 인증서가 있는 서비스 주체가 가능한 대안입니다. 이 시나리오에서는 인증서를 Key Vault에 저장하고 자주 회전해야 합니다.

개발 및 테스트 환경에 대한 비밀이 있는 서비스 주체를 사용합니다. 사용자 계정을 로컬 개발 및 Azure Cloud Shell에 사용합니다.

각 환경에 권장되는 보안 주체는 다음과 같습니다.

  • 프로덕션 환경: 인증서가 있는 관리 ID 또는 서비스 주체
  • 테스트 및 개발 환경: 관리 ID, 인증서가 있는 서비스 주체 또는 비밀이 있는 서비스 주체
  • 로컬 개발 환경: 비밀이 있는 사용자 계정 또는 서비스 주체

Azure ID 클라이언트 라이브러리

위의 인증 시나리오는 Azure ID 클라이언트 라이브러리에서 지원되며 Key Vault SDK와 통합되어 있습니다. 코드를 변경하지 않고 여러 환경 및 플랫폼에서 Azure ID 클라이언트 라이브러리를 사용할 수 있습니다. 라이브러리는 Azure CLI, Visual Studio, Visual Studio Code 및 기타 수단을 통해 Azure 사용자에 로그인한 사용자로부터 인증 토큰을 자동으로 검색합니다.

Azure ID 클라이언트 라이브러리에 대한 자세한 내용은 다음을 참조하세요.

.NET Python Java JavaScript
Azure ID SDK .NET Azure ID SDK Python Azure ID SDK Java Azure ID SDK JavaScript

참고 항목

Key Vault .NET SDK 버전 3에 대한 앱 인증 라이브러리가 권장되었지만 이제 이상 사용되지 않습니다. Key Vault .NET SDK 버전 4로 마이그레이션하려면 AppAuthentication에서 Azure.Identity로 마이그레이션 지침을 따르세요.

애플리케이션에서 Key Vault에 인증하는 방법에 관한 자습서는 다음을 참조하세요.

키, 인증서, 비밀 관리

참고 항목

.NET, Python, Java, JavaScript, PowerShell 및 Azure CLI용 SDK는 Key Vault 서비스 팀 지원을 통해 공개 미리 보기 및 일반 공급으로 Key Vault 기능 릴리스 프로세스의 일부입니다. Key Vault에 대한 다른 SDK 클라이언트는 사용할 수 있지만 GitHub를 통해 개별 SDK 팀에서 빌드 및 지원하며 팀 일정에 따라 릴리스됩니다.

데이터 평면은 키, 인증서 및 비밀에 대한 액세스를 제어합니다. 데이터 평면을 통한 액세스 제어를 위해 로컬 자격 증명 모음 액세스 정책 또는 Azure RBAC를 사용할 수 있습니다.

키에 대한 API 및 SDK

Azure CLI PowerShell REST API Resource Manager .NET Python Java JavaScript
참조
빠른 시작
참조
빠른 시작
참조 참조
빠른 시작
참조
빠른 시작
참조
빠른 시작
참조
빠른 시작
참조
빠른 시작

기타 라이브러리

Key Vault 및 관리형 HSM에 대한 암호화 클라이언트

이 모듈에서는 Go용 Azure Key Vault 키 클라이언트 모듈에 대한 암호화 클라이언트를 제공합니다.

참고 항목

이 프로젝트는 Azure SDK 팀에서 지원되지 않지만 지원되는 다른 언어의 암호화 클라이언트와 일치합니다.

언어 참조
Go 참조

인증서에 대한 API 및 SDK

Azure CLI PowerShell REST API Resource Manager .NET Python Java JavaScript
참조
빠른 시작
참조
빠른 시작
참조 해당 없음 참조
빠른 시작
참조
빠른 시작
참조
빠른 시작
참조
빠른 시작

비밀에 대한 API 및 SDK

Azure CLI PowerShell REST API Resource Manager .NET Python Java JavaScript
참조
빠른 시작
참조
빠른 시작
참조 참조
빠른 시작
참조
빠른 시작
참조
빠른 시작
참조
빠른 시작
참조
빠른 시작

비밀 사용

Azure Key Vault를 사용하여 애플리케이션에 대한 비밀만 저장합니다. Key Vault에 저장해야 하는 비밀의 예는 다음과 같습니다.

  • 클라이언트 애플리케이션 비밀
  • 연결 문자열
  • 암호
  • 공유 액세스 키
  • SSH 키

사용자 이름 및 애플리케이션 ID와 같은 비밀 관련 정보는 비밀의 태그로 저장할 수 있습니다. 다른 중요한 구성 설정의 경우 Azure App Configuration을 사용해야 합니다.

참조

설치 패키지 및 소스 코드는 클라이언트 라이브러리를 참조하세요.

Key Vault의 데이터 평면 보안에 대한 자세한 내용은 Azure Key Vault 보안 기능을 참조하세요.

애플리케이션에서 Key Vault 사용

Key Vault의 최신 기능을 활용하려면 애플리케이션에서 비밀, 인증서 및 키를 사용하기 위해 사용 가능한 Key Vault SDK를 사용하는 것이 좋습니다. 제품에 대한 새로운 기능이 릴리스되면 Key Vault SDK 및 REST API가 업데이트되며 모범 사례 및 지침을 따릅니다.

기본 시나리오의 경우 간소화된 사용을 위해 Microsoft 파트너 또는 오픈 소스 커뮤니티에서 제공하는 지원이 포함된 다른 라이브러리 및 통합 솔루션이 있습니다.

인증서의 경우 다음을 사용할 수 있습니다.

비밀의 경우 다음을 사용할 수 있습니다.

코드 예제

애플리케이션에서 Key Vault를 사용하는 전체 예제는 Azure Key Vault 코드 샘플을 참조하세요.

작업별 지침

다음 문서 및 시나리오에서는 Azure Key Vault 사용에 대한 작업별 지침을 제공합니다.

Key Vault와의 통합

Key Vault를 사용하거나 통합하는 서비스 및 시나리오는 다음과 같습니다.

  • 미사용 데이터 암호화를 사용하면 데이터가 유지될 때 데이터를 인코딩(암호화)할 수 있습니다. 데이터 암호화 키는 액세스를 제한하기 위해 Azure Key Vault의 키 암호화 키로 암호화되는 경우가 많습니다.
  • Azure Information Protection을 사용하면 사용자 고유의 테넌트 키를 관리할 수 있습니다. 예를 들어, Microsoft가 테넌트 키를 관리하는 대신(기본값) 테넌트 키를 직접 관리하여 해당 조직에 적용되는 특정 규정을 준수할 수 있습니다. 사용자 고유의 테넌트 키를 관리하는 것을 BYOK(Bring Your Own Key)라고도 합니다.
  • Azure Private Link를 사용하면 가상 네트워크의 프라이빗 엔드포인트를 통해 Azure 서비스(예: Azure Key Vault, Azure Storage, Azure Cosmos DB) 및 Azure 호스팅 고객/파트너 서비스에 액세스할 수 있습니다.
  • Azure Event Grid와 Key Vault를 통합하면 Key Vault에 저장된 비밀의 상태가 변경될 때 사용자에게 알릴 수 있습니다. 새 버전의 비밀을 애플리케이션에 배포하거나 곧 만료되는 비밀을 회전하여 중단을 방지할 수 있습니다.
  • Key Vault에서 원치 않는 액세스로부터 Azure DevOps 비밀을 보호합니다.
  • Key Vault에 저장된 비밀을 사용하여 Azure Databricks에서 Azure Storage에 연결합니다.
  • Kubernetes에서 비밀 저장소 CSI 드라이버에 대한 Azure Key Vault 공급자를 구성하고 실행합니다.

Key Vault 개요 및 개념

자세한 정보:

소셜