Redis AUTH コマンドによる認証
Redis 認証トークン、またはパスワードにより、Redis はクライアントにコマンドの実行を許可する前にパスワードを要求できるため、データのセキュリティが向上します。
トピック
ElastiCache for Redis での AUTH の概要
ElastiCache for Redis クラスターで Redis AUTH を使用する場合に、いくつかの調整点があります。
特に、ElastiCache for Redis で AUTH を使用する場合は、AUTH トークンに関する以下の制約に注意してください。
-
トークン、またはパスワードは、印刷可能な 16~128 文字である必要があります。
-
英数字以外の文字は、(!、&、#、$、^、<、>、-) に制限されています。
-
AUTH は、転送時の暗号化が有効な ElastiCache for Redis クラスターに対してのみ有効にできます。
強力なトークンを設定するには、以下の要件を満たすなど、厳格なパスワードポリシーに従うことをお勧めします。
-
トークン、またはパスワードには、以下の種類から 3 種類以上の文字が含まれている必要があります。
-
英大文字
-
英小文字
-
数字
-
アルファベット以外の文字 (
!
、&
、#
、$
、^
、<
、>
、-
)
-
-
トークン、またはパスワードに、辞書に載っている単語またはそれを少し変更したような単語を使用することはできません。
-
トークン、またはパスワードは、最近使用したトークンと同じまたは類似していてはなりません。
ElastiCache for Redis クラスターへの認証の適用
トークン (パスワード) で保護された Redis サーバーでユーザーにトークンの入力を要求できます。そのためには、レプリケーショングループまたはクラスターを作成するときに、正しいトークンを指定したパラメータ --auth-token
(API: AuthToken
) を含めます。また、レプリケーショングループまたはクラスターに対する後続のすべてのコマンドにもそのパラメータを含めます。
以下の AWS CLI オペレーションでは、転送中の暗号化 (TLS) が有効なレプリケーショングループと、AUTH トークン
を作成します。サブネット グループ This-is-a-sample-token
sng-test
を、実存のサブネットグループに置き換えます。
キーのパラメータ
-
--engine
—redis
を指定する必要があります。 -
--engine-version
— 3.2.6 または 4.0.10 以降を指定する必要があります。 -
--transit-encryption-enabled
— 認証と HIPAA 適格性に必要です。 -
--auth-token
— HIPAA 適格性に必要です。この値は、このトークンで保護された Redis サーバーの正しいトークンであることが必要です。 -
--cache-subnet-group
— HIPAA 適格性に必要です。
Linux、macOS、Unix の場合:
aws elasticache create-replication-group \ --replication-group-id
authtestgroup
\ --replication-group-descriptionauthtest
\ --engineredis
\ --cache-node-typecache.m4.large
\ --num-node-groups1
\ --replicas-per-node-group2
\ --transit-encryption-enabled \ --auth-tokenThis-is-a-sample-token
\ --cache-subnet-groupsng-test
Windows の場合:
aws elasticache create-replication-group ^ --replication-group-id
authtestgroup
^ --replication-group-descriptionauthtest
^ --engineredis
^ --cache-node-typecache.m4.large
^ --num-node-groups1
^ --replicas-per-node-group2
^ --transit-encryption-enabled ^ --auth-tokenThis-is-a-sample-token
^ --cache-subnet-groupsng-test
既存の ElastiCache for Redis クラスターでの AUTH トークンの変更
認証の更新を容易にするために、ElastiCache for Redis クラスターで使用される AUTH トークンを変更できます。エンジンのバージョンが 5.0.5 以上であり、ElastiCache for Redis で転送時の暗号化が有効になっている場合、この変更を行うことができます。
認証トークンの変更は、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 トークンをサポートします。
注記
AUTH トークンを前もって設定しない場合、変更が完了すると、クラスターは auth-token パラメータで指定されたもの以外の 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-tokenThis-is-the-rotated-token
\ --auth-token-update-strategy ROTATE \ --apply-immediately
Windows の場合:
aws elasticache modify-replication-group ^ --replication-group-id
authtestgroup
^ --auth-tokenThis-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-tokenThis-is-the-set-token
\ --auth-token-update-strategy SET \ --apply-immediately
Windows の場合:
aws elasticache modify-replication-group ^ --replication-group-id
authtestgroup
^ --auth-tokenThis-is-the-set-token
^ --auth-token-update-strategy SET ^ --apply-immediately
既存の ElastiCache for Redis クラスターでの認証の有効化
既存の Redis サーバーで認証を有効にするには、ModifyReplicationGroup
API オペレーションを呼び出します。--auth-token
パラメータで新しいトークンを指定し、--auth-token-update-strategy
パラメータで値 ROTATE を指定して、ModifyReplicationGroup
を呼び出します。
この変更が完了すると、クラスターは、認証なしの接続をサポートするだけでなく、auth-token
パラメータで指定された AUTH トークンもサポートするようになります。認証の有効化は、転送中の暗号化 (TLS) が有効な Redis サーバーでのみサポートされます。
RBAC から Redis AUTH への移行
ロールベースのアクセスコントロール (RBAC) を使用したユーザーの認証で説明されているように、Redis ロールベースのアクセスコントロール (RBAC) を用いてユーザーを認証していて、Redis AUTH に移行する場合は、次の手順を使用します。コンソールまたは CLI を使用して移行できます。
コンソールを使用して RBAC から Redis AUTH に移行するには
AWS Management Console にサインインして、ElastiCache コンソール (https://console.aws.amazon.com/elasticache/
) を開きます。 -
右上のリストから、変更するクラスターが存在する AWS リージョンを選択します。
-
ナビゲーションペインで、変更するクラスターで実行されているエンジンを選択します。
選択したエンジンのクラスターが一覧表示されます。
-
クラスターのリストで、変更するクラスターの名前を選択します。
-
[アクション]、[変更] の順に選択します。
[Modify Cluster] ウィンドウが表示されます。
-
[アクセスコントロールのオプション] で、[Redis AUTH デフォルトユーザー] を選択します。
-
[AUTH トークン] の下で、[変更なし] を受け入れるか、既存のトークンをローテーションするか、新しいトークンを設定します。
-
[Modify] (変更) を選択します。
AWS CLI を使用して RBAC から Redis AUTH に移行するには、
-
以下のいずれかのコマンドを使用します。
Linux、macOS、Unix の場合:
aws elasticache modify-replication-group \ --replication-group-id test \ --remove-user-groups \ --auth-token password \ --auth-token-update-strategy SET \ --apply-immediately
Windows の場合:
aws elasticache modify-replication-group ^ --replication-group-id test ^ --remove-user-groups ^ --auth-token password ^ --auth-token-update-strategy SET ^ --apply-immediately
AUTH の使用の詳細については、redis.io ウェブサイトの「AUTH トークン