Cloud Visualizer
← 전체 목록
🔑

Azure Key Vault

보안비밀 값, 암호화 키, 인증서의 중앙 보관소

아키텍처 다이어그램

점선 애니메이션은 데이터 또는 요청의 흐름 방향을 나타냅니다

왜 필요한가요?

애플리케이션 코드에는 데이터베이스 비밀번호, 외부 API 키, 암호화 키, TLS 인증서 같은 민감한 값이 필요합니다. 이 값들을 소스 코드에 직접 넣거나 환경 변수 파일로 관리하면, 코드 저장소에 커밋되거나 서버 접속만으로 노출될 위험이 생깁니다. 개발자 한 명의 노트북이 유출되면 프로덕션 DB 비밀번호까지 함께 나갈 수 있고, 키를 바꿔야 할 때 모든 서버와 배포 파이프라인을 수동으로 업데이트해야 합니다. 팀이 커지면 누가 어떤 비밀 값에 접근했는지 추적하기도 어려워집니다. Key Vault는 비밀 값을 코드와 인프라에서 분리해서 한 곳에 보관하고, 접근 기록과 권한 제어를 중앙에서 관리하는 방식으로 이 문제를 해결합니다.

왜 이런 방식이 등장했나요?

예전에는 비밀 값을 코드에 하드코딩하거나, 서버의 환경 변수 파일에 넣어두는 방식이 일반적이었습니다. 팀과 서비스가 작을 때는 이것으로도 관리가 됐지만, 마이크로서비스가 늘어나고 배포 파이프라인이 자동화되면서 비밀 값의 산재가 운영 위험으로 커졌습니다. Git 저장소에 실수로 커밋된 API 키가 공개 저장소를 통해 유출되는 사고가 업계에서 반복됐고, 컴플라이언스 요구도 '비밀 값이 어디에 있고 누가 접근했는지 증명하라'는 수준으로 높아졌습니다. 이런 압력 속에서 비밀 값을 코드와 인프라에서 완전히 분리하고, 접근 자체를 ID 기반으로 통제하며, 모든 접근을 감사할 수 있는 전용 저장소가 필요해졌습니다. Key Vault는 이 필요에 대한 응답으로, 단순히 '안전한 곳에 넣어두는 것'을 넘어 '비밀 값의 생명주기 전체를 관리하는 것'을 목표로 설계됐습니다.

안에서 어떻게 동작하나요?

Key Vault는 세 가지 유형의 민감 데이터를 관리합니다. Secrets는 API 키나 연결 문자열 같은 임의의 문자열을 저장하고, Keys는 암호화와 서명에 쓰이는 키를 HSM으로 보호하며, Certificates는 TLS 인증서의 저장과 자동 갱신을 담당합니다. 애플리케이션이 비밀 값에 접근하려면 먼저 Entra ID로 자신의 신원을 증명해야 합니다. 가장 권장되는 방식은 Managed Identity인데, 이는 애플리케이션에 별도 자격 증명을 주입하지 않고도 Azure 플랫폼이 자동으로 토큰을 발급하는 구조입니다. 토큰이 확인되면 Key Vault는 접근 정책이나 RBAC 규칙에 따라 요청된 값을 반환합니다. 비밀 값에는 버전이 매겨지므로 이전 값으로 롤백할 수 있고, 자동 순환(rotation)을 설정하면 일정 주기마다 값이 갱신되어 유출 시 피해 기간을 줄일 수 있습니다. 모든 접근은 감사 로그에 남기 때문에 '누가, 언제, 어떤 비밀 값에 접근했는가'를 사후에 추적할 수 있습니다.

무엇과 헷갈리나요?

Key Vault와 애플리케이션 설정(App Configuration)은 둘 다 코드 밖에서 값을 관리한다는 점에서 비슷해 보이지만, 보호 수준과 용도가 다릅니다. Key Vault는 비밀 값, 암호화 키, 인증서처럼 유출되면 보안 사고로 이어지는 민감 데이터를 HSM 보호와 세밀한 접근 제어로 관리하는 데 초점이 있습니다. App Configuration은 기능 플래그, 환경별 설정값처럼 민감하지 않은 구성 데이터를 중앙에서 관리하는 데 적합합니다. 실무에서는 두 서비스를 함께 써서, 비밀 값은 Key Vault에 넣고 App Configuration에서 Key Vault 참조를 통해 가져오는 방식을 많이 사용합니다. 판단 기준은 '이 값이 유출되면 보안 사고인가, 아니면 단순한 설정 오류인가'입니다.

언제 쓰나요?

Key Vault는 애플리케이션 배포 파이프라인에서 비밀 값을 주입하거나, 런타임에 서비스가 필요한 키를 가져오는 중앙 저장소 역할을 합니다. 관리형 웹 애플리케이션이나 이벤트 처리 워커에서는 설정 참조 방식으로 값을 읽고, 컨테이너 환경에서는 볼륨 마운트나 시크릿 동기화 방식으로 주입하는 식의 구성이 흔합니다. 비밀 값 순환이 중요한 환경에서는 이벤트 기반 자동 갱신을 붙여 만료 전에 교체를 시작할 수도 있습니다. 반면 Key Vault는 대량의 데이터를 암호화하는 저장소가 아니라, 암호화에 쓰이는 키를 보호하는 곳입니다. 실제 데이터 암호화는 서비스 자체의 암호화 기능이 담당하고, Key Vault는 그 키의 보관과 접근을 통제하는 역할입니다. 또한 초당 수천 건의 비밀 조회가 필요한 경우에는 캐싱 전략을 함께 고려해야 합니다.

비밀 관리암호화 키 관리인증서 관리비밀 순환
Official Docs

더 깊게 보기

현재 페이지의 개념 설명을 본 뒤 공식 문서로 바로 이동합니다.

AZURE