目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / SUSE Enterprise Storage 7.1マニュアル / 運用と管理ガイド / Cephダッシュボード / コマンドラインによるユーザと役割の管理
適用項目 SUSE Enterprise Storage 7.1

11 コマンドラインによるユーザと役割の管理

このセクションでは、Cephダッシュボードによって使用されるユーザアカウントを管理する方法について説明します。これは、ユーザアカウントを作成または変更する場合や、適切なユーザ役割と許可を設定する場合に役立ちます。

11.1 パスワードポリシーの管理

デフォルトでは、次のチェックを含むパスワードポリシー機能が有効になっています。

  • パスワードはN文字より長いか。

  • 古いパスワードと新しいパスワードは同じか。

次のコマンドにより、パスワードポリシー機能全体をON/OFFに切り替えることができます。

cephuser@adm > ceph dashboard set-pwd-policy-enabled true|false

次のチェック項目を個別にON/OFFに切り替えることも可能です。

cephuser@adm > ceph dashboard set-pwd-policy-check-length-enabled true|false
cephuser@adm > ceph dashboard set-pwd-policy-check-oldpwd-enabled true|false
cephuser@adm > ceph dashboard set-pwd-policy-check-username-enabled true|false
cephuser@adm > ceph dashboard set-pwd-policy-check-exclusion-list-enabled true|false
cephuser@adm > ceph dashboard set-pwd-policy-check-complexity-enabled true|false
cephuser@adm > ceph dashboard set-pwd-policy-check-sequential-chars-enabled true|false
cephuser@adm > ceph dashboard set-pwd-policy-check-repetitive-chars-enabled true|false

また、パスワードポリシーの動作設定に次のオプションを利用できます。

  • 最小のパスワード長(デフォルトは8文字)。

    cephuser@adm > ceph dashboard set-pwd-policy-min-length N
  • 最低限のパスワードの複雑さ(デフォルトは10)。

    cephuser@adm > ceph dashboard set-pwd-policy-min-complexity N

    パスワードの複雑さは、パスワードに含まれる各文字を分類することで算出されます。

  • パスワードに使用できない単語をカンマで区切ったリスト。

    cephuser@adm > ceph dashboard set-pwd-policy-exclusion-list word[,...]

11.2 ユーザアカウントの管理

Cephダッシュボードは、複数のユーザアカウントの管理をサポートしています。各ユーザアカウントは、ユーザ名、パスワード(bcryptを使用して暗号化された形式で保存)、オプションの名前、およびオプションの電子メールアドレスで構成されます。

ユーザアカウントはCeph Monitorの設定データベースに保存され、すべてのCeph Managerインスタンス間でグローバルに共有されます。

ユーザアカウントを管理するには、次のコマンドを使用します。

既存のユーザの表示
cephuser@adm > ceph dashboard ac-user-show [USERNAME]
新しいユーザの作成
cephuser@adm > ceph dashboard ac-user-create USERNAME -i [PASSWORD_FILE] [ROLENAME] [NAME] [EMAIL]
ユーザの削除
cephuser@adm > ceph dashboard ac-user-delete USERNAME
ユーザのパスワードの変更
cephuser@adm > ceph dashboard ac-user-set-password USERNAME -i PASSWORD_FILE
ユーザの名前と電子メールの変更
cephuser@adm > ceph dashboard ac-user-set-info USERNAME NAME EMAIL
ユーザの無効化
cephuser@adm > ceph dashboard ac-user-disable USERNAME
ユーザの有効化
cephuser@adm > ceph dashboard ac-user-enable USERNAME

11.3 ユーザの役割と許可

このセクションでは、ユーザの役割に割り当てることができるセキュリティスコープ、ユーザの役割を管理する方法、およびユーザの役割をユーザアカウントに割り当てる方法について説明します。

11.3.1 セキュリティスコープの定義

ユーザアカウントは、ユーザがダッシュボードのどの部分にアクセスできるかを定義する一連の役割に関連付けられます。ダッシュボードの各部分は、「セキュリティ」スコープ内でグループ化されます。セキュリティスコープは事前定義されていて静的です。現在のところ、次のセキュリティスコープを使用できます。

