5.3. Ceph ユーザーの管理
ストレージ管理者は、ユーザーの作成、修正、削除、およびインポートにより Ceph ユーザーを管理できます。Ceph クライアントユーザーは、Ceph クライアントを使用して Red Hat Ceph Storage クラスターデーモンと対話する個人またはアプリケーションのいずれかになります。
5.3.1. 前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Monitor または Ceph クライアントノードへのアクセス
5.3.2. Ceph ユーザーの一覧表示
コマンドラインインターフェイスを使用して、ストレージクラスター内のユーザーを一覧表示できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
ストレージクラスターのユーザーを一覧表示するには、以下を実行します。
[root@mon ~]# ceph auth list
Ceph はストレージクラスター内の全ユーザーを一覧表示します。例えば、2 ノードの例示的なストレージクラスターでは、
ceph auth list
は以下のようなものを出力します。例
installed auth entries: osd.0 key: AQCvCbtToC6MDhAATtuT70Sl+DymPCfDSsyV4w== caps: [mon] allow profile osd caps: [osd] allow * osd.1 key: AQC4CbtTCFJBChAAVq5spj0ff4eHZICxIOVZeA== caps: [mon] allow profile osd caps: [osd] allow * client.admin key: AQBHCbtT6APDHhAA5W00cBchwkQjh3dkKsyPjw== caps: [mds] allow caps: [mon] allow * caps: [osd] allow * client.bootstrap-mds key: AQBICbtTOK9uGBAAdbe5zcIGHZL3T/u2g6EBww== caps: [mon] allow profile bootstrap-mds client.bootstrap-osd key: AQBHCbtT4GxqORAADE5u7RkpCN/oo4e5W0uBtw== caps: [mon] allow profile bootstrap-osd
ユーザーの TYPE.ID
記法が適用され、osd.0
は osd
型のユーザーでその ID は 0
、client.admin
は client
型のユーザーでその ID は admin
、つまりデフォルトの client.admin
ユーザーとなります。また、各エントリーには、key: VALUE
エントリー、および 1 つ以上の caps:
エントリーがあることに注意してください。
-o FILE_NAME
オプションを ceph auth list
と共に使用して、出力をファイルに保存することができます。
5.3.3. Ceph ユーザー情報の表示
コマンドラインインターフェイスを使用して、Ceph のユーザー情報を表示することができます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
特定のユーザー、キーおよびケイパビリティーを取得するには、以下を実行します。
ceph auth export TYPE.ID
例
[root@mon ~]# ceph auth get client.admin
ceph auth get
に-o FILE_NAME
オプションを使用して、出力をファイルに保存することもできます。開発者は以下を実行することもできます。ceph auth export TYPE.ID
例
[root@mon ~]# ceph auth export client.admin
auth export
コマンドは、auth get
と同じですが、エンドユーザーとは無関係な内部 auid
も出力します。
5.3.4. 新しい Ceph ユーザーの追加
ユーザーを追加すると、ユーザー名 (つまり TYPE.ID
)、シークレットキー、およびユーザーの作成に使用するコマンドに含まれるケイパビリティー) が作成されます。
ユーザーのキーにより、ユーザーは Ceph Storage クラスターとの認証を行うことができます。ユーザーの機能により、Ceph モニター (mon
)、Ceph OSD (osd
)、または Ceph Metadata Server (mds
) での読み取り、書き込み、実行を承認します。
ユーザーを追加する方法はいくつかあります。
-
ceph auth add
: このコマンドは、ユーザーを追加する正規の方法になります。ユーザーを作成し、キーを生成し、指定の機能を追加します。 -
ceph auth get-or-create
: ユーザー名 (括弧内) とキーを持つキーファイルの形式を返すため、このコマンドはユーザーを作成する最も便利な方法です。ユーザーがすでに存在する場合、このコマンドは単にキーファイル形式でユーザー名およびキーを返します。-o FILE_NAME
オプションを使用して、出力をファイルに保存します。 -
ceph auth get-or-create-key
: このコマンドはユーザーを作成し、ユーザーのキーのみを返す便利な方法です。これは、鍵のみを必要とするクライアント (例:libvirt
) に役立ちます。ユーザーがすでに存在する場合は、このコマンドが鍵を返すだけです。-o FILE_NAME
オプションを使用して、出力をファイルに保存します。
クライアントユーザーの作成時に、ケイパビリティーのないユーザーを作成できます。クライアントはモニターからクラスターマップを取得できないため、ケイパビリティーのないユーザーには認証以上のことができません。ただし、後で ceph auth caps
コマンドを使用してケイパビリティーを追加する場合には、ケイパビリティーがないユーザーを作成することができます。
通常ユーザーは、Ceph OSD における Ceph モニターおよび読み取り/書き込みケイパビリティーにおいて、少なくとも読み取りケイパビリティーを持ちます。また、ユーザーの OSD パーミッションは、多くの場合、特定のプールへのアクセスに制限されます。
[root@mon ~]# ceph auth add client.john mon 'allow r' osd 'allow rw pool=liverpool' [root@mon ~]# ceph auth get-or-create client.paul mon 'allow r' osd 'allow rw pool=liverpool' [root@mon ~]# ceph auth get-or-create client.george mon 'allow r' osd 'allow rw pool=liverpool' -o george.keyring [root@mon ~]# ceph auth get-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=liverpool' -o ringo.key
ユーザーに OSD に対するケイパビリティーを提供する場合に、特定のプールへのアクセスを制限しない場合は、ユーザーはクラスター内のすべてのプールにアクセスできるようになります。
5.3.5. Ceph ユーザーの変更
ceph auth caps
コマンドを使用すると、ユーザーを指定してユーザーのケイパビリティーを変更できます。新しい機能を設定すると、現在の機能が上書きされます。したがって、最初に現在の機能を表示し、新しい機能を追加するときにそれらを含めます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
現在の機能を表示します。
ceph auth get USERTYPE.USERID
例
[root@mon ~]# ceph auth get client.john exported keyring for client.john [client.john] key = AQAHjy1gkxhIMBAAxsaoFNuxlUhr/zKsmnAZOA== caps mon = "allow r" caps osd = "allow rw pool=liverpool"
ケイパビリティーを追加するには、以下の形式を使用します。
ceph auth caps USERTYPE.USERID DAEMON 'allow [r|w|x|*|...] [pool=POOL_NAME] [namespace=NAMESPACE_NAME]'
例
[root@mon ~]# ceph auth caps client.john mon 'allow r' osd 'allow rwx pool=liverpool'
この例では、OSD の実行機能が追加されています。
追加された機能を確認します。
ceph auth get _USERTYPE_._USERID_
例
[root@mon ~]# ceph auth get client.john exported keyring for client.john [client.john] key = AQAHjy1gkxhIMBAAxsaoFNuxlUhr/zKsmnAZOA== caps mon = "allow r" caps osd = "allow rwx pool=liverpool"
この例では、OSD の実行機能を確認できます。
機能を削除するには、削除する機能を除く現在のすべての機能を設定します。
ceph auth caps USERTYPE.USERID DAEMON 'allow [r|w|x|*|...] [pool=POOL_NAME] [namespace=NAMESPACE_NAME]'
例
[root@mon ~]# ceph auth caps client.john mon 'allow r' osd 'allow rw pool=liverpool'
この例では、OSD の実行機能が含まれていないため、削除されます。
削除された機能を確認します。
ceph auth get _USERTYPE_._USERID_
例
[root@mon ~]# ceph auth get client.john exported keyring for client.john [client.john] key = AQAHjy1gkxhIMBAAxsaoFNuxlUhr/zKsmnAZOA== caps mon = "allow r" caps osd = "allow rw pool=liverpool"
この例では、OSD の実行機能は記載されていません。
関連情報
- ケイパビリティーの詳細は、認可ケイパビリティー を参照してください。
5.3.6. Ceph ユーザーの削除
コマンドラインインターフェイスを使用して、Ceph Storage クラスターからユーザーを削除できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
ユーザーを削除するには、
ceph auth del
を使用します。[root@mon ~]# ceph auth del TYPE.ID
ここで、
TYPE
はクライアント
、osd
、mon
、またはmds
のいずれかで、ID
はデーモンのユーザー名または ID です。
5.3.7. Ceph ユーザーキーの出力
コマンドラインインターフェイスを使用して、Ceph ユーザーのキー情報を表示することができます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
ユーザーの認証キーを標準出力に出力するには、以下を実行します。
ceph auth print-key TYPE.ID
ここで、
TYPE
はクライアント
、osd
、mon
、またはmds
のいずれかで、ID
はデーモンのユーザー名または ID です。ユーザーのキーを出力すると、クライアントソフトウェアにユーザーのキー (例]
libvirt
) を設定する必要がある場合に便利です。mount -t ceph HOSTNAME:/MOUNT_POINT -o name=client.user,secret=
ceph auth print-key client.user
5.3.8. Ceph ユーザーのインポート
コマンドラインインターフェイスを使用して Ceph ユーザーをインポートすることができます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
1 つ以上のユーザーをインポートするには、
ceph auth import
を使用してキーリングを指定します。ceph auth import -i /PATH/TO/KEYRING
例
[root@mon ~]# ceph auth import -i /etc/ceph/ceph.keyring
Ceph Storage クラスターは、新規ユーザー、そのキー、それらのケイパビリティーを追加し、既存のユーザー、それらのキー、およびそのケイパビリティーを更新します。