翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ロールベースのアクセスコントロール (RBAC)
「」で説明されているように、Valkey および Redis OSS AUTH コマンドを使用してユーザーを認証する代わりにValkey および Redis OSS AUTH コマンドを使用した認証、Valkey 7.2 以降および Redis 6.0 以降では、ロールベースのアクセスコントロール (RBAC) OSS と呼ばれる機能を使用できます。 RBACはサーバーレスキャッシュへのアクセスを制御する唯一の方法でもあります。
トークンが認証されている場合OSSAUTHにすべての認証済みクライアントがフルキャッシュアクセスを持つ Valkey や Redis とは異なり、 RBAC ではユーザーグループを通じてキャッシュアクセスを制御できます。ユーザーグループは、キャッシュへのアクセスを分類する手段として設計されています。
ではRBAC、以下で説明するように、アクセス文字列を使用してユーザーを作成し、特定のアクセス許可を割り当てます。特定のロール (管理者、人事) と連携したユーザーグループにユーザーを割り当て、1 つ以上の ElastiCache キャッシュにデプロイします。これにより、同じ Valkey または Redis OSSキャッシュを使用してクライアント間のセキュリティ境界を確立し、クライアントが互いのデータにアクセスできないようにすることができます。
注記
Valkey クラスターRBACで を使用する場合、ユーザーとユーザーグループにエンジン「redis」を割り当てる必要があります。
RBAC は、Redis 6 ACL
アクセス文字列にパスワードを指定することはできません。パスワードは CreateUserまたは ModifyUser呼び出しで設定します。
ユーザー権限については、
on
およびoff
をアクセス文字列の一部としてパスします。アクセス文字列にどちらも指定されていない場合、ユーザーにはoff
が割り当てられ、キャッシュへのアクセス権はありません。禁止されたコマンドや名前を変更したコマンドは使用できません。禁止または名前変更されたコマンドを指定すると、例外がスローされます。名前を変更したコマンドでアクセスコントロールリスト (ACLs) を使用する場合は、コマンドの元の名前、つまり名前を変更する前のコマンドの名前を指定します。
reset
コマンドを、アクセス文字列の一部として使用することはできません。API パラメータでパスワードを指定し、Redis ElastiCache の がパスワードOSSを管理します。したがって、reset
を使用することはできません。それによりユーザーのすべてのパスワードが削除されるからです。Redis 6 OSS は ACL LIST
コマンドを導入します。このコマンドは、各ユーザーに適用されるACLルールとともにユーザーのリストを返します。Redis ElastiCache 用 は ACL LIST
コマンドOSSをサポートしますが、Redis のようにパスワードハッシュのサポートは含まれませんOSS。 ElastiCache for Redis ではOSS、describe-users オペレーションを使用して、アクセス文字列に含まれるルールなど、同様の情報を取得できます。ただし、describe-users は、ユーザーパスワードを取得しません。Valkey および Redis ACL WHOAMI
ElastiCache でサポートされているその他の読み取り専用コマンドOSSには、、ACLUSERS 、および ACL CAT が含まれます。Valkey および Redis ElastiCache では、他の書き込みベースのACLコマンドOSSはサポートされていません。 以下の制約が適用されます。
リソース 最大許容数 ユーザーグループあたりのユーザー数 100 ユーザー数 1,000 ユーザーグループの数 100
ElastiCache for Redis RBACでの の使用についてはOSS、以下で詳しく説明します。
トピック
アクセス文字列を使用したアクセス許可の指定
ElastiCache for Redis OSSキャッシュへのアクセス許可を指定するには、アクセス文字列を作成し、 AWS CLI または を使用してユーザーに割り当てます AWS Management Console。
アクセス文字列は、ユーザーに適用されるスペース区切りルールのリストとして定義されます。それらは、ユーザーが実行できるコマンドと、ユーザーが操作できるキーを定義します。コマンドを実行するには、ユーザーは、実行されているコマンドと、そのコマンドによってアクセスされているすべてのキーにアクセスできる必要があります。ルールは左から右に累積的に適用され、提供された文字列に冗長性がある場合は、提供された文字列の代わりに、より単純な文字列を使用できます。
ACL ルールの構文については、「」を参照してくださいACL
次の例では、アクセス文字列は、使用可能なすべてのキーおよびコマンドにアクセスできるアクティブなユーザーを表します。
on ~* +@all
アクセス文字列の構文は、次のように分類されます。
on
— ユーザーはアクティブなユーザーです。~*
— アクセス権はすべての使用可能なキーに与えられます。+@all
— アクセス権はすべての使用可能なコマンドに与えられます。
上記の設定は、最も制限が緩い設定です。これらの設定を変更して、セキュリティを強化できます。
次の例では、アクセス文字列は「app::」キースペースで始まるキーに対する読み取りアクセスに制限されたアクセス権を持つユーザーを表します。
on ~app::* -@all +@read
ユーザーがアクセス権を持つコマンドを一覧表示することで、これらのアクセス許可をさらに絞り込むことができます。
+
— ユーザーのコマンドへのアクセスは command1
に制限されます。command1
+@category
— ユーザーのアクセスは、コマンドのカテゴリーに制限されます。
アクセス文字列をユーザーに割り当てる方法については、「コンソールと を使用したユーザーとユーザーグループの作成 CLI」を参照してください。
既存のワークロードを に移行する場合は ElastiCache、 ユーザーとパスワードハッシュを除きACL LIST
、 を呼び出してアクセス文字列を取得できます。
Redis OSSバージョン 6.2 以降では、次のアクセス文字列構文もサポートされています。
&*
— アクセス権はすべての使用可能なチャネルに与えられます。
Redis OSSバージョン 7.0 以降では、次のアクセス文字列構文もサポートされています。
|
— サブコマンドをブロックするために使用できます (例:「-config|set」)。%R~<pattern>
— 指定された読み取りキーパターンを追加します。これは通常のキーパターンと同様に動作しますが、指定されたパターンに一致するキーからの読み取り権限のみを許可します。詳細については、「キーのアクセス許可」を参照してください。 %W~<pattern>
— 指定された書き込みキーパターンを追加します。これは通常のキーパターンと同様に動作しますが、指定されたパターンに一致するキーに書き込む権限のみを許可します。詳細については、ACL「キーのアクセス許可」を参照してください。%RW~<pattern>
–~<pattern>
のエイリアス。(<rule list>)
— ルールを照合する新しいセレクターを作成します。セレクターはユーザーアクセス許可の後に評価され、定義されている順序に従って評価されます。コマンドがユーザーアクセス許可または任意のセレクターと一致する場合、そのコマンドは許可されます。詳細については、ACL「 セレクタ」を参照してください。 clearselectors
— ユーザーにアタッチされているセレクターをすべて削除します。
ElastiCache for Valkey または Redis RBACへの のキャッシュへの適用 OSS
ElastiCache を Valkey または Redis に使用するにはOSSRBAC、次の手順を実行します。
1 つ以上のユーザーを作成します。
ユーザーグループを作成し、ユーザーをグループに追加します。
転送時の暗号化が有効なキャッシュにユーザーグループを割り当てます。
これらのステップは、以下に詳細が説明されます。
トピック
コンソールと を使用したユーザーとユーザーグループの作成 CLI
RBAC ユーザーのユーザー情報は、ユーザー ID、ユーザー名、およびオプションでパスワードとアクセス文字列です。アクセス文字列は、キーとコマンドでのアクセス許可レベルを提供します。ユーザー ID はユーザーに対して一意であり、ユーザー名はエンジンに渡されるものです。
指定するユーザー許可が、ユーザーグループの意図した目的に合っていることを確認してください。たとえば、Administrators
という名前のユーザーグループを作成した場合、そのグループに追加するすべてのユーザーは、キーおよびコマンドへのフルアクセスに設定されたアクセス文字列を持つ必要があります。e-commerce
ユーザーグループ内のユーザーでは、アクセス文字列を読み取り専用アクセスに設定できます。
ElastiCache は、ユーザー ID とユーザー名を使用してデフォルトのユーザーを自動的に設定"default"
し、すべてのユーザーグループに追加します。このユーザーを変更または削除することはできません。このユーザーは、以前の Redis OSSバージョンのデフォルトの動作との互換性を目的としており、すべてのコマンドを呼び出してすべてのキーにアクセスすることを許可するアクセス文字列があります。
適切なアクセスコントロールをキャッシュに追加するには、このデフォルトユーザーを、有効になっていない、または強力なパスワードを使用する新しいユーザーに置き換えます。デフォルトユーザーを変更するには、ユーザー名が default
に設定された新しいユーザーを作成します。その後、元のデフォルトユーザーと入れ替えることができます。
次の手順では、元の default
ユーザーを、変更されたアクセス文字列を持つ別の default
ユーザーと入れ替える方法を示します。
コンソールでデフォルトユーザーを変更するには
-
にサインイン AWS Management Console し、 で Amazon ElastiCache コンソールを開きますhttps://console.aws.amazon.com/elasticache/
。 -
ナビゲーションペインで [ユーザーグループの管理] を選択します。
-
[ユーザーグループ ID] で、変更対象の ID を選択します。チェックボックスではなく、リンクを選択するようにしてください。
-
Modify を選択します。
-
[変更] ウィンドウで、[管理] を選択し、[ユーザー名] で、デフォルトユーザーとして使用したいユーザーを選択します。
-
[選択] を選択します。
-
Modify を選択します。これを行うと、元のデフォルトユーザーが確立していたキャッシュへの既存の接続はすべて終了します。
を使用してデフォルトユーザーを変更するには AWS CLI
-
以下のコマンドを使用して、ユーザー名
default
で新しいユーザーを作成します。Linux、macOS、Unix の場合:
aws elasticache create-user \ --user-id "new-default-user" \ --user-name "default" \ --engine "REDIS" \ --passwords
"a-str0ng-pa))word"
\ --access-string "off +get ~keys*"Windows の場合:
aws elasticache create-user ^ --user-id "new-default-user" ^ --user-name "default" ^ --engine "REDIS" ^ --passwords
"a-str0ng-pa))word"
^ --access-string "off +get ~keys*" ユーザーグループを作成し、前に作成したユーザーを追加します。
Linux、macOS、Unix の場合:
aws elasticache create-user-group \ --user-group-id "new-group-2" \ --engine "REDIS" \ --user-ids "new-default-user"
Windows の場合:
aws elasticache create-user-group ^ --user-group-id "new-group-2" ^ --engine "REDIS" ^ --user-ids "new-default-user"
新しい
default
ユーザーを元のdefault
ユーザーと入れ替えます。Linux、macOS、Unix の場合:
aws elasticache modify-user-group \ --user-group-id test-group \ --user-ids-to-add "new-default-user" \ --user-ids-to-remove "default"
Windows の場合:
aws elasticache modify-user-group ^ --user-group-id test-group ^ --user-ids-to-add "new-default-user" ^ --user-ids-to-remove "default"
この変更オペレーションが呼び出されると、元のデフォルトユーザーが確立していたキャッシュへの既存の接続はすべて終了します。
ユーザーを作成するときは、最大 2 つのパスワードを設定できます。パスワードを変更しても、キャッシュへの既存の接続はすべて維持されます。
特に、 for ElastiCache Redis RBACを使用するときは、次のユーザーパスワードの制約に注意してくださいOSS。
-
パスワードは、印刷可能な 16~128 文字にする必要があります。
-
次の英数字以外の文字は使用できません:
,
""
/
@
。
コンソールと を使用したユーザーの管理 CLI
コンソール上でユーザーを管理するには、次の手順に従います。
コンソールでユーザーを管理するには
-
にサインイン AWS Management Console し、 で Amazon ElastiCache コンソールを開きますhttps://console.aws.amazon.com/elasticache/
。 -
Amazon ElastiCache ダッシュボードで、ユーザー管理を選択します。以下のオプションが利用できます。
[ユーザーを作成] — ユーザーの作成時に、ユーザー ID、ユーザー名、認証モード、およびアクセス文字列を入力します。アクセス文字列は、ユーザーが許可されたキーとコマンドのアクセス許可レベルを設定します。
ユーザーを作成するときは、最大 2 つのパスワードを設定できます。パスワードを変更しても、キャッシュへの既存の接続はすべて維持されます。
[ユーザーを変更] — ユーザーの認証設定を更新したり、アクセス文字列を変更したりできます。
[ユーザーを削除] — アカウントは、所属先のすべてのユーザーグループから削除されます。
AWS CLIでユーザーを管理するには、次の手順を使用します。
を使用してユーザーを変更するには CLI
-
modify-user
コマンドを使用して、ユーザーのパスワードまたはパスワードを更新したり、ユーザーのアクセス権を変更したりします。ユーザーが変更されると、そのユーザーに関連付けられたユーザーグループが更新され、そのユーザーグループに関連付けられたキャッシュも更新されます。既存の接続はすべて維持されます。以下は例です。
Linux、macOS、Unix の場合:
aws elasticache modify-user \ --user-id user-id-1 \ --access-string "~objects:* ~items:* ~public:*" \ --no-password-required
Windows の場合:
aws elasticache modify-user ^ --user-id user-id-1 ^ --access-string "~objects:* ~items:* ~public:*" ^ --no-password-required
注記
nopass
オプションを使用することは推奨されません。その場合、ユーザーのアクセス許可を読み取り専用に設定して、限定されたキーのセットにアクセスすることをお勧めします。
を使用してユーザーを削除するには CLI
-
ユーザーを削除するには、
delete-user
コマンドを使用します。アカウントが削除され、そのアカウントが属するユーザーグループから削除されます。以下に例を示します。Linux、macOS、Unix の場合:
aws elasticache delete-user \ --user-id user-id-2
Windows の場合:
aws elasticache delete-user ^ --user-id user-id-2
ユーザーのリストを表示するには、describe-users オペレーションを呼び出します。
aws elasticache describe-users
コンソールと を使用したユーザーグループの管理 CLI
次に示すように、ユーザーグループを作成して、1 つまたは複数のレプリケーショングループに対するユーザーのアクセスを分類および制御できます。
コンソールを使用してユーザーグループを管理するには、次の手順に従います。
コンソールを使用してユーザーグループを管理するには
-
にサインイン AWS Management Console し、 で Amazon ElastiCache コンソールを開きますhttps://console.aws.amazon.com/elasticache/
。 -
Amazon ElastiCache ダッシュボードで、ユーザーグループ管理を選択します。
以下のオペレーションは、新しいユーザーグループを作成するために使用できます。
[作成] – ユーザーグループの作成時に、ユーザーを追加し、ユーザーグループをキャッシュに割り当てます。例えば、キャッシュで管理者ロールを持つユーザーの
Admin
ユーザーグループを作成できます。重要
ユーザーグループを作成するときは、デフォルトユーザーを含める必要があります。
[ユーザーの追加] — ユーザーをユーザーグループに追加します。
[ユーザーの削除] — ユーザーグループからユーザーを削除します。ユーザーがユーザーグループから削除された場合、そのユーザーが確立しているキャッシュへの既存の接続はすべて終了します。
[削除] — ユーザーグループを削除します。グループに属するユーザーではなく、ユーザーグループ自体が削除されることに注意してください。
既存のユーザーグループでは、次のことを実行できます。
[ユーザーの追加] — 既存のユーザーをユーザーグループに追加します。
[ユーザーを削除する] — ユーザーグループから既存のユーザーを削除します。
注記
ユーザーはユーザーグループから削除されますが、システムからは削除されません。
を使用してユーザーグループを管理するには、次の手順に従いますCLI。
を使用して新しいユーザーグループを作成し、ユーザーを追加するには CLI
-
次に示すように、
create-user-group
コマンドを使用します。Linux、macOS、Unix の場合:
aws elasticache create-user-group \ --user-group-id "new-group-1" \ --engine "REDIS" \ --user-ids
user-id-1
,user-id-2
Windows の場合:
aws elasticache create-user-group ^ --user-group-id "new-group-1" ^ --engine "REDIS" ^ --user-ids
user-id-1
,user-id-2
を使用して新しいユーザーを追加するか、現在のメンバーを削除してユーザーグループを変更するには CLI
-
次に示すように、
modify-user-group
コマンドを使用します。Linux、macOS、Unix の場合:
aws elasticache modify-user-group --user-group-id new-group-1 \ --user-ids-to-add
user-id-3
\ --user-ids-to-removeuser-id-2
Windows の場合:
aws elasticache modify-user-group --user-group-id new-group-1 ^ --user-ids-to-add
userid-3
^ --user-ids-to-removereuser-id-2
注記
ユーザーグループから削除されたユーザーに属する開いている接続はすべて、このコマンドによって終了します。
を使用してユーザーグループを削除するには CLI
-
次に示すように、
delete-user-group
コマンドを使用します。グループに属するユーザーではなく、ユーザーグループ自体が削除されます。Linux、macOS、Unix の場合:
aws elasticache delete-user-group / --
user-group-id
Windows の場合:
aws elasticache delete-user-group ^ --
user-group-id
ユーザーグループのリストを表示するには、 describe-user-groupsオペレーションを呼び出します。
aws elasticache describe-user-groups \ --user-group-id test-group
サーバーレスキャッシュへのユーザーグループの割り当て
ユーザーグループを作成してユーザーを追加したら、実装の最後のステップRBACとして、サーバーレスキャッシュにユーザーグループを割り当てます。
コンソールを使用したサーバーレスキャッシュへのユーザーグループの割り当て
を使用してサーバーレスキャッシュにユーザーグループを追加するには AWS Management Console、次の手順を実行します。
クラスターモードが無効の場合は、「Valkey (クラスターモードが無効) クラスターの作成 (コンソール)」を参照してください。
クラスターモードが有効の場合は、「Valkey または Redis OSS (クラスターモードが有効) クラスターの作成 (コンソール)」を参照してください。
を使用したサーバーレスキャッシュへのユーザーグループの割り当て AWS CLI
次の AWS CLI オペレーションでは、値 の user-group-idパラメータを使用してサーバーレスキャッシュを作成します
。サブネット グループ my-user-group-id
sng-test
を、実存のサブネットグループに置き換えます。
主要パラメータ
-
--engine
—valkey
またはredis
を指定する必要があります。 -
--user-group-id
— この値には、キャッシュへの特定のアクセス許可を割り当てられたユーザーで構成されるユーザーグループの ID を指定します。
Linux、macOS、Unix の場合:
aws elasticache create-serverless-cache \ --serverless-cache-name "new-serverless-cache" \ --description
"new-serverless-cache"
\ --engine "redis" \ --user-group-id "new-group-1"
Windows の場合:
aws elasticache create-serverless-cache ^ --serverless-cache-name "new-serverless-cache" ^ --description
"new-serverless-cache"
^ --engine "redis" ^ --user-group-id "new-group-1"
次の AWS CLI オペレーションでは、値 の user-group-idパラメータを使用してサーバーレスキャッシュを変更します
。my-user-group-id
Linux、macOS、Unix の場合:
aws elasticache modify-serverless-cache \ --serverless-cache-name serverless-cache-1 \ --user-group-id "new-group-2"
Windows の場合:
aws elasticache modify-serverless-cache ^ --serverless-cache-name serverless-cache-1 ^ --user-group-id "new-group-2"
キャッシュに加えられた変更は、非同期で更新されます。イベントを表示して、この進行状況をモニタリングできます。詳細については、「ElastiCache イベントの表示」を参照してください。
レプリケーショングループへのユーザーグループの割り当て
ユーザーグループを作成してユーザーを追加したら、実装の最後のステップRBACとして、ユーザーグループをレプリケーショングループに割り当てることができます。
コンソールを使用したレプリケーショングループへのユーザーグループの割り当て
を使用してレプリケーションにユーザーグループを追加するには AWS Management Console、次の手順を実行します。
クラスターモードが無効の場合は、「Valkey (クラスターモードが無効) クラスターの作成 (コンソール)」を参照してください。
クラスターモードが有効の場合は、「Valkey または Redis OSS (クラスターモードが有効) クラスターの作成 (コンソール)」を参照してください。
を使用したレプリケーショングループへのユーザーグループの割り当て AWS CLI
次の AWS CLI オペレーションでは、転送中の暗号化 (TLS) が有効になっているレプリケーショングループと、値 の user-group-idsパラメータを作成します
。サブネット グループ my-user-group-id
sng-test
を、実存のサブネットグループに置き換えます。
主要パラメータ
-
--engine
—valkey
またはredis
を指定する必要があります。 -
--engine-version
- 6.0 以降を指定する必要があります。 -
--transit-encryption-enabled
— 認証およびユーザーグループの関連付けに必要です。 -
--user-group-ids
— この値には、キャッシュへの特定のアクセス許可を割り当てられたユーザーで構成されるユーザーグループの ID を指定します。 -
--cache-subnet-group
— ユーザーグループを関連付けるために必要です。
Linux、macOS、Unix の場合:
aws elasticache create-replication-group \ --replication-group-id "new-replication-group" \ --replication-group-description
"new-replication-group"
\ --engine "redis" \ --cache-node-type cache.m5.large \ --transit-encryption-enabled \ --user-group-ids "new-group-1" \ --cache-subnet-group"cache-subnet-group"
Windows の場合:
aws elasticache create-replication-group ^ --replication-group-id "new-replication-group" ^ --replication-group-description
"new-replication-group"
^ --engine "redis" ^ --cache-node-type cache.m5.large ^ --transit-encryption-enabled ^ --user-group-ids "new-group-1" ^ --cache-subnet-group"cache-subnet-group"
次の AWS CLI オペレーションでは、転送中の暗号化 (TLS) が有効になっているレプリケーショングループと、値 の user-group-idsパラメータを変更します
。my-user-group-id
Linux、macOS、Unix の場合:
aws elasticache modify-replication-group \ --replication-group-id replication-group-1 \ --user-group-ids-to-remove "new-group-1" \ --user-group-ids-to-add "new-group-2"
Windows の場合:
aws elasticache modify-replication-group ^ --replication-group-id replication-group-1 ^ --user-group-ids-to-remove "new-group-1" ^ --user-group-ids-to-add "new-group-2"
レスポンス内の PendingChanges
を書き留めます。キャッシュに加えられた変更は、非同期で更新されます。イベントを表示して、この進行状況をモニタリングできます。詳細については、「ElastiCache イベントの表示」を参照してください。
AUTH から RBAC への移行
の説明AUTHに従って を使用してValkey および Redis OSS AUTH コマンドを使用した認証いて、 の使用に移行する場合はRBAC、次の手順を使用します。
コンソールを使用して から AUTH に移行するRBACには、次の手順に従います。
コンソールOSSAUTHRBACを使用して Valkey または Redis から に移行するには
-
にサインイン AWS Management Console し、 https://console.aws.amazon.com/elasticache/
で ElastiCache コンソールを開きます。 -
右上隅のリストから、変更するキャッシュがある AWS リージョンを選択します。
-
ナビゲーションペインで、変更するキャッシュで実行されるエンジンを選択します。
選択したエンジンのキャッシュのリストが表示されます。
-
キャッシュのリストで、変更対象のキャッシュの名前を選択します。
-
[アクション]、[変更] の順に選択します。
[変更] ウィンドウが表示されます。
-
[アクセスコントロール] で、[ユーザーグループのアクセスコントロールリスト] を選択します。
-
[ユーザーグループのアクセスコントロールリスト] で、ユーザーグループを選択します。
-
[変更をプレビュー] を選択し、次の画面で [変更] を選択します。
OSS AUTH RBAC を使用して Valkey または Redis から に移行するには、次の手順に従いますCLI。
RBAC を使用して AUTH から に移行するには CLI
-
次に示すように、
modify-replication-group
コマンドを使用します。Linux、macOS、Unix の場合:
aws elasticache modify-replication-group --replication-group-id test \ --auth-token-update-strategy DELETE \ --user-group-ids-to-add
user-group-1
Windows の場合:
aws elasticache modify-replication-group --replication-group-id test ^ --auth-token-update-strategy DELETE ^ --user-group-ids-to-add
user-group-1
RBAC から AUTH への移行
を使用してRBACいて、Redis に移行する場合は、OSSAUTH「」を参照してくださいRBAC から AUTH への移行。
注記
ElastiCache キャッシュのアクセスコントロールを無効にする必要がある場合は、 を通じて行う必要があります AWS CLI。詳細については、「ElastiCache Valkey または Redis OSS キャッシュでアクセスコントロールを無効にする」を参照してください。