Azure Key Vault 개발자 가이드

Azure Key Vault 암호화 키, 비밀 및 인증서의 보안 스토리지 및 관리를 제공하는 클라우드 서비스입니다. 이 가이드는 개발자가 Key Vault 애플리케이션에 통합하는 데 도움이 됩니다.

개요

Azure Key Vault 다음을 수행할 수 있습니다.

  • 보안 스토리지: 사용자 지정 보안 코드를 작성하지 않고 키, 비밀 및 인증서를 보호합니다.
  • 간소화된 키 관리: 암호화 작업 및 키 수명 주기 관리를 중앙 집중화합니다.
  • 고객 소유 키: 핵심 애플리케이션 기능에 집중하는 동안 고객이 자신의 키를 관리할 수 있습니다.
  • 외부 키 관리: 애플리케이션 외부에 유지하면서 서명 및 암호화에 키를 사용합니다.

Azure Key Vault 대한 일반적인 내용은 about Azure Key Vault 참조하세요.

개발자 시나리오

Key Vault 있는 일반적인 개발자 작업은 다음과 같습니다.

  • 비밀 저장 및 검색: 연결 문자열, 암호, API 키 및 SAS 토큰을 안전하게 관리합니다. 자세한 내용은 비밀 정보를 참조하세요.
  • 암호화 및 서명에 키 사용: 애플리케이션에 키 자료를 노출하지 않고 암호화 작업을 수행합니다. 자세한 내용은 키 정보를 참조하세요.
  • 인증서 관리: SSL/TLS에 대한 인증서 프로비저닝, 갱신 및 배포를 자동화합니다. 자세한 내용은 인증서 정보를 참조하세요.

공개 프리뷰

Microsoft 새로운 Key Vault 기능의 공개 미리 보기를 주기적으로 릴리스합니다. 미리 보기 기능을 사용해 보고 피드백을 제공하려면 팀에 문의하세요 azurekeyvault@microsoft.com. 최신 기능 및 업데이트에 대한 자세한 내용은 Azure Key Vault 참조하세요.

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

Key Vault 2플레인 액세스 모델을 사용합니다.

  • Control 평면: Key Vault 리소스 자체를 관리합니다(속성 만들기, 삭제, 업데이트, 액세스 정책 할당). 작업은 Azure Resource Manager 통해 관리됩니다. 액세스 제어는 Key Vault 액세스 정책 할당 참조하세요.
  • 데이터 평면: Key Vault 저장된 데이터(키, 비밀, 인증서)를 관리합니다. 액세스는 Azure RBAC with Key Vault를 통해 제어됩니다.

미리 정의된 Key Vault 기여자 역할을 사용하여 Key Vault 리소스에 대한 관리 액세스 권한을 부여합니다. 인증 및 권한 부여에 대한 자세한 내용은 Azure Key Vault 참조하세요.

네트워크 보안

프라이빗 엔드포인트, 방화벽 또는 서비스 엔드포인트를 구성하여 네트워크 노출을 줄입니다. 가장 제한적이지 않은 구성 옵션을 포함한 포괄적인 네트워크 보안 지침은 Azure Key Vault 보안: 네트워크 보안 Azure Key Vault 네트워킹 설정 구성을 참조하세요.

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

다음 표에서는 Key Vault 리소스(컨트롤 플레인 작업)를 관리하기 위한 SDK 및 빠른 시작을 나열합니다. 최신 버전 및 설치 지침은 클라이언트 라이브러리를 참조하세요.

Azure CLI PowerShell REST API (REST 애플리케이션 프로그래밍 인터페이스) 자원 관리자 .NET Python Java JavaScript
참조
빠른 시작
참조
빠른 시작
참조 참조
빠른 시작
참조 참조 참조 참조

코드로 Key Vault에 인증하기

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

인증 모범 사례

