Consul 에이전트 간 암호화 통신
Consul 에이전트 간 암호화 통신
Consul에서 사용할 수 있는 두 가지 구별되는 암호화 시스템의 개요를 설명해 드릴게요. Gossip 암호화와 Mutual TLS(mTLS) 암호화는 안전한 Consul 데이터센터의 기초예요.
출처: 문서
본문
이 문서는 Consul에서 사용할 수 있는 두 가지 구별되는 암호화 시스템의 개요를 제공해요. Gossip 암호화와 Mutual TLS 암호화는 안전한 Consul 데이터센터의 기초예요.
안전한 Consul 배포를 운영하기 위한 Consul 보안 모델의 지침은 두 암호화 시스템을 모두 사용할 것을 권장해요.
Gossip 암호화
Consul은 gossip 프로토콜을 사용하여 다음 클러스터 작업을 수행해요:
- 데이터센터 구성원 식별
- 실패한 구성원을 신속하게 감지하고 나머지 클러스터에 알림
- 사용자 지정 워크플로를 트리거할 수 있는 이벤트 및 쿼리 브로드캐스트
gossip 프로토콜과 그 구성원 관리 및 메시지 브로드캐스트 기능은 Serf 라이브러리를 사용해요.
기본 Consul 구성에서 gossip 프로토콜은 LAN 통신에 포트 8301, 연동된 데이터센터 간 WAN 통신에 포트 8302를 사용해요. Consul 데이터센터에서 gossip 암호화를 활성화하는 것은 이 두 포트의 트래픽을 보호하는 데 필수적이에요.
Gossip 암호화는 대칭적이며 데이터센터의 모든 구성원이 공유하는 단일 키를 기반으로 해요. 다음 매개변수를 사용하여 Consul에서 gossip 암호화를 구성할 수 있어요:
- encrypt.
- encrypt_verify_incoming. 실행 중인 클러스터에서 암호화되지 않은 gossip에서 암호화된 gossip으로 전환할 때만 사용돼요.
- encrypt_verify_outgoing. 실행 중인 클러스터에서 암호화되지 않은 gossip에서 암호화된 gossip으로 전환할 때만 사용돼요.
Consul 데이터센터에서 gossip 암호화를 활성화하고 gossip 키를 회전하는 방법에 대해 자세히 알아보려면 gossip 암호화 관리를 참고해 주세요.
Mutual TLS(mTLS) 암호화
Consul은 mTLS로 보호할 수 있는 서로 다른 포트를 통해 여러 통신 프로토콜을 사용해요:
- 컨센서스 프로토콜은 Consul 서버 간 데이터 일관성을 제공해요. 보통 포트 8300을 사용해요.
- 원격 프로시저 호출(RPC)은 클라이언트 에이전트에서 서버 에이전트로 요청을 전달해요. 컨센서스 프로토콜이 사용하는 것과 같은 포트를 사용해요.
- HTTP 또는 HTTPS 인터페이스는 클라이언트가 Consul API, CLI, UI와 통신할 수 있게 해줘요. 보통 포트 8500과 포트 8501을 사용해요.
- gRPC 인터페이스는 에이전트 노드에 등록된 게이트웨이와 Envoy 프록시에서 들어오는 트래픽을 받아요. 보통 포트 8502와 포트 8503을 사용해요.
Consul은 mTLS를 사용하여 서버와 클라이언트 에이전트의 신뢰성을 확인해요. 모든 클라이언트와 서버가 단일 인증 기관(CA)에서 생성된 키 쌍을 가져야 해요. 다른 애플리케이션과 공유되지 않는 프라이빗 CA를 사용할 것을 권장해요.
에이전트 구성 파일의 tls 스탠자를 사용하여 Consul에서 mTLS를 구성할 수 있어요.
다음 매개변수를 사용하여 에이전트 구성 파일에서 각 프로토콜에 대해 mTLS 암호화를 별도로 구성할 수 있어요:
- tls.defaults는 프로토콜별 구성으로 명시적으로 재정의되지 않는 한 Consul이 모든 인터페이스에 적용하는 기본 설정을 제공해요.
- tls.internal_rpc는 내부 서버 RPC 인터페이스에 대한 설정을 제공해요.
- tls.https는 HTTP/HTTPS 인터페이스에 대한 설정을 제공해요.
- tls.grpc는 gRPC/xDS 인터페이스에 대한 설정을 제공해요.
Consul 데이터센터에서 mTLS를 활성화하는 방법에 대해 자세히 알아보려면 mTLS 암호화 관리를 참고해 주세요.