次の方法で共有


データ アクセス ポリシーを使用してロールベースのアクセス制御を構成する

適切なユーザーが適切なデータとコマンドのセットにアクセスできるようにするには、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
    • 管理コマンド。 通常のアプリケーションでは、MONITORSHUTDOWN を含めてこれらのコマンドを使用する必要はありません。
  • dangerous
    • 危険性を含むコマンド。 さまざまな理由から、FLUSHALLRESTORESORTKEYSCLIENTDEBUGINFOCONFIG などは注意して使用する必要があります。
  • keyspace
    • DELRESTOREDUMPRENAMEEXISTSDBSIZEKEYSEXPIRETTLFLUSHALL など、キー、データベース、またはそのメタデータの型に依存しない方法での書き込みまたは読み取り。 キースペース、キー、またはメタデータを変更できるコマンドには、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*

アプリケーションのカスタム データ アクセス ポリシーを構成する

  1. Azure portal で、Microsoft Entra トークンベースの認証を構成する Azure Cache for Redis インスタンスを選択します。

  2. [リソース] メニューから、[データ アクセスの構成] を選択します。

    [リソース] メニューの強調表示された [データ アクセスの構成] を示すスクリーンショット。

  3. [追加] を選択し、[新しいアクセス ポリシー] を選択します。

    カスタム アクセス ポリシーを追加するためのフォームを示すスクリーンショット。

  4. アクセス ポリシーの名前を指定します。

  5. 要件に従ってアクセス許可を構成します

  6. Microsoft Entra ID を使ってアクセス ポリシーにユーザーを追加するには、最初に、[リソース] メニューから [認証] を選んで、Microsoft Entra ID を有効にする必要があります。

  7. 作業ペインのタブとして [(プレビュー) Microsoft Entra 認証を有効にする] を選択します。

  8. [Microsoft Entra 認証を有効にする] というラベルの付いたボックスがまだオンになっていない場合はオンにして、[OK] を選択します。 次に、 [保存] を選択します。

    Microsoft Entra ID アクセス認証のスクリーンショット。

  9. 構成を更新するかどうか確認するポップアップ ダイアログ ボックスが表示されて、数分かかることが通知されます。 [はい] を選択します。

    重要

    有効化の操作が完了すると、キャッシュ インスタンス内のノードが再起動して新しい構成が読み込まれます。 そのため、この操作はメンテナンス期間中またはピーク営業時間外に実行することをお勧めします。 この操作には最大 30 分かかることがあります。

Microsoft Entra ID を使用するように Redis クライアントを構成する

ロールベースのアクセス制御を構成するための Redis ユーザーおよびデータ アクセス ポリシーの構成が済んだので、特定のユーザーまたはパスワードを使用した認証をサポートするようにクライアントのワークフローを更新する必要があります。 特定の Redis ユーザーとしてキャッシュ インスタンスに接続するようにクライアント アプリケーションを構成する方法については、「Microsoft Entra を使用するように Redis クライアントを構成する」をご覧ください。

次のステップ