Azure 배포된 애플리케이션의 경우 관리 ID를 사용하여 코드에 자격 증명을 저장할 필요가 없습니다. 다양한 환경(프로덕션, 개발, 로컬)에 대한 자세한 인증 지침 및 보안 주체 권장 사항은 Azure Key Vault 인증 및 Azure Key Vault을 참조하세요.

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에는 App 인증 라이브러리 권장했지만 지금은 사용되지 않습니다. 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 팀에서 빌드 및 지원되며 팀 일정에서 릴리스됩니다. 최신 SDK 버전 및 설치 패키지는 클라이언트 라이브러리를 참조하세요.

데이터 평면은 키, 인증서 및 비밀에 대한 액세스를 제어합니다. Azure RBAC와 Key Vault 사용하여 데이터 평면을 통한 액세스 제어를 수행할 수 있습니다.

키에 대한 API 및 SDK

다음 표에서는 키(데이터 평면 작업)를 사용하기 위한 SDK 및 빠른 시작을 나열합니다. 키에 대한 자세한 내용은 키 정보를 참조하세요.

Azure CLI PowerShell REST API (REST 애플리케이션 프로그래밍 인터페이스) 자원 관리자 .NET Python Java JavaScript
참조
빠른 시작
참조
빠른 시작
참조 참조
빠른 시작
참조
빠른 시작
참조
빠른 시작
참조
빠른 시작
참조
빠른 시작

기타 라이브러리

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

이 모듈은 Azure Key Vault Keys 클라이언트 모듈 for Go에 대한 암호학 클라이언트를 제공합니다.

비고

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

언어 참고 문헌
가라 참조

인증서에 대한 API 및 SDK

다음 표에서는 인증서(데이터 평면 작업)를 사용하기 위한 SDK 및 빠른 시작을 나열합니다. 인증서에 대한 자세한 내용은 인증서 정보를 참조하세요.

Azure CLI PowerShell REST API (REST 애플리케이션 프로그래밍 인터페이스) 자원 관리자 .NET Python Java JavaScript
참조
빠른 시작
참조
빠른 시작
참조 해당 없음(N/A) 참조
빠른 시작
참조
빠른 시작
참조
빠른 시작
참조
빠른 시작

비밀에 대한 API 및 SDK

다음 표에는 비밀 관리(데이터 평면 작업)를 위한 SDK와 빠른 시작 가이드가 나열되어 있습니다. 비밀에 대한 자세한 내용은 비밀 정보를 참조하세요.

Azure CLI PowerShell REST API (REST 애플리케이션 프로그래밍 인터페이스) 자원 관리자 .NET Python Java JavaScript
참조
빠른 시작
참조
빠른 시작
참조 참조
빠른 시작
참조
빠른 시작
참조
빠른 시작
참조
빠른 시작
참조
빠른 시작

비밀 사용

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

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

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

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

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

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

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

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

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

코드 예제

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

작업별 지침

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

  • 키 자격 증명 모음에 액세스하려면 클라이언트 애플리케이션에서 다양한 기능에 대한 여러 엔드포인트에 액세스할 수 있어야 합니다. 방화벽 뒤에 Key Vault 액세스 참조하세요.
  • Azure VM에서 실행되는 클라우드 애플리케이션에는 인증서가 필요합니다. 이 인증서를 이 VM에 가져오려면 어떻게 해야 하나요? Windows용 Key Vault 가상 머신 확장 또는 Linux용 Key Vault 가상 머신 확장을 참조하세요.
  • Azure CLI, PowerShell 또는 Azure 포털을 사용하여 액세스 정책을 할당하려면 Key Vault 액세스 정책 할당을 참조하세요.
  • 일시 삭제를 사용하도록 설정된 키 자격 증명 모음 및 다양한 키 자격 증명 모음 개체의 사용 및 수명 주기에 대한 지침은 일시 삭제 및 제거 보호를 사용하는 Azure Key Vault 복구 관리 참조하세요.
  • 배포 중에 보안 값(예: 암호)을 매개 변수로 전달해야 하는 경우 해당 값을 키 자격 증명 모음에 비밀로 저장하고 다른 Resource Manager 템플릿의 값을 참조할 수 있습니다. 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에서 Secrets Store CSI 드라이버 대한 Azure Key Vault 공급자를 구성하고 실행합니다.

