TLS를 사용하여 연결 보안

이 페이지에서는 TLS 프로토콜을 사용하는 Redis 인스턴스를 만드는 방법과 TLS가 사용 설정된 Redis 인스턴스를 관리하는 데 필요한 작업에 대해 설명합니다.

TLS의 일반적인 동작 및 혜택에 대한 정보는 TLS 암호화를 참조하세요.

사용자가 이 페이지의 관리 작업을 수행하는 데 필요한 권한 목록은 TLS 권한을 참조하세요.

TLS를 사용해 Redis 인스턴스 만들기

콘솔

Redis 인스턴스를 만들 때 전송 계층 보안(TLS) 사용 설정을 선택합니다.

gcloud

TLS를 사용해 Redis 인스턴스를 만들려면 variables를 적절한 값으로 바꿔 다음 명령어를 입력합니다.

gcloud beta redis instances create instance-id --transit-encryption-mode=SERVER_AUTHENTICATION --size=size --region=region-id

각 항목의 의미는 다음과 같습니다.

  • --transit-encryption-mode=SERVER_AUTHENTICATION은 인스턴스에 TLS를 사용 설정합니다.

인증 기관 다운로드

콘솔

  1. Cloud Console에서 Redis용 Memorystore 페이지로 이동합니다.

    Redis용 Memorystore

  2. 인스턴스 ID를 클릭하여 인스턴스의 인스턴스 세부정보 페이지를 확인합니다.

  3. TLS 서버 인증서에서 다운로드 또는 모두 다운로드 버튼을 클릭합니다.

gcloud

인스턴스에 TLS가 사용 설정되어 있는 경우 다음 명령어를 실행하면 인증 기관의 콘텐츠가 표시됩니다.

gcloud beta redis instances describe instance-id --region=region

응답 본문에 관련된 모든 인증 기관이 포함됩니다. 다음은 Redis용 Memorystore 인증 기관(CA)의 예시입니다.

-----BEGIN CERTIFICATE-----
MIIDnTCCAoWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBhTEtMCsGA1UELhMkNzYx
NTc4OGMtMTI2Yi00Nzk0LWI2MWMtY2YxOWE2Y2Y1ZjNiMTEwLwYDVQQDEyhHb29n
bGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVkaXMgU2VydmVyIENBMRQwEgYDVQQKEwtH
b29nbGUsIEluYzELMAkGA1UEBhMCVVMwHhcNMjAwOTE3MjEzNDE1WhcNMzAwOTE1
MjEzNTE1WjCBhTEtMCsGA1UELhMkNzYxNTc4OGMtMTI2Yi00Nzk0LWI2MWMtY2Yx
OWE2Y2Y1ZjNiMTEwLwYDVQQDEyhHb29nbGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVk
aXMgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkGA1UEBhMCVVMw
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyDKmDHZm6tzMhNtKOnp8H
8+zTv1qA6OkBToVqCjKTTMGO18ovNtAAMjbGvclLuJNLbA2WTTWVttHen6Cn82h0
3gG9HMk9AwK1cVT7gW072h++TRsYddIRlwnSweRWL8jUX+PNt7CjFqH+sma/Hb1m
CktHdBOa897JiYHrMVNTcpS8SFwwz05yHUTEVGlHdkvlaJXfHLe6keCMABLyjaMh
1Jl4gZI2WqLMV680pJusK6FI6q/NmqENFc9ywMEg395lHTK9w9e014WIXg0q7sU3
84ChVVS2yYOMEUWeov4Qx6XeVfA4ss5t7OCqsMQkvslkE90mJZcVvhBj3QvTH9Rz
AgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEB
AJkn+MDE4V10DZn4uEc0s0Mg4FEMC1fDewmDYwSNnxRlzfEi+wAX2AaqrJ4m4Qa7
xIyuSYxArEOY6QeyJyw7/06dom8aAv4aO2p8hE04Ih6QwaTMFIlT2Jf6TidVd3eT
wfjwFJVoJ+dgxsaCv2uMFZWee5aRHmKzj9LhqPwpWnTs9Q/qmOheUNoe2/1i8yvn
662M7RZMR7fZH6ETsdz5w1nPXXiRqJ7K0EGKoPNjMlYK3/U1X3sazI4tpMNgTdxG
rnNh9Sd9REMBmDCPj9dUI9k4hQX4yQZp96fnLT6cet22OPajEKnpzyqJs1s4iX/g
lEtWs4V/YBhKA56CW6ASZS8=
-----END CERTIFICATE-----

