インスタンスごとの認証局(CA)を使用してデータを保護する

クライアント アプリケーションと Memorystore for Valkey の間で転送されるすべてのデータを安全に暗号化できます。これは転送中の暗号化です。 転送中の 暗号化を使用すると、すべての Valkey トラフィックが Transport Layer Security(TLS)プロトコルで暗号化されます。これにより、アプリケーションと Memorystore for Valkey の間で転送されるすべてのデータの機密性と完全性が維持されます。

転送中の暗号化が有効になっている場合、Valkey クライアントは安全な接続を介してのみ通信を行います。TLS 用に構成されていない Valkey クライアントはブロックされます。転送中の暗号化を使用する場合は、Valkey クライアントが TLS プロトコルを使用できることを確認する必要があります。

転送中の暗号化を使用するインスタンスには、認証局(CA)があります。CA を使用して、インスタンス内のマシンの証明書を認証します。

使用できる CA モードの 1 つに、インスタンス単位の CA があります。Memorystore for Valkey は、各インスタンスに独自の CA インフラストラクチャをプロビジョニングします。インスタンスに安全にアクセスするには、この CA 階層を信頼するようにクライアント アプリケーションを構成する必要があります。これには、インスタンスにアクセスするクライアントごとに CA 証明書をダウンロードしてインストールする必要があります。

インスタンス単位の CA を使用するインスタンスを作成する

コンソール

インスタンスを作成するの手順に沿って操作します。

gcloud

インスタンス単位の CA を使用するインスタンスを作成するには、gcloud memorystore instances create コマンドを使用します。

gcloud memorystore instances create INSTANCE_ID \
--location=REGION_ID \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/PROJECT_ID/global/networks/NETWORK_ID", "projectId": "PROJECT_ID"}}]}]' \
--replica-count=REPLICA_COUNT \
--node-type=NODE_TYPE \
--shard-count=SHARD_COUNT \
--engine-version=ENGINE_VERSION \
--mode=MODE \
--transit-encryption-mode=server-authentication \
--server-ca-mode=google-managed-per-instance-ca

次のように置き換えます。

  • INSTANCE_ID:作成するインスタンスの ID。インスタンス ID は 1 ~ 63 文字で、小文字、数字、ハイフンのみを使用できます。小文字で始まり、小文字または数字で終わる必要があります。

  • REGION_ID: インスタンスを配置するリージョン。

  • PROJECT_ID: インスタンスを作成するプロジェクトの ID。

  • NETWORK_ID: インスタンスの作成に使用するネットワークの ID。

  • REPLICA_COUNT: レプリカの数(シャードごと)。使用できる値は 05 です。

  • NODE_TYPE: インスタンスのノードタイプ

  • SHARD_COUNT:インスタンス内のシャード数。シャード数によって、インスタンス データを保存するための合計メモリ容量が決定されます。インスタンスの仕様について詳しくは、インスタンスとノードの仕様をご覧ください。

  • ENGINE_VERSION: インスタンスのバージョン。このパラメータに使用できる値は、VALKEY_7_2VALKEY_8_0VALKEY_9_0 です。値を指定しない場合、デフォルト値は VALKEY_9_0 です。

  • MODE: インスタンスがクラスタモード有効か クラスタモード無効かを決定します。このフィールドを省略すると、インスタンスはデフォルトでクラスタモード有効になります。詳細については、クラスタモードを有効または無効にするをご覧ください。

server-ca-mode パラメータは、インスタンスの CA モードを表します。インスタンス単位の CA の場合、google-managed-per-instance-ca がパラメータの値になります。このパラメータを使用しない場合、デフォルトの CA モードはインスタンス単位です。

次に例を示します。

gcloud memorystore instances create my-instance \
--location=us-central1 \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/my-project/global/networks/my-network", "projectId": "my-project"}}]}] \
--replica-count=1 \
--node-type=highmem-medium \
--shard-count=3 \
--engine-version=VALKEY_9_0 \
--mode=CLUSTER \
--transit-encryption-mode=server-authentication \
--server-ca-mode=google-managed-per-instance-ca

CA をダウンロードする

インスタンスで転送中の暗号化を有効にすると、 get-certificate-authority コマンドを使用すると、CA の証明書が表示されます。

gcloud memorystore instances get-certificate-authority INSTANCE_ID

INSTANCE_ID は、インスタンスの ID に置き換えます。

レスポンスの本文には、該当するすべての CA の証明書が含まれます。

クライアントに CA 証明書をインストールする

インスタンスに接続するクライアントに CA 証明書をインストールする必要があります。クライアントのタイプによって、CA 証明書のインストール方法が異なる場合があります。

Compute Engine Linux VM に CA 証明書をインストールするには、次の操作を行います。

  1. SSH を使用して Compute Engine の Linux クライアントに接続します。

  2. クライアントで次のコマンドを使用して、server_ca.pem ファイルを作成します。

    sudo vim /tmp/server_ca.pem
    
  3. CA をダウンロードして、server_ca.pem ファイルに貼り付けます。

    CA のテキストは正しい形式にする必要があります。server_ca.pem ファイルは次のように表示されます。

    -----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-----
    

    ファイル内のテキストを正しくフォーマットするには、次のガイドラインを使用します。

    • -----BEGIN CERTIFICATE----- 行と
      -----END CERTIFICATE----- 行を含め、CA 全体をコピーします。

    • CA のテキストが、完全に左揃えになっていることを確認します。CA のどの行にもスペースが表示されていないことを確認します。

    • 各 CA を新しい行に追加します。CA の間に空白行がないことを確認します。

転送中の暗号化用にクライアントを構成する

インスタンスへの接続に使用するクライアントは、TLS をサポートするか、サードパーティのサイドカーを使用して TLS を有効にする必要があります。

クライアントが TLS をサポートしている場合は、インスタンスの IP アドレス、ポート 6379、CA を含むファイルを指すように構成します。転送中の暗号化が有効になっている Memorystore for Valkey の クラスタモード有効または クラスタモード無効 のインスタンスに接続する方法の例をご覧ください。

CA ローテーションを管理する

インスタンスにアクセスするクライアントには、ダウンロード可能なすべての CA 証明書 をインストールすることをおすすめします。

最新の CA 証明書を定期的にインストールすることで、Memorystore for Valkey が CA をローテーションするときに必要な証明書を確実に取得できます。このローテーション中、既存の CA と新しい CA の両方がアクティブになります。

転送中の暗号化を使用するインスタンスに接続するコードサンプル

転送中の暗号化を使用する インスタンスに接続するようにクライアント ライブラリを設定する方法を示すコードサンプルについては、IAM 認証と転送中の暗号化の両方のコードサンプルをご覧ください。