재해 복구 및 비즈니스 연속성

Key Vault는 기본적으로 재해 복구 기능을 제공하며 자동으로 지역 복제를 수행합니다. 프로덕션 배포의 경우 일시 삭제 및 제거 보호를 사용하도록 설정하고 정기적인 백업을 구현합니다. 자세한 내용은 Azure Key Vault 가용성 및 중복성, Azure Key Vault 복구 관리Azure Key Vault 백업 참조하세요.

성능 및 확장성

Key Vault 사용하는 애플리케이션을 개발할 때 다음 성능 및 확장성 모범 사례를 고려합니다.

  • 서비스 제한: Key Vault는 지역당 볼트당 트랜잭션에 대한 서비스 제한이 있습니다. 이러한 제한을 초과하면 속도 제한이 발생합니다. 자세한 내용은 Azure Key Vault 서비스 제한 참조하세요.
  • 제한 지침: 제한 응답을 처리하기 위해 지수 백오프를 사용하여 재시도 논리를 구현합니다. 자세한 내용은 Azure Key Vault 제한 지침 참조하세요.
  • Caching: 애플리케이션에서 비밀 및 인증서를 캐시하여 Key Vault 호출을 줄이고 성능을 향상시킵니다.
  • 커넥션 관리: 가능한 경우 HTTP 연결을 Key Vault 재사용하여 대기 시간을 줄이고 성능을 향상시킵니다.

모니터링 및 로깅

보안, 규정 준수 및 문제 해결을 위해 로깅 및 모니터링을 사용하도록 설정합니다. 중요한 이벤트에 대한 진단 설정, Event Grid 알림 및 경고를 구성합니다. 자세한 지침은 Azure Key Vault 모니터링, Azure Key Vault 로깅, Azure Event Grid를 사용한 Key Vault 모니터링, Azure Key Vault 보안: 로깅 및 위협 탐지를 참조하세요.

일반적인 매개 변수 및 요청 패턴

Key Vault REST API를 사용하는 경우 일반적인 매개 변수 및 요청/응답 패턴을 이해하는 것이 유용합니다.

  • API 버전: Key Vault 버전이 지정된 API를 사용합니다. 항상 요청에 API 버전을 지정합니다.
  • 인증 요청: 일반적인 요청 헤더 및 응답 형식을 포함하여 인증 토큰을 획득하고 사용하는 방법을 이해합니다. 자세한 내용은 인증, 요청 및 응답을 참조하세요.
  • 오류 코드: 일반적인 REST API 오류 코드를 숙지하여 오류를 정상적으로 처리합니다. 자세한 내용은 Azure Key Vault REST API 오류 코드 참조하세요.

Troubleshooting

일반적인 문제를 해결하는 데 도움이 되도록 다음을 수행합니다.

  • 액세스 거부 오류: 인증 자격 증명을 확인하고 보안 주체에 RBAC 할당을 통해 필요한 권한이 있는지 확인합니다. Key Vault 데이터 평면 작업에 대한 Azure RBAC 참조하세요.
  • 네트워크 연결: 방화벽 뒤에서 Key Vault 액세스하는 경우 필요한 엔드포인트에 액세스할 수 있는지 확인합니다. 방화벽 뒤에 Key Vault 액세스 참조하세요.
  • 제한: 429(너무 많은 요청) 응답을 수신하는 경우 지수 백오프를 구현합니다. Azure Key Vault 제한 지침 참조하세요.

보안 모범 사례

ID 및 액세스 관리, 데이터 보호, 규정 준수, 거버넌스 및 백업 전략을 포함한 포괄적인 보안 지침은 Azure Key Vault를 참조하세요.

추가 리소스

Key Vault 개념

관리 및 운영

커뮤니티 및 지원

  • Microsoft Q&S A - 질문을 하고 커뮤니티에서 답변을 얻습니다.
  • Key Vault용 Stack Overflow - 개발자의 기술 Q&A입니다.
  • Azure 피드백 - 기능 요청 및 피드백을 제출합니다.