Redis 인스턴스에 액세스하는 클라이언트에 설치할 수 있도록 모든 CA를 일시적으로 복사하여 저장합니다.

클라이언트에 인증 기관 설치

Redis 인스턴스의 인증 기관(ies)은 연결 클라이언트에 설치해야 합니다. CA 설치는 클라이언트 유형에 따라 다를 수 있습니다. 아래 단계에서는 Compute Engine Linux VM에 CA를 설치하는 방법을 설명합니다.

  1. SSH를 사용해 Compute Engine Linux 클라이언트에 연결합니다. 이 클라이언트가 Redis 인스턴스와 동일한 리전에 있어야 연결할 수 있습니다.

  2. 다음 명령어를 실행하여 클라이언트에서 server_ca.pem이라는 파일을 만듭니다.

    sudo vim /tmp/server_ca.pem
    
  3. 인증 기관을 다운로드하고 이전에 만든 server_ca.pem 파일에 붙여넣습니다.

    CA 텍스트의 형식을 올바르게 지정해야 합니다.

    • -----BEGIN CERTIFICATE----- 줄 및 -----END CERTIFICATE----- 줄을 포함한 전체 인증 기관을 복사합니다.
    • CA의 텍스트가 왼쪽 맞춤인지 확인합니다. CA 줄 앞에 공백이 없어야 합니다.

TLS용 클라이언트 구성

Redis 인스턴스에 연결하는 데 사용하는 클라이언트는 TLS를 지원하거나 타사 사이드카를 사용하여 TLS 지원을 사용 설정해야 합니다.

클라이언트가 TLS를 지원하는 경우 Redis 인스턴스의 IP, 포트 6378, 인증 기관이 포함된 파일을 가리키도록 구성합니다. 사이드카 사용을 선택한 경우에는 Stunnel을 사용하는 것이 좋습니다.

추가 클라이언트 구성

기본적으로 자체 서명 인증서를 허용하지 않는 일부 클라이언트에서는 추가 구성이 필요합니다.

예를 들어 Lettuce는 많이 사용되는 Redis용 자바 클라이언트입니다. 해당 문서는 TLS로 기본적으로 연결하는 예시를 보여줍니다(예시 47 참조). 자바 보안 관리자는 기본적으로 자체 서명 인증서를 허용하지 않으므로 Redis URI 생성 .withVerifyPeer(false)에 추가 옵션을 지정해야 합니다.

Stunnel 및 telnet을 사용해 Redis 인스턴스에 안전하게 연결하기

Stunnel을 사용하여 Compute Engine 클라이언트에 TLS를 사용 설정하는 방법은 Stunnel 및 telnet을 사용해 Redis 인스턴스에 안전하게 연결하기를 참조하세요.

인증 기관 순환 관리

Redis 인스턴스에 액세스하는 클라이언트에 다운로드 가능한 모든 인증 기관을 설치해야 합니다.

인증 기관 순환 이벤트가 발생할 때 필요한 CA가 있는지 확인하는 가장 간단한 방법은 새 CA를 사용할 수 있게 되었을 때 이전 CA에 추가로 새 CA를 설치하는 것입니다.

새 인증 기관이 도입되면 다음 명령어를 실행하여 새 CA의 콘텐츠를 표시합니다.

gcloud beta instances describe instance-id --region=region

그런 다음 최신 인증 기관을 복사하여 이전 CA를 저장한 클라이언트의 파일에 붙여넣습니다.

파일은 다음 형식을 사용해야 합니다. CA의 순서는 중요하지 않습니다.

