データ アクセス ポリシーを使用してロールベースのアクセス制御を構成する
適切なユーザーが適切なデータとコマンドのセットにアクセスできるようにするには、Azure Cache for Redis インスタンスへのアクセスを管理することが重要です。 Redis バージョン 6 で、アクセス制御リスト (ACL) が導入されました。 ACL は、特定のコマンドを実行できるユーザーと、ユーザーがアクセスできるキーを制限します。 たとえば、特定のユーザーが DEL コマンドを使用してキャッシュ内のキーを削除できないようにすることができます。
Azure Cache for Redis では、この ACL 機能を Microsoft Entra ID と統合して、アプリケーションのサービス プリンシパルとマネージド ID のデータ アクセス ポリシーを構成できるようになりました。
Azure Cache for Redis には、"データ所有者"、"データ共同作成者"、および "データ閲覧者" の 3 つの組み込みアクセス ポリシーが用意されています。 組み込みのアクセス ポリシーがデータ保護と分離の要件を満たしていない場合は、カスタム データ アクセス ポリシーの構成に関するページで説明されているように、独自のカスタム データ アクセス ポリシーを作成して使用できます。
可用性のスコープ
レベル | Basic、Standard、Premium | Enterprise、Enterprise Flash |
---|---|---|
可用性 | はい | いいえ |
前提条件と制限事項
- Redis ACL とデータ アクセス ポリシーは、Redis バージョン 4 を実行する Azure Cache for Redis インスタンスではサポートされていません。
- Microsoft Entra の認証と承認は、SSL 接続でのみサポートされています。
- 一部の Redis コマンドは ブロックされています。
データ アクセス ポリシーのアクセス許可
Redis アクセス制御リストに記載されているように、Redis バージョン 6.0 の ACL では、次の 3 つの領域のアクセス許可を構成できます。
コマンド カテゴリ
Redis では、管理コマンド、危険なコマンドなどのコマンドのグループが作成されており、コマンドのグループに対するアクセス許可を簡単に設定できるようになっています。
+@commandcategory
を使用してコマンド カテゴリを許可する-@commandcategory
を使用してコマンド カテゴリを禁止する
これらのコマンドは引き続きブロックされます。 次のグループは、Redis がサポートする便利なコマンド カテゴリです。 コマンド カテゴリの詳細については、「コマンド カテゴリ」という見出しの下の完全な一覧を参照してください。
admin
- 管理コマンド。 通常のアプリケーションでは、
MONITOR
、SHUTDOWN
を含めてこれらのコマンドを使用する必要はありません。
- 管理コマンド。 通常のアプリケーションでは、
dangerous
- 危険性を含むコマンド。 さまざまな理由から、
FLUSHALL
、RESTORE
、SORT
、KEYS
、CLIENT
、DEBUG
、INFO
、CONFIG
などは注意して使用する必要があります。
- 危険性を含むコマンド。 さまざまな理由から、
keyspace
DEL
、RESTORE
、DUMP
、RENAME
、EXISTS
、DBSIZE
、KEYS
、EXPIRE
、TTL
、FLUSHALL
など、キー、データベース、またはそのメタデータの型に依存しない方法での書き込みまたは読み取り。 キースペース、キー、またはメタデータを変更できるコマンドには、write カテゴリもあります。 キースペース、キー、またはメタデータの読み取りのみを実行できるコマンドには、read カテゴリがあります。
pubsub
- PubSub 関連のコマンド。
read
- キー、値、またはメタデータからの読み取り。 キーと対話しないコマンドには、読み取りまたは書き込みはありません。
set
- データ型: 関連するセット。
sortedset
- データ型: 関連する並べ替えられたセット。
stream
- データ型: 関連するストリーム。
string
- データ型: 関連する文字列。
write
- キー (値またはメタデータ) への書き込み。
コマンド
command を使用すると、特定の Redis ユーザーが実行できる特定のコマンドを制御できます。
- コマンドを許可するには、
+command
を使用します。 - コマンドを禁止するには、
-command
を使用します。
キー
キーを使用すると、キャッシュに格納されている特定のキーまたはキーのグループへのアクセスを制御できます。
キーのパターンを指定するには、
~<pattern>
を使用します。~*
またはallkeys
を使用して、コマンド カテゴリのアクセス許可がキャッシュ インスタンス内のすべてのキーに適用されることを示します。
アクセス許可の指定方法
アクセス許可を指定するには、カスタム アクセス ポリシーとして保存する文字列を作成し、その文字列を Azure Cache for Redis ユーザーに割り当てる必要があります。
次の一覧には、さまざまなシナリオのアクセス許可文字列のいくつかの例が含まれています。
アプリケーションがすべてのキーに対してすべてのコマンドを実行できるようにする
アクセス許可文字列:
+@all allkeys
アプリケーションで read コマンドのみを実行できるようにする
アクセス許可文字列:
+@read ~*
アプリケーションで read コマンド カテゴリを実行し、プレフィックス
Az
を持つキーに対してコマンドを設定できるようにするアクセス許可文字列:
+@read +set ~Az*
アプリケーションのカスタム データ アクセス ポリシーを構成する
Azure portal で、Microsoft Entra トークンベースの認証を構成する Azure Cache for Redis インスタンスを選択します。
[リソース] メニューから、[データ アクセスの構成] を選択します。
[追加] を選択し、[新しいアクセス ポリシー] を選択します。
アクセス ポリシーの名前を指定します。
要件に従ってアクセス許可を構成します。
Microsoft Entra ID を使ってアクセス ポリシーにユーザーを追加するには、最初に、[リソース] メニューから [認証] を選んで、Microsoft Entra ID を有効にする必要があります。
作業ペインのタブとして [(プレビュー) Microsoft Entra 認証を有効にする] を選択します。
[Microsoft Entra 認証を有効にする] というラベルの付いたボックスがまだオンになっていない場合はオンにして、[OK] を選択します。 次に、 [保存] を選択します。
構成を更新するかどうか確認するポップアップ ダイアログ ボックスが表示されて、数分かかることが通知されます。 [はい] を選択します。
重要
有効化の操作が完了すると、キャッシュ インスタンス内のノードが再起動して新しい構成が読み込まれます。 そのため、この操作はメンテナンス期間中またはピーク営業時間外に実行することをお勧めします。 この操作には最大 30 分かかることがあります。
Microsoft Entra ID を使用するように Redis クライアントを構成する
ロールベースのアクセス制御を構成するための Redis ユーザーおよびデータ アクセス ポリシーの構成が済んだので、特定のユーザーまたはパスワードを使用した認証をサポートするようにクライアントのワークフローを更新する必要があります。 特定の Redis ユーザーとしてキャッシュ インスタンスに接続するようにクライアント アプリケーションを構成する方法については、「Microsoft Entra を使用するように Redis クライアントを構成する」をご覧ください。