카우치베이스는 카우치베이스 클러스터 내의 노드 간 연결에 TLS 기반 암호화를 추가하여 노드 간 암호화 또는 클러스터 암호화를 지원합니다.
Couchbase를 사용하는 고객이 HIPAA와 같은 개인정보 보호 규정을 준수해야 하는 경우(예: 금융 또는 의료 고객), 일반적으로 인증(LDAP), 권한 부여(RBAC 역할 기반 액세스 제어) 및 암호화를 허용해야 합니다. 또한 중요한 정보, 특히 로그에 대한 감사 및 삭제 기능을 지원하는 것도 중요합니다(Couchbase는 특정 태그를 사용한 로그 삭제 기능을 지원합니다). 암호화와 관련하여 Couchbase는 클러스터 구성 수준 설정을 사용하여 여러 수준에서 노드 간 암호화를 지원합니다. 이는 사용자가 제어하며 3가지 값을 사용할 수 있습니다:
-
제어: 이 수준에서는 내부 서비스에 대한 클러스터 및 서버 연결만 암호화됩니다. 여기에는 기본적으로 클러스터 관리 정보 및 관련 내부 프로세스가 포함됩니다. 그러나 클러스터 내 노드 간 데이터는 암호화되지 않습니다. 예를 들어, 서버와 쿼리 서비스 연결은 암호화됩니다. 이것이 기본 동작입니다.
-
모두: 이 수준에서는 노드 간 연결과 서비스 간 연결이 모두 암호화됩니다. 즉, 단일 노드에 여러 서비스가 있는 경우 이러한 서비스 간의 연결도 암호화된다는 뜻입니다. 따라서 쿼리 노드에 대한 서버 연결과 함께 쿼리 노드에서 인덱서 노드 및 FTS 노드에 이르는 쿼리 노드 간의 통신도 암호화됩니다.
-
엄격합니다: 이는 곧 출시될 릴리스 7.0에 추가된 새로운 수준입니다. 클러스터 암호화 수준을 '엄격'으로 설정하는 것은 클러스터 암호화 수준을 '모두'로 설정하고 루프백이 아닌 인터페이스에서 SSL이 아닌 포트를 모두 비활성화하는 것과 동일합니다.
N-N 암호화 사용
기본적으로 클러스터 암호화는 꺼져 있습니다. 활성화하면 제어로 설정됩니다. 노드 간 암호화를 원할 경우 명시적으로 모두로 설정해야 합니다. 인증서를 사용하여 지원됩니다.
-
자동 장애 조치를 비활성화합니다: 노드 간 암호화를 사용하여 클러스터 암호화를 사용하도록 설정하기 전에 전환 중인 노드가 응답하지 않는 것으로 표시되어 장애 조치되는 것을 방지하기 위해 사용자가 자동 장애 조치를 비활성화해야 합니다. 이 작업은 couchbase-cli 또는 REST API를 사용하여 수행할 수 있습니다.
./couchbase-cli 설정-자동 페일오버 -c :8091 -u 사용자 이름 -p 비밀번호
--enable-auto-failover 0
또는
curl -u username:password http://:8091/settings/autoFailover
-d enabled=false
-
노드 간 암호화를 사용하도록 설정합니다: 성공적으로 반환되면 명령을 사용하여 노드 간 암호화를 활성화할 수 있습니다:
./couchbase-cli 노드 간 암호화 -c :8091 -u 사용자 이름
-p 비밀번호 -사용
이렇게 하면 제어할 클러스터 암호화 수준이 설정되고 클러스터의 모든 노드에 대한 암호화가 켜집니다. 암호화가 성공적으로 사용 설정되었는지 확인하려면-get옵션 대신 위의-활성화.
-
클러스터 암호화 설정을 변경합니다: 사용자가 클러스터 암호화 수준을 변경하려는 경우 다음 CLI 명령을 사용할 수 있습니다:
./couchbase-cli 설정-보안 -c :8091 -u 사용자 이름 -p 비밀번호
-설정 -클러스터-암호화 수준 모두
REST API 명령을 사용할 수도 있습니다:
curl -XPOST -u username:password http://:8091/settings/security
-d 클러스터 암호화 수준=모두
-
자동 장애 조치를 다시 사용 설정합니다: 그런 다음 자동 장애 조치를 다시 사용하도록 설정해야 합니다.
자동 장애 조치 활성화 및 비활성화에 대한 자세한 내용은 자동 장애 조치 활성화 및 비활성화를 참조하세요:
https://docs.couchbase.com/server/current/cli/cbcli/couchbase-cli-setting-autofailover.html 클러스터 전체 암호화 설정을 검색하려면 다음을 참조하세요: https://docs.couchbase.com/server/current/rest-api/rest-setting-security.html
노드 간 암호화 비활성화하기
-
제어할 클러스터 암호화 수준을 변경합니다.
-
비활성화하려면 CLI에서 노드 간 암호화 설정을 사용합니다.
인증서 및 노드 간 암호화
X509 인증서로 서버를 보호할 때 기억해야 할 중요한 사항은 루트 및 중간 인증서를 업로드하거나 로테이션하기 전에 노드 간 암호화를 비활성화하는 것입니다. 따라서 인증서를 사용하여 서버를 보호하려면 다음 단계를 따라야 합니다:
-
노드 간 암호화를 비활성화합니다.
-
에 설명된 단계를 사용하여 루트/중간 인증서를 만들고 클러스터에 업로드 또는 회전합니다. https://dzone.com/articles/authentication-using-server-side-x509-certificates.
-
노드 간 암호화를 다시 활성화합니다.
노드 간 암호화 활성화의 한계 중 하나는 성능에 미치는 영향입니다. 모든 노드 간 통신이 암호화되므로 약간의 오버헤드가 추가됩니다. 그러나 추가적인 보안 통신은 추가적인 보너스입니다.
결론
이 문서에서는 Couchbase가 노드 간 암호화를 지원하고 보안을 최적화하기 위해 개별 노드와 노드에 배포된 여러 Couchbase 서비스 간의 네트워크 트래픽을 암호화하는 방법을 확인할 수 있습니다. 이를 통해 HIPAA와 같은 개인정보 보호 규정을 준수해야 하는 애플리케이션을 지원할 수 있습니다.