-----BEGIN CERTIFICATE-----
MIIDnTCCAoWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBhTEtMCsGA1UELhMkNzYx
NTc4OGMtMTI2Yi00Nzk0LWI2MWMtY2YxOWE2Y2Y1ZjNiMTEwLwYDVQQDEyhHb29n
bGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVkaXMgU2VydmVyIENBMRQwEgYDVQQKEwtH
b29nbGUsIEluYzELMAkGA1UEBhMCVVMwHhcNMjAwOTE3MjEzNDE1WhcNMzAwOTE1
MjEzNTE1WjCBhTEtMCsGA1UELhMkNzYxNTc4OGMtMTI2Yi00Nzk0LWI2MWMtY2Yx
OWE2Y2Y1ZjNiMTEwLwYDVQQDEyhHb29nbGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVk
aXMgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkGA1UEBhMCVVMw
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyDKmDHZm6tzMhNtKOnp8H
8+zTv1qA6OkBToVqCjKTTMGO18ovNtAAMjbGvclLuJNLbA2WTTWVttHen6Cn82h0
3gG9HMk9AwK1cVT7gW072h++TRsYddIRlwnSweRWL8jUX+PNt7CjFqH+sma/Hb1m
CktHdBOa897JiYHrMVNTcpS8SFwwz05yHUTEVGlHdkvlaJXfHLe6keCMABLyjaMh
1Jl4gZI2WqLMV680pJusK6FI6q/NmqENFc9ywMEg395lHTK9w9e014WIXg0q7sU3
84ChVVS2yYOMEUWeov4Qx6XeVfA4ss5t7OCqsMQkvslkE90mJZcVvhBj3QvTH9Rz
AgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEB
AJkn+MDE4V10DZn4uEc0s0Mg4FEMC1fDewmDYwSNnxRlzfEi+wAX2AaqrJ4m4Qa7
xIyuSYxArEOY6QeyJyw7/06dom8aAv4aO2p8hE04Ih6QwaTMFIlT2Jf6TidVd3eT
wfjwFJVoJ+dgxsaCv2uMFZWee5aRHmKzj9LhqPwpWnTs9Q/qmOheUNoe2/1i8yvn
662M7RZMR7fZH6ETsdz5w1nPXXiRqJ7K0EGKoPNjMlYK3/U1X3sazI4tpMNgTdxG
rnNh9Sd9REMBmDCPj9dUI9k4hQX4yQZp96fnLT6cet22OPajEKnpzyqJs1s4iX/g
lEtWs4V/YBhKA56CW6ASZS8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDnTCCAoWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBhTEtMCsGA1UELhMkYjg4
ZTUzYTMtODdmNC00N2VhLWJjN2MtYTdhMzM4NmIwZmU4MTEwLwYDVQQDEyhHb29n
bGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVkaXMgU2VydmVyIENBMRQwEgYDVQQKEwtH
b29nbGUsIEluYzELMAkGA1UEBhMCVVMwHhcNMjAwOTE4MjEzMTI3WhcNMzAwOTE2
MjEzMjI3WjCBhTEtMCsGA1UELhMkYjg4ZTUzYTMtODdmNC00N2VhLWJjN2MtYTdh
MzM4NmIwZmU4MTEwLwYDVQQDEyhHb29nbGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVk
aXMgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkGA1UEBhMCVVMw
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEO4Zs/So5DA6wtftkAElD
8BVREob4gby2mGBYAtd3JJQKFC+zIqCf2DhrWihrCeXhsdsZqJUF16E3MsCCWS2T
UWt6T37zObU2fzKmb7X+TSw1tunIUcIXwWzoMhqdGrIvfI9guMbF+KssQIjDMs9M
G/hY6cY1NB5THOxXqcxzYrwSKB1EE160EDz4RgKAYQhw7AyVOBBAbWqA5pTEDuUy
qpsz+NFpKYTwaeTpzil0xIl0JJS3DOd4G7ZnMG2wFT2j3wt+P0SkAPuOWgmX82iO
gGmKoaCh3KcICie/rZRTfsRPjMm+yswRQRDeLB5eoMmH+gbUInVZU0qOJ/7gOYEb
AgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEB
AF4xlEbwLUK5VjoKlJBtKXLYrYcW+AbQLhZQFP8exE8bOW7p39h+5J0nl3ItPxu6
97BCt1P5TFisba8pBxaExiDsYmjKQrhtizMkzl5h9hGksOgoLlAqaaxfA97+Q9Tq
5gaYChESur/159Z3jiM47obKoZmHfgSgr//7tjII7yZxUGhOjIVffv/fEa4aixqM
0yH1V1s8hWHZeui2VFrHmTxY20IH9ktyedjSUgnFXzsEH6sbR18p0wBZqyrrtURs
DaUIeoOHfHgEJM8k/wphSJI0V6pMC6nax2JhexLTRiUsiGTLRDe3VtsdWqS2DLa9
9DmrfdF0eFrfWw3VRNLwwXg=
-----END CERTIFICATE-----

필요한 CA가 있는지 확인하려면 클라이언트 파일에 저장된 CA가 gcloud redis instances describe에 표시된 CA와 일치하는지만 확인하면 됩니다. 순환 이벤트가 시작되면 CA가 여러 개 있기 때문에 순환을 위한 충분한 시간이 확보되어 다운타임이 최소화됩니다.

다음 단계