Redis セキュリティ設定

RedisRedisBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験(Lab)では、Redis サーバーのセキュリティを強化する方法を学びます。不正アクセスを防ぐためのパスワードの設定と、潜在的な誤用を制限するための特定のコマンドの無効化について説明します。この実験(Lab)を終える頃には、より安全な Redis インスタンスを手に入れることができるでしょう。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") subgraph Lab Skills redis/access_cli -.-> lab-552103{{"Redis セキュリティ設定"}} end

CONFIG SET requirepass を使用したパスワードの設定

デフォルトでは、Redis はパスワードを必要としないため、脆弱な状態になっています。パスワードの設定は、Redis サーバーを保護するための最初で最も重要なステップです。ここでは、CONFIG SET requirepass コマンドを使用してこれを行います。

CONFIG SET コマンドを使用すると、Redis の設定を動的に変更できます。requirepass 設定は、クライアントがサーバーに接続するために提供する必要があるパスワードを指定します。

それでは始めましょう。

  1. redis-cli を使用して Redis サーバーに接続します:

    LabEx VM でターミナルを開きます。デフォルトのディレクトリは ~/project です。次のコマンドを実行します。

    redis-cli

    これにより、デフォルトのホスト (127.0.0.1) とポート (6379) で実行されている Redis サーバーに接続されます。127.0.0.1:6379> プロンプトが表示されるはずです。

    127.0.0.1:6379>
  2. CONFIG SET requirepass コマンドを使用してパスワードを設定します:

    ここでは、パスワードを mysecretpassword に設定します。本番環境では、強力でユニークなパスワードを選択してください。

    CONFIG SET requirepass mysecretpassword

    次の出力が表示されるはずです。

    OK

    これは、パスワードが設定されたことを確認します。

  3. 認証なしでコマンドを実行してみます:

    PING のような簡単なコマンドを実行してみてください。

    PING

    次のエラーメッセージが表示されるはずです。

    (error) NOAUTH Authentication required.

    これは、認証が必須になったことを示しています。

  4. redis-cli を終了します:

    コマンドがログに記録されるように、exit と入力するか、Ctrl+D を押して redis-cli を終了します。

    exit

    これは、検証ステップが正しく機能するために重要です。

AUTH コマンドによる認証

パスワードを設定したので、AUTH コマンドを使用して Redis サーバーで認証する方法を学びましょう。このコマンドには、前の手順で設定したパスワードが必要です。

  1. redis-cli を使用して Redis サーバーに接続します:

    LabEx VM でターミナルを開きます。デフォルトのディレクトリは ~/project です。次のコマンドを実行します。

    redis-cli

    127.0.0.1:6379> プロンプトが表示されるはずです。

  2. AUTH コマンドで認証します:

    AUTH コマンドの後に、先ほど設定したパスワードを入力します。

    AUTH mysecretpassword

    認証に成功すると、次のように表示されます。

    OK
  3. 認証後にコマンドを実行します:

    認証されたので、もう一度 PING コマンドを試してください。

    PING

    期待される応答が表示されるはずです。

    PONG
  4. redis-cli を終了します:

    exit と入力するか、Ctrl+D を押して redis-cli を終了します。

    exit

CONFIG SET を使用したコマンドの無効化

Redis は多くのコマンドを提供していますが、一部のコマンドは特定の環境でリスクを伴う可能性があります。これらのコマンドを無効化することで、セキュリティを向上させることができます。例として、CONFIG SET disable-command を使用して FLUSHALL コマンドを無効化します。FLUSHALL はすべてのデータベースのすべてのデータを削除するため、無効化することで偶発的なデータ損失を防ぐことができます。

  1. redis-cli を使用して Redis サーバーに接続する:

    LabEx VM で端末を開きます。デフォルトのディレクトリは ~/project です。以下のコマンドを実行します:

    redis-cli

    127.0.0.1:6379> のプロンプトが表示されるはずです。

  2. AUTH コマンドで認証する:

    パスワードを付けて AUTH コマンドで認証します:

    AUTH mysecretpassword

    認証に成功すると、OK の出力が表示されます。

  3. CONFIG SET disable-command を使用して FLUSHALL コマンドを無効化する:

    CONFIG SET disable-command FLUSHALL

    以下のように表示されます:

    OK

    これでコマンドが無効化されたことを確認します。

  4. FLUSHALL コマンドの実行を試みる:

    FLUSHALL

    エラーメッセージが表示されます:

    (error) ERR unknown command 'FLUSHALL', just try HELP

    これにより、FLUSHALL コマンドが利用できなくなったことを示します。

  5. redis-cli を終了する:

    exit と入力するか、Ctrl+D を押して redis-cli を終了します。

    exit

まとめ

この実験(Lab)では、Redis のセキュリティを強化する方法を学びました。CONFIG SET requirepass を使用してパスワードを設定し、不正アクセスを防ぎました。また、AUTH コマンドを使用して認証する方法、および CONFIG SET disable-command を使用して FLUSHALL などの特定のコマンドを無効にし、潜在的に有害な操作を制限する方法も学びました。これらの手順は、Redis サーバーを保護するために不可欠です。