클라이언트 애플리케이션과 Memorystore for Redis Cluster 간에 이동하는 모든 데이터를 안전하게 암호화할 수 있습니다. 이를 전송 중인 데이터 암호화 라고 합니다. 전송 중인 데이터 암호화를 사용하면 전송 계층 보안 (TLS) 프로토콜을 통해 모든 Redis 트래픽이 암호화됩니다. 이렇게 하면 애플리케이션과 Memorystore for Redis 클러스터 간에 이동하는 모든 데이터가 기밀로 유지되고 변조되지 않습니다.
전송 중인 데이터 암호화가 사용 설정되면 Redis 클라이언트는 보안 연결을 통해 독점적으로 통신합니다. TLS에 구성되지 않은 Redis 클라이언트는 차단됩니다. 전송 중인 데이터 암호화를 사용하려면 Redis 클라이언트에서 TLS 프로토콜을 사용할 수 있는지 확인해야 합니다.
다음은 전송 중인 데이터 암호화를 사용하는 샘플 사용 사례입니다.
- 민감한 캐시된 데이터 보호: Memorystore for Redis Cluster를 사용하여 세션 토큰, 개인 식별 정보 (PII) 또는 API 키와 같은 가치가 높은 정보를 저장하는 경우 전송 중 암호화는 VPC 액세스 권한이 있는 공격자가 데이터에 액세스하지 못하도록 합니다.
- 업계 표준 준수: 의료 분야의 HIPAA 및 금융 데이터의 PCI DSS를 비롯한 많은 보안 프레임워크에서는 규제 및 업계 규정 준수 목적으로 민감한 정보를 저장 시와 전송 시 모두 암호화하도록 요구합니다.
- 보안 ID 및 액세스 관리 (IAM) 인증: IAM 인증을 사용하여 데이터에 대한 액세스를 관리할 때 Memorystore for Redis Cluster는 전송 중에 인증 토큰이 노출되거나 유출되는 것을 방지하기 위해 TLS를 요구합니다.
- 중간자 공격 방지: TLS는 인증 기관 (CA)을 사용하여 서버 엔드포인트를 인증합니다. CA는 데이터가 애플리케이션과 Memorystore for Redis Cluster 간에 이동할 때 서버 스푸핑 및 무단 데이터 수정으로부터 애플리케이션을 보호합니다.
전송 중인 데이터 암호화 기본 요건
Memorystore for Redis Cluster에 전송 중인 데이터 암호화를 사용하려면 다음이 필요합니다.
TLS 또는 서드 파티 TLS 사이드카를 지원하는 Redis 클라이언트
클러스터에 액세스하는 클라이언트 머신에 설치된 CA 인증서
기본 제공 TLS는 Redis 버전 6.0 이상에서만 지원되었습니다. 따라서 일부 Redis 클라이언트 라이브러리는 TLS를 지원하지 않습니다. TLS를 지원하지 않는 클라이언트를 사용하는 경우 클라이언트에 TLS를 사용 설정하는 서드 파티 플러그인을 사용하는 것이 좋습니다. 전송 중인 데이터 암호화가 사용 설정된 Memorystore for Redis Cluster에서 클러스터에 연결하는 방법의 예 를 확인할 수 있습니다.
인증 기관 (CA)
전송 중인 데이터 암호화를 사용하는 클러스터에는 클러스터의 머신 인증서를 인증하는 인증 기관 (CA)이 있습니다. Memorystore for Redis Cluster를 사용하면 서버 CA 모드를 선택할 수 있습니다. CA 모드는 클러스터의 디지털 인증서를 발급하는 데 사용되는 CA 계층 구조를 결정합니다.
Memorystore for Redis 클러스터는 다음과 같은 CA 모드를 제공합니다.
- 인스턴스별 CA: Memorystore for Redis Cluster는 각 클러스터에 고유한 CA 인프라를 프로비저닝합니다. 클러스터에 안전하게 액세스하려면 이 CA 계층 구조를 신뢰하도록 클라이언트를 구성해야 합니다. 여기에는 클러스터에 액세스하는 각 클라이언트에서 CA 인증서를 다운로드하고 설치하는 작업이 포함됩니다.
- 공유 CA: 관리형 지역화된 CA 인프라입니다. 각 리전에서 단일 CA 인증서 번들을 다운로드할 수 있습니다. 이 번들은 공유 CA를 사용하도록 구성한 리전에 있는 모든 클러스터에 유효합니다. 공유 CA를 사용하면 클라이언트가 관리해야 하는 인증서 수가 줄어듭니다.
- 고객 관리 CA: Certificate Authority Service에서 호스팅되는 자체 CA 풀을 사용합니다. 클라이언트 애플리케이션이 이 CA를 신뢰하도록 구성된 경우 추가 CA 인증서를 다운로드하고 설치하지 않아도 애플리케이션이 클러스터에 연결할 수 있습니다. 이렇게 하면 더 많은 제어 권한을 부여하고 규정 준수 요구사항을 충족하는 데 도움이 됩니다.
서버 인증서 순환
매주 Memorystore for Redis Cluster는 인스턴스별 CA, 공유 CA, 고객 관리 CA 모드를 사용하는 클러스터에 대해 서버 측 인증서 순환을 실행합니다. 새 서버 인증서는 새 연결에만 적용되며 기존 연결은 이 순환 중에 활성 상태로 유지됩니다.
Memorystore for Redis Cluster에서 매주 서버 측 인증서 순환을 실행하는 것 외에도 고객 관리 CA 모드의 경우 인증서를 주문형으로 순환할 수 있습니다.
전송 중인 데이터 암호화 사용 설정 시 성능 영향
전송 중인 데이터 암호화 기능은 오버헤드 처리와 동시에 데이터를 암호화 및 복호화합니다. 따라서 전송 중인 데이터 암호화를 사용 설정하면 클라이언트의 성능이 저하될 수 있습니다. 또한 전송 중인 데이터 암호화를 사용하면 각 추가 연결이 연결된 리소스 비용으로 제공됩니다.
전송 중인 데이터 암호화 사용과 관련된 지연 시간을 확인하려면 클라이언트의 성능을 비교합니다. 이렇게 하려면 전송 중인 데이터 암호화가 사용 설정된 클러스터의 성능을 비활성화된 클러스터와 비교하여 벤치마킹합니다.
성능 개선 가이드라인
클러스터의 성능을 개선하려면 다음 가이드라인을 따르세요.
가능하면 클라이언트 연결 수를 줄입니다. 주문형 단기 연결을 만드는 대신 장기 실행 연결을 설정하여 재사용하세요.
클러스터의 크기 를 늘립니다.
클라이언트 호스트 머신의 CPU 리소스를 늘립니다. CPU 수가 더 많은 클라이언트 머신은 더 나은 성능을 제공합니다. Compute Engine VM을 사용하는 경우 최적화된 클러스터를 사용하는 것이 좋습니다.
클라이언트 트래픽과 관련된 페이로드 크기를 줄입니다. 페이로드가 클수록 더 많은 왕복을 요합니다.