모두가 보안을 염두에 두는 상황에서 조직은 엄격한 보안 및 규정 준수 표준에 따라 민감한 워크로드를 실행해야 합니다. Couchbase 6.5 프리뷰는 몇 가지 새로운 보안 기능을 제공하며, 노드 간 암호화는 많은 고객이 가장 선호하는 위시리스트 항목입니다.
이 블로그에서는 새로운 노드 간 암호화 기능에 대한 간략한 개요와 함께 시작하는 데 도움이 되는 쉬운 단계를 제공합니다.
노드 간 암호화란 무엇인가요?
카우치베이스 서버와 같은 분산형 데이터 플랫폼에서는 기본적으로 두 가지 유형의 정보가 노드 간에 교환됩니다.
1. 클러스터 메타데이터, 설정 등이 포함된 제어 정보
2. JSON 문서를 포함한 사용자 데이터
이전 버전의 카우치베이스 서버에서는 클라이언트와 서버 간에 암호화를 사용할 수 있었고, 데이터 센터 간의 XDCR 트래픽을 보호할 수 있었습니다. 네트워크 전체 IPSec과 같은 보완 보안 제어가 없는 경우, 네트워크에 액세스할 수 있는 한 공격자가 유선으로 정보를 스니핑하는 것이 가능했습니다. 그러나 이러한 보완 제어 중 일부는 구성하거나 대규모로 배포하기 어려웠습니다.
Couchbase 6.5의 새로운 노드 간 암호화 기능을 사용하면 타사 소프트웨어를 설치할 필요 없이 노드 간에 오가는 정보가 Couchbase에 의해 기본적으로 암호화됩니다. 암호화 수준에 따라 제어 플레인 트래픽만 암호화하거나 노드 간 모든 트래픽(제어 및 데이터)을 암호화할 수 있습니다. 이는 고객에게 유연성을 제공하여 성능을 염두에 두면서 사용 사례에 필요한 적절한 암호화 수준을 선택할 수 있도록 합니다.
그렇다고 노드 간 암호화로 모든 것이 해결되는 것은 아닙니다. 노드 간 암호화는 클라이언트-서버 암호화, XDCR을 통한 암호화, 미사용 암호화, 가상 사설 클라우드(VPC) 기반 네트워크 수준 보안 및 격리를 포함한 기존 보안 제어를 보완합니다. 시스템에 더 많은 보호 계층을 추가할수록 공격자가 시스템을 손상시키기가 더 어려워집니다.
노드 내부가 아닌 노드 간 연결
고객 피드백을 바탕으로 노드 간 암호화 기능이 6.5에 추가되었습니다. 이 기능은 모든 클러스터 노드에 포괄적인 TLS를 적용하는 것처럼 보일 수 있지만 개발하는 데 몇 달이 걸렸습니다. 다음 그림은 Couchbase의 클러스터 관리자에서 변경된 몇 가지 사항을 보여줍니다.
빨간색 선은 local 동일한 물리적 노드에 있는 서로 다른 프로세스 간에 존재하는 상호 작용 - ns_babysitter, ns_server 및 ns_couchdb VM. 파란색 선은 외부 클러스터의 다른 노드에서 실행되는 ns_server VM 간의 상호 작용. 빨간색으로 표시된 상호 작용은 클러스터 암호화 사용 여부에 관계없이 항상 암호화되지 않은 상태로 유지됩니다. 이는 실행 중인 프로세스에 불필요하게 암호화로 인한 과부하를 주고 싶지 않기 때문입니다. 반면에 클러스터 암호화가 켜져 있으면 외부 상호 작용(파란색으로 표시됨)이 암호화됩니다.
노드 간 암호화를 설정하는 방법은 무엇인가요?
노드 간 암호화 설정은 간단하며, 이 섹션에서는 노드 간 암호화를 설정하기 위해 따를 수 있는 단계별 지침을 설명합니다.
1단계: 다음에 Couchbase Server 6.5를 설치합니다. 노드 2개. 이 노드를 호출해 보겠습니다. node-1 그리고 node-2.
2단계: 새 클러스터인 경우 노드를 그래픽으로 설정하는 동안 노드 간 암호화를 사용할지 여부를 선택하라는 메시지가 표시됩니다. 기본적으로 노드 암호화는 사용 설정되어 있지 않습니다.
"클러스터 암호화 사용"을 확인합니다. 확인란을 선택하고 계속 진행합니다.
이 설정은 클러스터의 모든 노드가 버전 6.5 이상인 경우에만 적용할 수 있습니다. 새 6.5 클러스터인 경우 클러스터에 가입하는 모든 새 노드가 이 설정을 상속받습니다.
6.5로 업그레이드된 기존 클러스터 또는 새 클러스터의 경우, 아래와 같이 CLI 명령을 사용하여 이 작업을 수행할 수도 있습니다.
$> ./couchbase-cli 노드 간 암호화 -c localhost:8091 -u -p -활성화 |
3단계: 클러스터 암호화가 사용하도록 설정되어 있는지 확인합니다.
./couchbase-cli 설정-보안 -get -c localhost:8091 -u -p
{"disableUIOverHttp": false, "disableUIOverHttps": false, "클러스터 암호화 수준": "control"} |
기본적으로 클러스터 암호화 수준은 다음과 같이 설정되어 있습니다. 제어. 즉, 노드 간 데이터는 여전히 암호화되지 않지만 제어 영역은 암호화됩니다.
4단계: netstat를 사용하여 다음에서 열려 있는 포트를 확인합니다. node-1 발신 node-2. 다음과 같은 경우 적용 중인 암호화 없음, 포트 21100~21299가 사용됨 데이터 교환을 위해. For 노드 간 TLS 연결은 항상 포트 21150을 사용합니다..
이 명령을 실행하려면 sudo를 'root'로 실행해야 합니다.
$> netstat -atep -numeric-ports | grep 'beam.smp' | grep 'node-2' |
출력:
tcp 0 0 node-1.us-central:59586 node-2.us-central:11209 설정됨 카우치베이스 26650 3953/beam.smp
TCP 0 0 NODE-1.US-CENTRAL:21150 node-2.us-central:48498 설정됨 카우치베이스 24960 3953/beam.smp
5단계: 용기가 있다면 tshark(와이어샤크) 패키지를 사용하여 한 단계 더 나아가 TCP 패킷을 캡처할 수도 있습니다. 출력은 다음과 같습니다.
$> tshark -P -i eth0 -f tcp -w /tmp/eth0.pcap
$> tshark -x -r /tmp/eth0.pcap | 덜 |
아래와 같이 암호화된 출력
인증서 순환
정기적인 보안 위생의 일환으로 설치된 인증서를 주기적으로 갱신할 것으로 예상됩니다. 지속적인 클러스터 운영을 보장하기 위해 지원되는 워크플로우는 암호화 모드를 끄고 클러스터의 모든 노드에 최신 인증서를 업로드한 다음 암호화를 다시 켜는 것입니다. 다음은 관리자가 인증서를 교체하기 위해 실행해야 하는 명령입니다:
1. 클러스터 암호화 수준 확인 - 1.
./couchbase-cli 설정-보안 -get -c localhost:8091 -u -p
{"disableUIOverHttp": false, "disableUIOverHttps": false, "클러스터 암호화 수준": "all"} |
그림과 같이 수준이 "모두"인 경우 couchbase-cli 설정-보안 설정 명령을 사용하여 "제어"로 전환해야 합니다.
- "change-cluster-encryption" CLI 명령을 사용하여 클러스터 암호화를 비활성화합니다.
$> couchbase-cli 노드 간 암호화 변경 클러스터 암호화
-c localhost:8091 -u -p -disable |
- 모든 최신 노드 인증서를 복사하여 받은 편지함 폴더를 만들고 클러스터의 모든 노드에 인증서를 다시 로드하도록 지시합니다.
루트 인증서도 갱신해야 하는 경우 다음을 사용하여 새 루트 인증서를 클러스터에 업로드합니다. -업로드-클러스터-ca CLI 명령.
$> couchbase-cli ssl-manage
-cluster : -업로드-클러스터-카 |
그런 다음 -설정-노드-인증서 CLI 명령을 사용하여 클러스터의 모든 노드에서 최신 노드 인증서를 다시 로드합니다.
$> couchbase-cli ssl-manage
-cluster : -설정-노드-인증서 |
- "change-cluster-encryption" CLI 명령을 사용하여 클러스터 암호화를 사용 설정합니다. 리소스
$> couchbase-cli 노드 간 암호화변경-클러스터-암호화
-c localhost:8091
-u
-p
-활성화
결론
고객이 요청해 온 많은 요청을 해결할 수 있는 새로운 보안 기능이 Couchbase Server 6.5에 추가되어 매우 기대가 됩니다. 언제나 그렇듯이 새로운 기능에 대한 여러분의 피드백을 기다리겠으며, Couchbase Server 6.5 미리 보기를 사용해 보시기 바랍니다.
리소스
다운로드
문서
블로그
블로그 Couchbase Server 6.5 발표 - 새로운 기능 및 개선 사항
블로그 분산형 다중 문서 ACID 트랜잭션을 NoSQL에 도입한 Couchbase