설명
Crossplane의 Azure Redis 설정에서 enableNonSslPort: true는 TLS를 사용하지 않는 연결을 허용합니다. Redis에는 세션 데이터, 캐시된 사용자 정보와 내부 서비스의 공유 데이터가 들어갈 수 있으므로 전송 구간 암호화가 중요합니다.
이 설정이 모든 연결을 평문으로 바꾸는 것은 아니지만, 비 TLS 포트에 연결하는 클라이언트의 데이터는 암호화되지 않습니다. 내부망에서도 클라이언트가 TLS와 서버 인증서 검증을 사용하도록 구성해야 합니다.
잠재적 영향
- 비암호화 연결로 전송한 데이터나 인증 정보가 네트워크 트래픽을 관찰할 수 있는 공격자에게 노출될 수 있습니다.
- 해당 통신 경로를 조작할 수 있으면 데이터의 무결성도 위협받을 수 있습니다.
해결 방법
- 클라이언트를 먼저 TLS 연결로 전환하고, 서버 인증서와 호스트 이름을 검증하도록 설정하세요.
enableNonSslPort를 명시적으로false로 설정해 비암호화 포트를 비활성화하세요.- 필요한 인증과 네트워크 접근 제한도 유지하고, 정상 TLS 연결의 성공과 비암호화 연결의 거부를 시험하세요.
예시
다음은 비 TLS 포트 설정을 비교하는 부분 예시입니다. 캐시를 생성하는 데 필요한 나머지 설정은 생략했습니다.
변경 전
yaml
apiVersion: cache.azure.crossplane.io/v1beta1
kind: Redis
spec:
forProvider:
location: West Europe
enableNonSslPort: true
TLS 없이 접속하는 포트를 허용하므로 클라이언트가 비암호화 연결을 사용할 수 있습니다.
변경 후
yaml
apiVersion: cache.azure.crossplane.io/v1beta1
kind: Redis
spec:
forProvider:
location: West Europe
enableNonSslPort: false
비 TLS 포트를 비활성화합니다. 애플리케이션 연결 설정도 TLS를 사용하도록 바꿔야 연결을 유지할 수 있습니다.