Skip to content

BYOK (사용자 키 관리)

고객이 "우리 데이터를 암호화해 준다지만, 열쇠는 누가 갖고 있지?"라고 궁금해할 수 있어요. 암호화 열쇠를 서비스 제공자가 전부 갖고 있으면, 털리면 데이터도 함께 위험해지니까요. BYOK(Bring Your Own Key)는 암호화 열쇠를 고객이 직접 갖고 오는 방식이에요. 열쇠를 고객이 쥐고 있으니, 우리가 함부로 데이터를 열어보지 못한다는 신뢰를 만들어 줍니다.

암호화 자체는 널리 쓰이는 기술이지만, BYOK의 포인트는 "키를 누가 관리하느냐"라는 책임의 위치예요. 그래서 데이터 암호화와 키 관리를 구분해서 이해해야 해요.

이 구분은 계약(거버넌스)과도 맞물려요. 데이터는 우리가 위탁받아 처리하되, 열쇠는 고객이 쥐는 책임 분담을 문서로도 명확히 하죠.

하위 챕터

핵심 개념

대칭키 암호화와 AES-256. 저장된 데이터를 암호화할 때는 대체로 대칭키 알고리즘을 써요. 그중 AES-256-GCM은 256비트 키로 암호화하면서 인증 태그를 함께 붙여, 데이터가 열려도 위·변조를 따로 걸러내요.

Envelope Encryption(봉투 암호화). 큰 데이터 전체를 고객 키로 직접 암호화하면 성능과 관리가 번거로워요. 그래서 실제 데이터는 임시 데이터 키로 암호화하고, 그 데이터 키를 다시 고객 키로 감싸서(암호화해서) 보관해요. 이 "키를 감싸는 키" 구조를 envelope encryption이라 해요.

이 구조 덕에 꼭 필요한 순간에만 고객 키를 쓰고, 대부분의 연산은 임시 데이터 키로 처리할 수 있어요.

고객 키 ──> 데이터 키 감싸기 ──> 데이터 키 ──> 실제 데이터 암호화

키 관리(KMS). 고객 키를 안전하게 보관·회전·폐기하려면 키 관리 서비스(KMS)가 도와줘요. 고객이 키를 직접 제공하거나, 키는 고객의 KMS에 두고 우리는 그 키를 쓰는 요청만 보내는 방식도 있어요.

키는 밖으로 나가지 않게. BYOK의 핵심은 "데이터는 우리가, 열쇠는 고객이"라는 경계예요. 키가 우리 시스템 밖으로 유출되지 않도록, 암호화·복호화 요청만 주고받는 식으로 설계합니다. 키 자체는 고객의 KMS에 남고, 우리는 그 키로 연산을 요청하는 거죠.

사용 사례 / 실제 적용

적용 중인 단계라, 도입을 염두에 두고 설계를 다듬는 입장이에요. Canvas나 웹빌더 고객이 BYOK + On-premise 조합을 선택하면, 우리가 아니라 고객이 열쇠를 들고 데이터를 자체 망에 두죠. 그럴 때 폐쇄망 LLM까지 붙으면 "데이터가 우리 손을 한 번도 안 거치는" 배포가 완성돼요.

설계할 때 챙길 지점은 키 회전(키를 주기적으로 바꾸기), 키 폐기(고객이 키를 없애면 그 키로 암호화된 데이터는 읽을 수 없게 됨), 그리고 감사 로그(누가 언제 그 키를 사용했는지)예요. 키를 잃어버리면 복호화할 방법이 없으니, 이 책임의 경계를 계약(DPA)으로도 명확히 해둬야 해요.

더 알아보기