애플리케이션 보안의 맥락에서 비밀 데이터는 인증 및 권한 부여 과정에서 소유자가 누구이며 무엇을 주장하는지를 증명하는 모든 정보를 의미합니다. 악의적 행위자가 비밀 데이터에 액세스하면 시스템에 의도치 않게 액세스하여 기업 기밀 및 고객 정보를 훔치거나 데이터에 대한 몸값을 요구하는 등 다양한 목적으로 사용할 수 있습니다.
대표적인 예로는 애플리케이션이 데이터베이스에 액세스할 수 있도록 허용하는 사용자 이름 및 비밀번호가 있지만, API 키, 자격 증명, 인증서 및 프라이빗 키 등 다양한 유형의 정보도 비밀 데이터가 될 수 있습니다. 비밀 데이터는 조직의 자산에 대한 액세스를 제어하는 데 사용되므로 안전하게 저장하고 보호해야 조직의 유출 위험을 줄일 수 있습니다.
비밀 데이터 관리는 조직에서 다음을 위해 사용하는 프로세스입니다.
조직이 모놀리식 아키텍처에서 마이크로서비스 아키텍처로 전환하면 각각 고유한 자격 증명을 가진 독립적인 애플리케이션 및 인프라 구성 요소의 수가 증가하므로 관리해야 할 비밀 데이터가 더 많아집니다.
비밀 데이터를 안전하게 저장하는 두 가지 옵션에 대해 자세히 살펴보겠습니다.
Vault 접근 방식에는 타사 비밀 데이터 관리 도구 설치가 포함됩니다. Vault 솔루션은 각 비밀 데이터르 암호화하여 권한이 없는 사용자가 액세스하지 못하도록 합니다. Vault는 설정된 정책에 따라 사용자에게 비밀 데이터에 액세스할 수 있도록 API를 노출합니다. API 사용자가 인증하면 권한이 부여된 비밀 데이터에만 액세스할 수 있습니다.
단점:
장점:
개발자가 암호화된 비밀 데이터를 저장하고 관리하는 데 사용할 수 있는 다양한 도구가 시중에 나와 있습니다. 중앙에서 자동화된 비밀 데이터 관리 도구를 사용하는 방법에 대한 예는 F5 블로그 "HashiCorp Vault로 NGINX에서 SSL 프라이빗 키 보호"를 참조하십시오.
또 다른 접근 방식은 클라우드 제공업체를 통해 서비스형 비밀 데이터 관리를 이용하는 것입니다. 한 가지 이점은 비밀 데이터 관리 도구가 일반적으로 관리형 데이터베이스와 같은 다른 클라우드 서비스와 긴밀하게 통합된다는 것입니다. 클라우드 제공업체 서비스는 자동 순환과 같은 기능도 제공할 수 있지만, 이러한 옵션으로 인해 가동 중단 시간이 발생하는지에 대해서는 향후 연구가 필요합니다.
단점:
장점:
비밀 데이터는 잠금 해제 및 액세스 시 애플리케이션이 중단되지 않도록 신중하게 관리해야 합니다. 가장 좋은 방법은 소스 제어 시스템에 비밀 데이터를 확인하지 않는 것입니다. 비밀 데이터를 그러한 위치에 저장하면 팀이나 개인이 코드 또는 애플리케이션을 업데이트할 때 실수로 비밀 데이터에 액세스하거나 비밀 데이터가 손상되는 경우 조직은 재난에 노출될 수 있습니다. 따라서 비밀 데이터가 소스 제어에서 잠시라도 확인되면 손상된 것으로 처리해야 합니다. 민감한 데이터는 저장소에서 제거하고 소스 제어 시스템의 기록에서 없애야 합니다.