hosts

ホストメニューエントリに関連するすべての機能が含まれます。

config-opt

Ceph設定オプションの管理に関連するすべての機能が含まれます。

pool

プールの管理に関連するすべての機能が含まれます。

osd

Ceph OSDの管理に関連するすべての機能が含まれます。

monitor

Ceph Monitorの管理に関連するすべての機能が含まれます。

rbd-image

RADOS Block Deviceイメージの管理に関連するすべての機能が含まれます。

rbd-mirroring

RADOS Block Deviceのミラーリングの管理に関連するすべての機能が含まれます。

iscsi

iSCSIの管理に関連するすべての機能が含まれます。

rgw

Object Gatewayの管理に関連するすべての機能が含まれます。

cephfs

CephFSの管理に関連するすべての機能が含まれます。

manager (マネージャ)

Ceph Managerの管理に関連するすべての機能が含まれます。

log

Cephのログの管理に関連するすべての機能が含まれます。

grafana

Grafanaプロキシに関連するすべての機能が含まれます。

prometheus

Prometheusアラート管理に関連するすべての機能が含まれます。

dashboard-settings

ダッシュボードの設定を変更できます。

11.3.2 ユーザの役割の指定

「役割」は、「セキュリティスコープ」と一連の「許可」との間の一連のマッピングを指定するものです。許可には、「read」、「create」、「update」、および「delete」の4つのタイプがあります。

次の例では、ユーザがプールの管理に関連する機能に対して「read」許可と「create」許可を持ち、RBDイメージの管理に関連する機能に対して完全な許可を持つ役割を指定します。

{
  'role': 'my_new_role',
  'description': 'My new role',
  'scopes_permissions': {
    'pool': ['read', 'create'],
    'rbd-image': ['read', 'create', 'update', 'delete']
  }
}

ダッシュボードには、「システム役割」と呼ばれる、事前定義済みの一連の役割があらかじめ用意されています。これらの役割は、Cephダッシュボードを新規インストールした後ですぐに使用できます。

管理者

すべてのセキュリティスコープに対する完全な許可を提供します。

読み込み専用

ダッシュボード設定を除くすべてのセキュリティスコープの読み込み許可を提供します。

block-manager

「rbd-image」、「rbd-mirroring」、および「iscsi」のスコープに対する完全な許可を提供します。

rgw-manager

「rgw」スコープに対する完全な許可を提供します。

cluster-manager

「hosts」、「osd」、「monitor」、「manager」、および「config-opt」のスコープに対する完全な許可を提供します。

pool-manager

「pool」スコープに対する完全な許可を提供します。

cephfs-manager

「cephfs」スコープに対する完全な許可を提供します。

11.3.2.1 カスタム役割の管理

次のコマンドを使用して、新しいユーザの役割を作成できます。

新規ロール(役割)を作成します:
cephuser@adm > ceph dashboard ac-role-create ROLENAME [DESCRIPTION]
役割の削除:
cephuser@adm > ceph dashboard ac-role-delete ROLENAME
役割へのスコープ許可の追加
cephuser@adm > ceph dashboard ac-role-add-scope-perms ROLENAME SCOPENAME PERMISSION [PERMISSION...]
役割からのスコープ許可の削除
cephuser@adm > ceph dashboard ac-role-del-perms ROLENAME SCOPENAME

11.3.2.2 ユーザアカウントへの役割の割り当て

役割をユーザに割り当てるには、次のコマンドを使用します。

ユーザの役割の設定
cephuser@adm > ceph dashboard ac-user-set-roles USERNAME ROLENAME [ROLENAME ...]
ユーザへの追加の役割の追加
cephuser@adm > ceph dashboard ac-user-add-roles USERNAME ROLENAME [ROLENAME ...]
ユーザからの役割の削除
cephuser@adm > ceph dashboard ac-user-del-roles USERNAME ROLENAME [ROLENAME ...]
ヒント
ヒント: カスタム役割の消去

