Key Vault의 비밀 관리 모범 사례

Azure Key Vault를 사용하면 암호 및 액세스 키와 같은 서비스 또는 애플리케이션 자격 증명을 비밀로 안전하게 저장할 수 있습니다. 키 자격 증명 모음의 모든 비밀은 소프트웨어 키로 암호화됩니다. Key Vault를 사용하면 더 이상 애플리케이션에 보안 정보를 저장할 필요가 없습니다. 애플리케이션에 보안 정보를 저장하지 않으면 코드의 해당 정보 부분을 만들 필요가 없습니다.

Key Vault에 저장해야 하는 비밀의 예:

  • 클라이언트 애플리케이션 비밀
  • 연결 문자열
  • 암호
  • 액세스 키(Redis Cache, Azure Event Hubs, Azure Cosmos DB)
  • SSH 키

IP 주소, 서비스 이름 및 기타 구성 설정과 같은 기타 중요한 정보는 Key Vault가 아닌 Azure App Configuration에 저장해야 합니다.

각 개별 키 자격 증명 모음은 비밀에 대한 보안 경계를 정의합니다. 애플리케이션별, 지역별, 환경별 단일 키 자격 증명 모음의 경우 애플리케이션에 대한 비밀의 세분화된 격리를 제공하는 것이 좋습니다.

Key Vault 모범 사례에 대한 자세한 내용은 Key Vault 사용 모범 사례를 참조하세요.

구성 및 저장

데이터베이스 또는 서비스에 액세스하는 데 필요한 자격 증명 정보를 비밀 값으로 저장합니다. 사용자 이름/암호와 같은 복합 자격 증명의 경우 연결 문자열 또는 JSON 개체로 저장할 수 있습니다. 관리에 필요한 기타 정보는 태그에 저장해야 합니다(예: 회전 구성).

비밀에 대한 자세한 내용은 Azure Key Vault 비밀 정보를 참조하세요.

비밀 회전

비밀은 종종 전체 애플리케이션 수명 주기에 대한 환경 변수 또는 구성 설정으로 애플리케이션 메모리에 저장되므로 원치 않는 노출에 민감합니다. 비밀은 누출이나 노출에 민감하기 때문에 적어도 60일에 한 번씩 자주 바꾸는 것이 중요합니다.

비밀 순환 프로세스에 대한 자세한 내용은 두 개의 인증 자격 증명 세트를 사용하는 리소스의 비밀 순환 자동화를 참조하세요.

액세스 및 네트워크 격리

액세스 권한이 있는 IP 주소를 지정하여 자격 증명 모음의 노출을 줄일 수 있습니다. 애플리케이션 및 관련 서비스만 자격 증명 모음의 비밀에 액세스할 수 있도록 방화벽을 구성하여 공격자가 비밀에 액세스할 수 없도록 합니다.

네트워크 보안에 대한 자세한 내용은 Azure Key Vault 네트워킹 설정 구성을 참조하세요.

또한 애플리케이션은 읽기 비밀에만 액세스할 수 있으므로 최소 권한 있는 액세스를 따라야 합니다. 비밀에 대한 액세스는 액세스 정책 또는 Azure 역할 기반 액세스 제어를 사용하여 제어할 수 있습니다.

Azure Key Vault의 액세스 제어에 대한 자세한 내용은 다음을 참조하세요.

서비스 제한 및 캐싱

Key Vault는 원래 Azure Key Vault 서비스 제한에 한도를 지정하여 만들어졌습니다. 처리 속도를 최대화하기 위해 권장되는 두 가지 모범 사례는 다음과 같습니다.

  • 최소 8시간 동안 애플리케이션에 비밀을 캐시합니다.
  • 서비스 제한이 초과될 때 시나리오를 처리하기 위해 지수 백오프 다시 시도 논리를 구현합니다.

제한 지침에 대한 자세한 내용은 Azure Key Vault 제한 지침을 참조하세요.

모니터링

비밀 및 해당 수명 주기에 대한 액세스를 모니터링하려면 Key Vault 로깅을 켭니다. Azure Monitor를 사용하여 모든 자격 증명 모음의 모든 비밀 작업을 한 곳에서 모니터링할 수 있습니다. 또는 Azure Event Grid를 사용하여 Azure Logic Apps 및 Azure Functions와 쉽게 통합할 수 있으므로 비밀의 수명 주기를 모니터링할 수 있습니다.

자세한 내용은 다음을 참조하세요.

백업 및 제거 보호

비밀의 악의적이거나 우발적인 삭제를 방지하려면 제거 보호를 설정합니다. 제거 보호가 가능한 옵션이 아닌 시나리오에서는 다른 원본에서 다시 만들 수 없는 백업 비밀을 권장합니다.

자세한 정보