Redis AUTH コマンドによるユーザーの認証 - Redis 用 Amazon ElastiCache

Redis AUTH コマンドによるユーザーの認証

Redis 認証トークンにより、Redis はクライアントにコマンドの実行を許可する前にトークン (パスワード) を要求できるため、データのセキュリティが向上します。

Redis 用 ElastiCache での AUTH の概要

Redis 用 ElastiCache クラスターで Redis AUTH を使用する場合に、いくつかの調整点があります。

特に、Redis 用 ElastiCache で AUTH を使用する場合は、AUTH トークンに関する以下の制約に注意してください。

  • トークンは 16 ~ 128 の印刷可能な文字であることが必要です。

  • 英数字以外の文字は、(!、&、#、$、^、<、>、-) に制限されています。

  • AUTH は、転送時の暗号化が有効な Redis 用 ElastiCache クラスターに対してのみ有効にできます。

強力なトークンを設定するには、以下の要件を満たすなど、厳格なトークンポリシーに従うことをお勧めします。

  • トークンには、以下の種類から 3 種類以上の文字が含まれている必要があります。

    • 英大文字

    • 英小文字

    • 数字

    • アルファベット以外の文字 (!&#$^<>-)

  • トークンに、辞書に載っている単語またはそれを少し変更したような単語を使用することはできません。

  • トークンは、最近使用したトークンと同じまたは類似していてはなりません。

Redis 用 ElastiCache クラスターへの認証の適用

トークンで保護された Redis サーバーでユーザーにトークンの入力を要求できます。そのためには、レプリケーショングループまたはクラスターを作成するときに、正しいトークンを指定したパラメータ --auth-token (API: AuthToken) を含めます。また、レプリケーショングループまたはクラスターに対する後続のすべてのコマンドにもそのパラメータを含めます。

以下の AWS CLI オペレーションでは、転送時の暗号化 (TLS) が有効なレプリケーショングループと、AUTH トークン This-is-a-sample-token を作成します。サブネット グループ sng-test を、実存のサブネットグループに置き換えます。

主要パラメータ

  • --engineredis であることが必要です。

  • --engine-version– 3.2.6 または 4.0.10 以降であることが必要です。

  • --transit-encryption-enabled – 認証と HIPAA 適格性に必要です。

  • --auth-token – HIPAA 適格性に必要です。この値は、このトークンで保護された Redis サーバーの正しいトークンであることが必要です。

  • --cache-subnet-group – HIPAA 適格性に必要です。

Linux, macOS, or Unix 用:

aws elasticache create-replication-group \ --replication-group-id authtestgroup \ --replication-group-description authtest \ --engine redis \ --engine-version 4.0.10 \ --cache-node-type cache.m4.large \ --num-node-groups 1 \ --replicas-per-node-group 2 \ --cache-parameter-group default.redis3.2.cluster.on \ --transit-encryption-enabled \ --auth-token This-is-a-sample-token \ --cache-subnet-group sng-test

Windows の場合:

aws elasticache create-replication-group ^ --replication-group-id authtestgroup ^ --replication-group-description authtest ^ --engine redis ^ --engine-version 4.0.10 ^ --cache-node-type cache.m4.large ^ --num-node-groups 1 ^ --replicas-per-node-group 2 ^ --cache-parameter-group default.redis3.2.cluster.on ^ --transit-encryption-enabled ^ --auth-token This-is-a-sample-token ^ --cache-subnet-group sng-test

既存の Redis 用 ElastiCache クラスターでの AUTH トークンの変更

認証の更新を容易にするために、Redis 用 ElastiCache クラスターで使用される AUTH トークンを変更できます。エンジンのバージョンが 5.0.5 以上であり、Redis 用 ElastiCache で転送時の暗号化が有効になっている場合、この変更を行うことができます。

認証トークンの変更は、ROTATE と SET の 2 つの戦略をサポートしています。ROTATE 戦略では、以前のトークンを保持しながら、サーバーに別の AUTH トークンを追加します。SET 戦略では、1 つの AUTH トークンのみをサポートするように、サーバーを更新します。変更をすぐに適用するには、これらの変更の呼び出しで --apply-immediately パラメータを指定します。

AUTH トークンの更新

Redis サーバーを新しい AUTH トークンで更新するには、--auth-token パラメータで新しい認証トークンを指定し、--auth-token-update-strategy パラメータで値 ROTATE を指定して、ModifyReplicationGroup API を呼び出します。変更が完了すると、クラスターは auth-token パラメータで指定された AUTH トークンに加えて、以前の AUTH トークンをサポートします。

すでに 2 つの AUTH トークンをサポートするサーバーに対してこの変更が行われると、最も古い AUTH トークンもこのオペレーション中に削除され、その時点でサーバーは最大 2 つの最新の AUTH トークンをサポートすることになります。

この時点で、最新の AUTH トークンを使用するようにクライアントを更新することで続行できます。クライアントが更新された後、AUTH トークンの更新に関する SET 戦略 (次のセクションで説明) を採用して、新しいトークンのみの使用を開始できます。

以下の AWS CLI オペレーションでは、レプリケーショングループを変更して、AUTH トークン This-is-the-rotated-token を更新します。

Linux、macOS、Unix の場合:

aws elasticache modify-replication-group \ --replication-group-id authtestgroup \ --auth-token This-is-the-rotated-token \ --auth-token-update-strategy ROTATE \ --apply-immediately n

Windows の場合:

aws elasticache modify-replication-group ^ --replication-group-id authtestgroup ^ --auth-token This-is-the-rotated-token ^ --auth-token-update-strategy ROTATE ^ --apply-immediately

AUTH トークンの設定

2 つの AUTH トークンをサポートする Redis サーバーを、1 つの AUTH トークンをサポートするように更新するには、ModifyReplicationGroup API オペレーションを呼び出します。--auth-token パラメータで新しい AUTH トークンを指定し、--auth-token-update-strategy パラメータで値 SET を指定して、ModifyReplicationGroup を呼び出します。auth-token パラメータの値は、最後に更新された AUTH トークンの値と同じであることが必要です。この変更が完了すると、Redis サーバーは、auth-token パラメータで指定された AUTH トークンのみをサポートするようになります。

以下の AWS CLI オペレーションでは、AUTH トークンを This-is-the-set-token に設定するように、レプリケーショングループを変更します。

Linux、macOS、Unix の場合:

aws elasticache modify-replication-group \ --replication-group-id authtestgroup \ --auth-token This-is-the-set-token\ --auth-token-update-strategy SET \ --apply-immediately

Windows の場合:

aws elasticache modify-replication-group ^ --replication-group-id authtestgroup ^ --auth-token This-is-the-set-token ^ --auth-token-update-strategy SET ^ --apply-immediately

既存の Redis 用 ElastiCache クラスターでの認証の有効化

既存の Redis サーバーで認証を有効にするには、ModifyReplicationGroup API オペレーションを呼び出します。--auth-token パラメータで新しいトークンを指定し、--auth-token-update-strategy パラメータで値 ROTATE を指定して、ModifyReplicationGroup を呼び出します。

この変更が完了すると、クラスターは、認証なしの接続をサポートするだけでなく、auth-token パラメータで指定された AUTH トークンもサポートするようになります。認証の有効化は、転送時の暗号化 (TLS) が有効な Redis サーバーでのみサポートされます。

関連トピック