카우치베이스 서버

Couchbase 4.6에서 비밀 관리하기

모든 소프트웨어 애플리케이션에는 비밀이 있습니다. 비밀번호, API 키, 보안 토큰은 모두 비밀의 범주에 속합니다.  프로덕션 비밀 키가 잘못된 사람의 손에 들어가면 끔찍한 결과를 초래할 수 있습니다. 비밀 키에 액세스할 수 있는 방법과 시기를 엄격하게 제어해야 합니다.

Couchbase는 인프라에 더 많은 서비스를 추가했으며 이러한 서비스에는 내부 및 외부 자격 증명이 있어 이러한 서비스의 자격 증명을 저장하는 것이 어려운 과제입니다. 또 다른 과제는 모든 내부 및 외부 서비스에 대한 비밀을 순환하는 것입니다.

카우치베이스 4.6에는 공유되는 모든 비밀이 저장될 때 암호화되어 노드와 서비스에 올바르게 전달되고 비밀을 쉽게 순환할 수 있는 비밀 관리 기능이 도입되었습니다. SDK 클라이언트나 UI 및 성능에는 영향을 미치지 않습니다.

카우치베이스는 2단계의 키 계층 구조를 유지하여 데이터 재인코딩 없이 마스터 비밀번호를 쉽게 교체할 수 있고, 여러 마스터 비밀번호를 지원하며, KMIP 서버와의 통합도 용이합니다. 노드 시작 시 마스터 비밀번호가 생성되거나 사용자가 제공하면 강력한 키 파생 기능을 사용하여 마스터 키가 생성됩니다. 카우치베이스는 생성 키로 PBKDF2를 사용합니다.

서버가 시작될 때 임의의 데이터_키도 생성되며, 이 데이터_키는 마스터 키로 암호화됩니다. 모든 비밀은 디스크의 data_key를 사용하여 암호화됩니다.  카우치베이스 사용 GCM 모드에서 AES 256비트 알고리즘을 사용하여 비밀을 암호화합니다.

시스템을 부트스트랩하기 위해 마스터 키는 암호화된 데이터 키를 여는 데 사용됩니다. 그런 다음 암호 해독된 데이터 키를 사용하여 암호화된 시크릿을 열고, 시크릿을 사용하여 Couchbase Server를 시작합니다. 강력한 마스터 비밀번호를 사용하는 것이 좋습니다.

4.6의 비밀 관리 기능을 사용하면 주기적으로 또는 위반이 발생한 경우 키 계층 구조의 여러 수준에서 비밀을 교체할 수 있습니다.

마스터 비밀번호 로테이션/첫 번째 수준의 로테이션 및 비밀번호 재설정은 REST API 또는 cli를 사용하여 수행할 수 있습니다. 카우치베이스는 노드당 하나의 마스터 비밀번호를 유연하게 설정할 수 있습니다. 마스터 비밀번호를 분실하여 서버가 중지되는 경우 노드가 손실됩니다. 노드의 데이터는 서버와 함께 다른 도구를 사용하여 복구할 수 있습니다.

두 번째 수준의 로테이션은 REST API 또는 cli를 사용하여 데이터 키를 변경하여 수행할 수 있습니다.  

마스터 비밀번호의 모든 회전 및 설정은 애플리케이션별로 감사를 받습니다.

우분투 14에서 cli를 사용하여 마스터 비밀번호를 위한 서버를 설정하는 예제입니다.

  • 카우치베이스 서버를 설치하고 구성합니다.
  • cli를 사용하여 마스터 비밀번호를 설정하고 아래 명령을 실행한 후 프롬프트에 비밀번호를 입력합니다.

/opt/couchbase/bin/couchbase-cli 마스터-비밀번호 -c 192.168.0.1:8091 -u 관리자 -p 비밀번호 -새-비밀번호

  • 서버 중지 - 서버 중지 /etc/init.d/couchbase-server stop
  • 환경 변수 구성

내보내기 CB_MASTER_PASSWORD=

  • 서버 시작 - 서버 시작 /etc/init.d/couchbase-server 시작

sudo를 사용하여 서버를 시작하는 경우 sudo에 -E 옵션을 사용하여 서버를 시작하세요.

  • cli를 사용하여 데이터 키를 회전하고 아래 명령을 실행합니다:

/opt/couchbase/bin/couchbase-cli 마스터-비밀번호 -c 192.168.0.1:8091 -u 관리자 -p 비밀번호 -rotate-data-key

  • 마스터 비밀번호를 변경하려면 아래 명령어를 실행하세요. 프롬프트에 비밀번호를 입력합니다.

/opt/couchbase/bin/couchbase-cli 마스터-비밀번호 -c 192.168.0.1:8091 -u 관리자 -p 비밀번호 -새-비밀번호

 

로깅 세부 정보:

 

베이비시터 로그온 비밀번호 변경 [ns_server:info,2017-01-20T13:12:30.079Z,babysitter_of_ns_1@127.0.0.1:encryption_service:encryption_service:call_gosecrets_and_store_data_key:227]마스터 암호 변경에 성공했습니다.
서버 시작 중 베이비시터가 잘못된 마스터 비밀번호로 로그온하거나 환경 변수가 잘못 설정되었습니다. [ns_server:error,2017-01-20T13:13:07.066Z,babysitter_of_ns_1@127.0.0.1:encryption_service:encryption_service:init:174]마스터 비밀번호가 잘못되었습니다. 오류가 발생했습니다: {error,"암호: 메시지 인증에 실패했습니다"}
CB 서버에 마스터 비밀번호가 올바르게 설정된 경우 베이비시터 로그 =========================PROGRESS REPORT=========================

슈퍼바이저 {로컬,NS_BABYSITTER_SUP}

시작되었습니다: [{pid,},

{이름,암호화_서비스},

{mfargs,{encryption_service,start_link,[]}},

{restart_type,영구},

{shutdown,1000}

{child_type,worker}]

[ns_server:debug,2017-01-22T12:08:46.432Z,babysitter_of_ns_1@127.0.0.1::supervisor_cushion:init:39]지연 5000으로 ns_port_server 시작 중

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 리탐 샤르마, 품질 엔지니어링 수석 관리자, Couchbase

리탐 샤르마는 카우치베이스의 품질 엔지니어링 디렉터입니다. Couchbase에 합류하기 전에는 kOnnect DIGITAL의 공동 창립자 겸 CTO였습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.