Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


14.18.4.1 SASL による memcached インタフェースのパスワード保護

SASL サポートにより、memcached クライアントを介した未認証アクセスから MySQL データベースを保護する機能を使用できます。このセクションでは、このオプションを使用可能にするステップを説明します。このようなサポートを可能にするステップは、従来の memcached サーバーで SASL を使用可能にするためのステップとほとんど同じです。

バックグラウンド情報

SASL とはSimple Authentication and Security Layerを意味し、接続ベースのプロトコルに対して認証サポートを追加するための規格です。memcached には 1.4.3 リリースから SASL サポートが追加されました。

SASL 認証はバイナリプロトコルでのみサポートされます。

InnoDB + memcached の組み合わせの場合、memcached データを格納するテーブルは、container システムテーブルに登録する必要があります。また、memcached クライアントはこのような登録済みのテーブルにのみアクセスできます。 memcached プラグインに登録されたテーブルに、DBA のアクセス制限を追加できますが、memcached アプリケーション経由でのアクセス可能なユーザーの制御はできません。このため、memcached に関連付けられた InnoDB テーブルにアクセス可能なユーザーを制御するための (SASL 経由の) 手段が提供されています。

次のセクションでは、SASL 対応の InnoDB memcached プラグインをビルド、有効化、およびテストする方法を示しています。

InnoDB Memcached プラグインの SASL をビルドおよび使用可能にするためのステップ

デフォルトでは、SASL 対応の InnoDB memcached は、SASL ライブラリを使用した memcached のビルドに依存しているため、リリースパッケージに含まれていません。この機能を有効にするには、MySQL ソースをダウンロードし、SASL ライブラリをダウンロードしたあとに InnoDB memcached プラグインを再ビルドします。

  1. 最初に、SASL 開発ライブラリおよびユーティリティーライブラリを取得します。たとえば、Ubuntu では、次のようにしてこれらのライブラリを取得できます。

    sudo apt-get -f install libsasl2-2 sasl2-bin libsasl2-2 libsasl2-dev libsasl2-modules
  2. 次に、ENABLE_MEMCACHED_SASL=1cmake オプションに追加することによって、SASL 機能を有する InnoDB memcached プラグイン (共有ライブラリ) をビルドします。さらに、memcached はテストに簡単に使用できる単純な平文パスワードサポートを提供しています。これを有効にするには、オプション ENABLE_MEMCACHED_SASL_PWDB=1 を設定します。

    全体として、次の 3 つのオプションを cmake に追加します。

    cmake ... -DWITH_INNODB_MEMCACHED=1
      -DENABLE_MEMCACHED_SASL=1 -DENABLE_MEMCACHED_SASL_PWDB=1
  3. 3 番目のステップでは、セクション14.18.3「InnoDB Memcached プラグインの概要」で説明したように、InnoDB memcached プラグインを以前のようにインストールします。

  4. 以前説明したように、memcached には SASL による単純な平文パスワードサポートが提供されており、このデモで使用します。

    1. testname という名前のユーザーと、そのパスワード testpasswd をファイル内に作成します。

      echo "testname:testpasswd:::::::" >/home/jy/memcached-sasl-db
    2. 環境変数 MEMCACHED_SASL_PWDB を設定することによって memcached にこの情報を通知します。

      export MEMCACHED_SASL_PWDB=/home/jy/memcached-sasl-db
    3. さらに、これが平文パスワードであることも memcached に通知します。

      echo "mech_list: plain" > /home/jy/work2/msasl/clients/memcached.conf
      export SASL_CONF_PATH=/home/jy/work2/msasl/clients/memcached.conf
  5. 次に、サーバーをリブートし、daemon_memcached_option オプション -S を追加して SASL を有効にします。

    mysqld ... --daemon_memcached_option="-S"
  6. これでセットアップは完了しました。これをテストするには、この SASL 対応 libmemcached のような SASL 対応クライアントが必要な場合もあります。

    memcp --servers=localhost:11211 --binary  --username=testname
      --password=testpasswd myfile.txt
    
    memcat --servers=localhost:11211 --binary --username=testname
      --password=testpasswd myfile.txt

    適切なユーザー名またはパスワードがないと、前述の操作はエラーメッセージ memcache error AUTHENTICATION FAILURE で拒否されます。それ以外の場合、操作は成功です。また、memcached-sasl-db ファイルに設定された平文パスワードを調査して、これを検証することもできます。

memcached での SASL 認証を検査する方法はほかにもあります。ただし、上に記載されたものがもっとも簡単です。


User Comments
Sign Up Login You must be logged in to post a comment.