1.2. Secure Database-as-a-Service


Red Hat OpenStack Platform の以前のバージョンでは、DBaaS ゲストエージェントは、すべてのトラフィックに対して管理コントローラー全体によって使用された RabbitMQ メッセージバスへの認証情報と共に実行されていました。したがって、DBaaS インスタンスは、機密データを含む、メッセージバスを介して送信されたすべてのデータを表示できます。これにより、インスタンスはバスを共有する他のサービスを誤用したり、攻撃したりする可能性があります。Red Hat OpenStack Platform 8 では、DBaaS は、残りの管理コントローラーにアクセスできない分離されたテナントに配置されます。ただし、DBaaS のセキュリティーをさらに強化するには、別のホストと別の RabbitMQ メッセージバスに DBaaS インスタンスをセットアップできます。これを実行するには、以下の手順を実行します。

  1. 管理コントローラー で、以下を行います。

    1. RabbitMQ のユーザーとパスワードを、DBaaS テナントと共有されないカスタム値に設定します。たとえば、パスワードが変更された ゲスト アカウントと / default 仮想ホストを使用できます。

      # rabbitmqctl change_password guest password
      Copy to Clipboard Toggle word wrap

      パスワードは、サービスがメッセージバスに接続するように設定されているすべての設定ファイルで変更されます。

    2. DBaaS データベースのエンドポイントを更新して、サービスカタログの検索が別のホストで DBaaS を使用できるようにします。まず、現在のエンドポイントの UUID を確認してから削除し、最後に別の DBaaS ホストの IP アドレスを使用して新しいエンドポイントを作成します。

      # keystone endpoint-list
      # keystone endpoint-delete current_DBaaS_endpoint_uuid
      # keystone endpoint-create --service trove --publicurl http://IP:8779/v1.0/\$\(tenant_id\)s --region RegionOne
      Copy to Clipboard Toggle word wrap
  2. DBaaS コントローラーで以下を行います。

    1. リモート管理コントローラーホストの WSGI 設定の認証トークンフィルターを指定します。/etc/trove/api-paste.ini ファイルの次のオプションと値を使用します。IP は、管理コントローラーホストの IP アドレスに置き換えます。

      [filter:authtoken]
      paste.filter_factory = keystonemiddleware.auth_token:filter_factory
      service_protocol = http
      service_host = IP
      service_port = 5000
      auth_host = IP
      auth_port = 35357
      auth_protocol = http
      auth_uri = http://IP:35357/v2.0/
      signing_dir = /tmp/keystone-signing-trove
      admin_tenant_name = admin
      admin_user = admin
      admin_password = admin
      Copy to Clipboard Toggle word wrap
    2. 管理ユーザーを追加して、DBaaS ゲストエージェントが管理コントローラーで使用されているシークレットとは異なるシークレットを持つようにします。

      # rabbitmqctl add_user isolated isolated
      # rabbitmqctl set_permissions isolated ".*" ".*" ".*"
      Copy to Clipboard Toggle word wrap
    3. 以下のオプションおよび値を /etc/trove/trove.conf ファイルに配置して、ローカルの RabbitMQ インスタンスに接続し、認証するように DBaaS コントロールプレーンを設定します。

      # AMQP Connection info
      rabbit_userid=isolated
      rabbit_password=isolated
      rabbit_host=DBaaS_IP
      
      # single instance tenant
      nova_proxy_admin_user = user
      nova_proxy_admin_pass = password
      nova_proxy_admin_tenant_name = tenant
      trove_auth_url = http://MGMT_IP:5000/v2.0
      nova_compute_service_type = compute
      cinder_service_type = volumev2
      os_region_name = RegionOne
      nova_compute_url = http://MGMT_IP:8774/v3
      
      remote_nova_client = trove_ext.cloudos.remote.nova_client_trove_admin
      remote_cinder_client = trove_ext.cloudos.remote.cinder_client_trove_admin
      remote_neutron_client = trove_ext.cloudos.remote.neutron_client_trove_admin
      Copy to Clipboard Toggle word wrap
  3. 管理コントローラーで、以下のように /etc/trove/trove-guestagent.conf ファイルを編集します。

    # AMQP Connection info
    rabbit_userid=isolated
    rabbit_password=isolated
    rabbit_host=DBaaS_IP
    
    # single tenant config
    nova_proxy_admin_user = user
    nova_proxy_admin_pass = password
    nova_proxy_admin_tenant_name = tenant
    trove_auth_url = http://MGMT_IP:5000/v2.0
    swift_url = http://MGMT_IP:8080/v1/AUTH_
    Copy to Clipboard Toggle word wrap

1.2.1. ACL ポリシー

あるいは、RabbitMQ 仮想ホストが提供する ACL ポリシーを利用して、セキュリティーを向上させることもできます。この場合は、個別の権限を含む、各仮想ホストに個別のユーザーを割り当てることができます。たとえば、/isolated という仮想ホストを定義し、分離されたユーザーを仮想ホストに適切なパーミッションに割り当てることができます。このタスクを実行するには、以下の手順を実行します。

  1. デフォルト / 仮想ホストの ゲスト アカウントのパスワードを変更します。

    # rabbitmqctl change_password guest password
    Copy to Clipboard Toggle word wrap
  2. 新規ユーザーおよび仮想ホストを追加し、パーミッションを適切に設定します。

    # rabbitmqctl add_user isolated isolated
    # rabbitmqctl add_vhost /isolated
    # rabbitmqctl -p /isolated set_permissions isolated ".*" ".*" ".*"
    Copy to Clipboard Toggle word wrap
  3. DBaaS 設定を編集します。編集するファイルは /etc/trove/trove-guestmanager.conf の 2 つあります。これは、puppet-trove から packstack によって生成され、ゲストインスタンスに注入されます。/etc/trove/trove-conductor.conf は、DBaaS インスタンスからの非同期ステータス更新用に DBaaS コントロールプレーンサービスを設定します。RabbitMQ の設定は、両方のファイルで同一です。

    [oslo_messaging_rabbit]
    rabbit_host=IP
    rabbit_virtual_host=/isolated
    rabbit_userid=isolated
    rabbit_password=isolated
    rabbit_port=5672
    rabbit_ha_queues=False
    rabbit_hosts=IP:5672
    rabbit_use_ssl=False
    Copy to Clipboard Toggle word wrap

このアプローチの利点は、個別のホストとメッセージキューが使用されるシナリオと比較して簡素化されます。この設定は、Red Hat OpenStack Platform director などを使用して、プロビジョニングが自動的に実行される場合に役立ちます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る