検索

5.3.2. ユーザーおよびロールベースの承認の設定

download PDF

5.3.2.1. パーミッションの設定

パーミッションは、broker.xml 設定ファイルの <security-setting> 要素でキュー (アドレスに基づく) に対して定義されます。設定ファイルの <security-settings> 要素に <security-setting> のインスタンスを複数定義できます。アドレス完全一致を指定するか、数字記号 (#) およびアスタリスク (*) ワイルドカード文字を使用したワイルドカードの一致を定義できます。

アドレスに一致するキューのセットに異なるパーミッションを指定できます。これらのパーミッションを以下の表に示します。

ユーザーによるアクセス許可以下のパラメーター...

アドレスの作成

createAddress

アドレスの削除

deleteAddress

一致するアドレスの永続キューの作成

createDurableQueue

一致するアドレスの永続キューの削除

deleteDurableQueue

一致するアドレスの非永続キューの作成

createNonDurableQueue

一致するアドレスの非永続キューの削除

deleteNonDurableQueue

一致するアドレスへのメッセージの送信

send

一致するアドレスにバインドされたキューからのメッセージの消費

consume

管理アドレスに管理メッセージを送信して管理操作を呼び出します。

manage

一致するアドレスにバインドされるキューの参照

browse

パーミッションごとに、パーミッションを付与されたロールの一覧を指定します。指定のユーザーにロールがある場合は、そのアドレスセットのパーミッションが付与されます。

次のセクションでは、パーミッションの設定例を示します。

5.3.2.1.1. 単一アドレス向けメッセージ実稼働の設定

以下の手順では、単一のアドレスに対してメッセージの実稼働パーミッションを設定する方法を説明します。

手順

  1. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  2. <security-settings> 要素内に単一の <security-setting> 要素を追加します。match キーには、アドレスを指定します。以下に例を示します。

    <security-settings>
        <security-setting match="my.destination">
            <permission type="send" roles="producer"/>
        </security-setting>
    </security-settings>

    上記の設定に基づいて、producer ロールのメンバーにはアドレス my.destination送信 パーミッションが割り当てられています。

5.3.2.1.2. 単一アドレスのメッセージ消費の設定

以下の手順では、単一のアドレスに対してメッセージ消費パーミッションを設定する方法を説明します。

手順

  1. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  2. <security-settings> 要素内に単一の <security-setting> 要素を追加します。match キーには、アドレスを指定します。以下に例を示します。

    <security-settings>
        <security-setting match="my.destination">
            <permission type="consume" roles="consumer"/>
        </security-setting>
    </security-settings>

    上記の設定に基づいて、consumer ロールのメンバーには、アドレス my.destinationconsume パーミッションが割り当てられています。

5.3.2.1.3. すべてのアドレスでの完全なアクセスの設定

以下の手順では、すべてのアドレスおよび関連するキューへの完全アクセスを設定する方法を説明します。

手順

  1. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  2. <security-settings> 要素内に単一の <security-setting> 要素を追加します。match キーの場合は、 アドレスへのアクセスを設定するには、番号記号 (#) ワイルドカード文字を指定します。以下に例を示します。

    <security-settings>
        <security-setting match="#">
            <permission type="createDurableQueue" roles="guest"/>
            <permission type="deleteDurableQueue" roles="guest"/>
            <permission type="createNonDurableQueue" roles="guest"/>
            <permission type="deleteNonDurableQueue" roles="guest"/>
            <permission type="createAddress" roles="guest"/>
            <permission type="deleteAddress" roles="guest"/>
            <permission type="send" roles="guest"/>
            <permission type="browse" roles="guest"/>
            <permission type="consume" roles="guest"/>
            <permission type="manage" roles="guest"/>
        </security-setting>
    </security-settings>

    上記の設定に基づいて、すべてのキューの guest ロールのメンバーに、全パーミッションが付与されます。これは、すべてのユーザーに guest ロールを割り当てるように匿名認証を設定する開発のシナリオで役に立ちます。

関連情報

5.3.2.1.4. 複数のセキュリティー設定の設定

以下の手順の例は、一致するアドレスセットに複数のセキュリティー設定を個別に設定する方法を示しています。ここでは、本セクションの上記の例とは対照的で、すべて のアドレスに アクセスを付与する方法を説明します。

  1. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  2. <security-settings> 要素内に単一の <security-setting> 要素を追加します。match キーの場合は、一致するアドレス セット に設定を適用する番号記号 (#) ワイルドカード文字を含めます。以下に例を示します。

    <security-setting match="globalqueues.europe.#">
       <permission type="createDurableQueue" roles="admin"/>
       <permission type="deleteDurableQueue" roles="admin"/>
       <permission type="createNonDurableQueue" roles="admin, guest, europe-users"/>
       <permission type="deleteNonDurableQueue" roles="admin, guest, europe-users"/>
       <permission type="send" roles="admin, europe-users"/>
       <permission type="consume" roles="admin, europe-users"/>
    </security-setting>
    match=globalqueues.europe.#
    番号記号 (#) ワイルドカード文字は、ブローカーによって任意のシーケンスの単語として解釈されます。単語はピリオド (.) で区切られています。この例では、セキュリティー設定は、文字列 globalqueues.europe で始まるアドレスに適用されます。
    permission type="createDurableQueue"
    admin ロールが割り当てられたユーザーのみが、文字列 globalqueues.europe で始まるアドレスにバインドされた永続キューを作成したり、削除したりできます。
    permission type="createNonDurableQueue"
    admin ロール、guest、または europe-users ロールが割り当てられたユーザーは、文字列 globalqueues.europe で始まるアドレスにバインドされた一時キューを作成したり、削除したりできます。
    permission type="send"
    admin ロールまたは europe-users ロールが割り当てられたユーザーは、文字列 globalqueues.europe で始まるアドレスにバインドされたキューにメッセージを送信できます。
    permission type="consume"
    admin ロールまたは europe-users ロールが割り当てられたユーザーは、文字列 globalqueues.europe で始まるアドレスにバインドされたキューからメッセージを消費できます。
  3. (オプション) 異なるセキュリティー設定をアドレスのより限定的なセットに適用するには、別の <security-setting> 要素を追加します。match キーには、より具体的なテキスト文字列を指定します。以下に例を示します。

    <security-setting match="globalqueues.europe.orders.#">
       <permission type="send" roles="europe-users"/>
       <permission type="consume" roles="europe-users"/>
    </security-setting>

    2 つ目の security-setting 要素では、globalqueues.europe.orders.# の照合は、最初の security-setting 要素で指定した globalqueues.europe.# 照合に比べると、具体的です。globalqueues.europe.orders.# に一致するアドレスの場合には、createDurableQueuedeleteDurableQueuecreateNonDurableQueuedeleteNonDurableQueue はファイルの最初の security-setting 要素から継承され ません。たとえば、globalqueues.europe.orders.plastics アドレスの場合には、存在するパーミッションは、ロール europe-userssendconsume のみです。

    したがって、ある security-setting ブロックで指定されたパーミッションは、別のブロックに継承されないため、これらのアクセス許可を指定しないだけで、より詳細な security-setting ブロックのパーミッションを効果的に拒否できます。

5.3.2.1.5. ユーザーでのキューの設定

キューが自動的に作成されると、キューには接続クライアントのユーザー名が割り当てられます。このユーザー名は、キューのメタデータとして含まれます。名前は JMX および AMQ Broker 管理コンソールで公開されます。

以下の手順では、ブローカー設定で手動で定義したキューにユーザー名を追加する方法を説明します。

手順

  1. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  2. 指定のキューに、ユーザー キーを追加します。値を割り当てます。以下に例を示します。

    <address name="ExampleQueue">
        <anycast>
           <queue name="ExampleQueue" user="admin"/>
        </anycast>
    </address>

    上記の設定に基づいて、admin ユーザーはキュー ExampleQueue に割り当てられます。

注記
  • キューでユーザーを設定しても、そのキューのセキュリティーセマンティクスは変更されません。これはそのキューのメタデータにのみ使用されます。
  • ユーザー間のマッピングと、ユーザーに割り当てられたロールのマッピングは、セキュリティーマネージャー と呼ばれるコンポーネントによって処理されます。セキュリティーマネージャーは、ブローカーに保存されているプロパティーファイルからユーザーの認証情報を読み取ります。デフォルトでは、AMQ Broker は org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager セキュリティーマネージャーを使用します。このデフォルトのセキュリティーマネージャーは、JAAS および Red Hat JBoss Enterprise Application Platform(JBoss EAP) のセキュリティーとの統合を提供します。

    カスタム セキュリティーマネージャーの使用方法については、次を参照してください。「カスタムセキュリティーマネージャーの使用」 .

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.