カスタム役割を作成し、後でceph.purgeランナを使ってCephクラスタを削除する場合、まずカスタム役割を消去する必要があります。詳細については、13.9項 「Cephクラスタ全体の削除」を参照してください。

11.3.2.3 例: ユーザとカスタム役割の作成

このセクションでは、RBDイメージの管理、Cephプールの表示と作成、および他のスコープへの読み込み専用アクセスを行うことができるユーザアカウントの作成手順について説明します。

  1. tuxという名前の新しいユーザを作成します。

     cephuser@adm > ceph dashboard ac-user-create tux PASSWORD
  2. 役割を作成し、スコープ許可を指定します。

    cephuser@adm > ceph dashboard ac-role-create rbd/pool-manager
    cephuser@adm > ceph dashboard ac-role-add-scope-perms rbd/pool-manager \
     rbd-image read create update delete
    cephuser@adm > ceph dashboard ac-role-add-scope-perms rbd/pool-manager pool read create
  3. 役割をtuxユーザに関連付けます。

    cephuser@adm > ceph dashboard ac-user-set-roles tux rbd/pool-manager read-only

11.4 プロキシ設定

Cephダッシュボードへの固定URLを定めたい場合や、管理ノードへの直接接続を許可したくない場合は、プロキシを設定できます。このプロキシは受け取った要求現在をアクティブなceph-mgrインスタンスへ自動的に転送します。

11.4.1 リバースプロキシによるダッシュボードへのアクセス

リバースプロキシ設定を使用してダッシュボードにアクセスしている場合は、URLプレフィックスを使用してダッシュボードを提供しなければならないことがあります。ダッシュボードがプレフィックスを含むハイパーリンクを使用できるようにするには、url_prefix設定を設定できます。

  cephuser@adm > ceph config set mgr mgr/dashboard/url_prefix URL_PREFIX

これにより、http://HOST_NAME:PORT_NUMBER/URL_PREFIX/でダッシュボードにアクセスできます。

11.4.2 リダイレクションの無効化

CephダッシュボードがHAProxyのようなロードバランシングプロキシの背後にある場合、リダイレクション動作を無効化することで、内部URL(解決できないURL)がフロントエンドのクライアントに公開されないようにします。次のコマンドを使用することで、ダッシュボードがアクティブなダッシュボードへリダイレクトするのではなく、HTTPエラー(デフォルトでは500)を返すようになります。

cephuser@adm > ceph config set mgr mgr/dashboard/standby_behaviour "error"

デフォルトのリダイレクション動作に設定をリセットするには、次のコマンドを使用します。

cephuser@adm > ceph config set mgr mgr/dashboard/standby_behaviour "redirect"

11.4.3 エラーステータスコードの設定

リダイレクション動作を無効化する場合、スタンバイダッシュボードのHTTPステータスコードをカスタマイズする必要があります。そのためには、次のコマンドを実行します。

cephuser@adm > ceph config set mgr mgr/dashboard/standby_error_status_code 503

11.4.4 HAProxyの設定例

以下に示す設定は、HAProxyを使用したTLS/SSLパススルーの例です。

注記
注記

この設定が効果を発揮する状況は次の通りです。ダッシュボードがフェールオーバーした際に、フロントエンドのクライアントはHTTPリダイレクト応答(303)を受け取る可能性があります。この場合、クライアントは解決不能ホストにリダイレクトされてしまいます。

このような状況は、HAProxyの2つのヘルスチェック中にフェールオーバーが発生した場合に生じます。これは、それまでアクティブだったダッシュボードが、新しいアクティブノードをリダイレクト先とする303エラーで応答してしまうためです。このような状況を避けるため、スタンバイノードのリダイレクション動作を無効化することを検討する必要があります。

  defaults
    log global
    option log-health-checks
    timeout connect 5s
    timeout client 50s
    timeout server 450s

  frontend dashboard_front
    mode http
    bind *:80
    option httplog
    redirect scheme https code 301 if !{ ssl_fc }

  frontend dashboard_front_ssl
    mode tcp
    bind *:443
    option tcplog
    default_backend dashboard_back_ssl

  backend dashboard_back_ssl
    mode tcp
    option httpchk GET /
    http-check expect status 200
    server x HOST:PORT ssl check verify none
    server y HOST:PORT ssl check verify none
    server z HOST:PORT ssl check verify none

11.5 API要求の監査

CephダッシュボードのREST APIは、PUT、POST、およびDELETEの各要求をCeph監査ログに記録できます。ログはデフォルトでは無効ですが、次のコマンドで有効にできます。

cephuser@adm > ceph dashboard set-audit-api-enabled true

ログが有効な場合、要求ごとに次のパラメータがログに記録されます。

from

「https://[::1]:44410」などの要求の発信元。

path

/api/authなどのREST APIパス。

method

「PUT」、「POST」、または「DELETE」。

user

ユーザの名前(または「None」)。

次に、ログエントリの例を示します。

2019-02-06 10:33:01.302514 mgr.x [INF] [DASHBOARD] \
 from='https://[::ffff:127.0.0.1]:37022' path='/api/rgw/user/exu' method='PUT' \
 user='admin' params='{"max_buckets": "1000", "display_name": "Example User", "uid": "exu", "suspended": "0", "email": "user@example.com"}'
ヒント
ヒント: 要求ペイロードのログの無効化

要求ペイロード(引数とその値のリスト)のログは、デフォルトで有効になっています。これは、次のコマンドを使用して無効にできます。

cephuser@adm > ceph dashboard set-audit-api-log-payload false

11.6 CephダッシュボードによるNFS Ganeshaの設定

Cephダッシュボードは、CephFSまたはObject Gatewayをバックストアとして使用するNFS Ganeshaエクスポートを管理できます。ダッシュボードはCephFSクラスタのRADOSオブジェクトに保存されたNFS Ganeshaの設定ファイルを管理します。NFS Ganeshaは設定の一部をCephクラスタに保存する必要があります。

NFS Ganeshaの設定オブジェクトの場所を設定するには、次のコマンドを実行します。

cephuser@adm > ceph dashboard set-ganesha-clusters-rados-pool-namespace pool_name[/namespace]

これで、Cephダッシュボードを使用してNFS Ganeshaのエクスポートを管理できます。

11.6.1 複数のNFS Ganeshaクラスタの設定

Cephダッシュボードは、異なるNFS Ganeshaクラスタに属するNFS Ganeshaエクスポートの管理をサポートしています。各NFS Ganeshaクラスタの設定オブジェクトを異なるRADOSプール/ネームスペースに保存することをお勧めします。これは、設定を互いに分離するためです。

各NFS Ganeshaクラスタの設定の場所を指定するには、次のコマンドを使用します。

cephuser@adm > ceph dashboard set-ganesha-clusters-rados-pool-namespace cluster_id:pool_name[/namespace](,cluster_id:pool_name[/namespace])*

Cluster_idは任意の文字列で、NFS Ganeshaクラスタを一意に識別します。

Cephダッシュボードと複数のNFS Ganeshaクラスタを設定した場合、エクスポートがどのクラスタに属しているかをWeb UIによって自動的に選択できるようになります。

11.7 デバッグ用プラグイン

Cephダッシュボードのプラグインはダッシュボードの機能を拡張します。デバッグプラグインを使用すると、デバッグモードによってダッシュボードの動作をカスタマイズできるようになります。次のコマンドによって、デバッグモードの有効化、無効化、確認ができます。

cephuser@adm > ceph dashboard debug status
Debug: 'disabled'
cephuser@adm > ceph dashboard debug enable
Debug: 'enabled'
cephuser@adm > dashboard debug disable
Debug: 'disabled'

デフォルトでは、この機能は無効です。このモードは運用環境の展開に推奨される設定です。必要に応じて、再起動せずにデバッグモードを有効化できます。