8.5. Ceph Object Gateway およびマルチファクター認証
ストレージ管理者は、Ceph Object Gateway ユーザーの時間ベースのワンタイムパスワード (TOTP) トークンを管理できます。
8.5.1. マルチファクター認証
バケッにオブジェクトのバージョニングを設定した場合、開発者は、必要に応じて、削除要求にマルチファクター認証 (MFA) を要求するように設定することができます。MFA を使用すると、時間ベースのワンタイムパスワード (TOTP) トークンは鍵として x-amz-mfa
ヘッダーに渡されます。トークンは、Google Authenticator などの仮想 MFA デバイス、または Gemalto が提供するようなハードウェア MFA デバイスで生成されます。
radosgw-admin
を使用して、時間ベースのワンタイムパスワードトークンをユーザーに割り当てます。シークレットシードおよびシリアル ID を設定する必要があります。radosgw-admin
を使用して、トークンのリスト表示、削除、および再同期を行うこともできます。
マルチサイト環境では、ゾーンごとに異なるトークンを使用することが推奨されます。これは、MFA ID がユーザーのメタデータに設定されている一方で、実際の MFA ワンタイムパスワード設定はローカルゾーンの OSD に存在するためです。
用語 | 説明 |
---|---|
TOTP | 時間ベースのワンタイムパスワード |
トークンのシリアル | TOTP トークンの ID を表す文字列。 |
トークンシード | TOTP の計算に使用されるシークレットが表示されます。16 進数または base32 にすることができます。 |
TOTP 秒 | TOTP の生成に使用される時間解決。 |
TOTP ウィンドウ | トークンの検証時に現在のトークンの前後にチェックされる TOTP トークンの数。 |
TOTP ピン | 特定の時点で TOTP トークンの有効な値。 |
8.5.2. マルチファクター認証の作成
マルチファクター認証 (MFA) を設定するには、ワンタイムパスワードジェネレーターおよびバックエンド MFA システムが使用するシークレットシードを作成する必要があります。
前提条件
- Linux システム。
- コマンドラインシェルへのアクセス。
手順
urandom
Linux デバイスファイルから 30 文字のシードを生成し、シェル変数SEED
に格納します。例
[user@host01 ~]$ SEED=$(head -10 /dev/urandom | sha512sum | cut -b 1-30)
SEED
変数で echo を実行して、シードを出力します。例
[user@host01 ~]$ echo $SEED 492dedb20cf51d1405ef6a1316017e
同じシードを使用するように、ワンタイムパスワードジェネレーターおよびバックエンドの MFA システムを設定します。
関連情報
- 詳細は、ナレッジベースのソリューション Unable to create RGW MFA token for bucket を参照してください。
- 詳細は、Ceph Object Gateway およびマルチファクター認証 を参照してください。
8.5.3. 新しいマルチファクター認証 TOTP トークンの作成
新たなマルチファクター認証 (MFA) 時間ベースのワンタイムパスワード (TOTP) トークンを作成します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Object Gateway がインストールされている。
- Ceph Monitor ノード上での root アクセスがある。
- ワンタイムパスワードジェネレーターおよび Ceph Object Gateway MFA のシークレットシードが生成されている。
手順
新しい MFA TOTP トークンを作成します。
構文
radosgw-admin mfa create --uid=USERID --totp-serial=SERIAL --totp-seed=SEED --totp-seed-type=SEED_TYPE --totp-seconds=TOTP_SECONDS --totp-window=TOTP_WINDOW
USERID にはユーザー名を設定し、SERIAL には TOTP トークンの ID を表す文字列を設定し、SEED には TOTP の計算に使用する 16 進数または base32 値を設定します。以下の設定は任意です。SEED_TYPE を
hex
またはbase32
に設定し、TOTP_SECONDS をタイムアウト (秒単位) に設定するか、TOTP_WINDOW を設定して、トークンの検証時に現在のトークンの前後にチェックします。例
[root@host01 ~]# radosgw-admin mfa create --uid=johndoe --totp-serial=MFAtest --totp-seed=492dedb20cf51d1405ef6a1316017e
関連情報
- 詳細は、マルチファクター認証用のシードの作成 を参照してください。
- 詳細は、マルチファクター認証トークンの再同期 を参照してください。
8.5.4. マルチファクター認証 TOTP トークンのテスト
マルチファクター認証 (MFA) のタイムベースワンタイムパスワード (TOTP) トークンをテストします。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Object Gateway がインストールされている。
- Ceph Monitor ノード上での root アクセスがある。
-
MFA TOTP トークンは、
radosgw-admin mfa create
を使用して作成されました。
手順
TOTP トークンの PIN をテストして、TOTP が正しく機能することを確認します。
構文
radosgw-admin mfa check --uid=USERID --totp-serial=SERIAL --totp-pin=PIN
USERID には MFA が設定されているユーザー名を設定し、SERIAL には TOTP トークンの ID を表す文字列を設定し、PIN にはワンタイムパスワードジェネレーターからの最新の PIN を設定します。
例
[root@host01 ~]# radosgw-admin mfa check --uid=johndoe --totp-serial=MFAtest --totp-pin=870305 ok
PIN の初回テスト時の場合には、失敗する場合があります。失敗する場合は、トークンを再同期します。Red Hat Ceph Storage Object Gateway 設定および管理ガイドの マルチファクター認証トークンの再同期 を参照してください。
関連情報
- 詳細は、マルチファクター認証用のシードの作成 を参照してください。
- 詳細は、マルチファクター認証トークンの再同期 を参照してください。
8.5.5. マルチファクター認証 TOTP トークンの再同期
マルチファクター認証 (MFA) のタイムベースのワンタイムパスワードトークンを再同期します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Object Gateway がインストールされている。
- Ceph Monitor ノード上での root アクセスがある。
-
MFA TOTP トークンは、
radosgw-admin mfa create
を使用して作成されました。
手順
タイムスキューまたはチェックが失敗した場合に、マルチファクター認証 TOTP トークンを再同期します。
これには、前のピンと現在のピンの 2 回連続して渡す必要があります。
構文
radosgw-admin mfa resync --uid=USERID --totp-serial=SERIAL --totp-pin=PREVIOUS_PIN --totp=pin=CURRENT_PIN
USERID には MFA が設定されているユーザー名を設定し、SERIAL には TOTP トークンの ID を表す文字列を設定し、PREVIOUS_PIN にはユーザーの以前の PIN を設定し、CURRENT_PIN にはユーザーの現在の PIN を設定します。
例
[root@host01 ~]# radosgw-admin mfa resync --uid=johndoe --totp-serial=MFAtest --totp-pin=802021 --totp-pin=439996
新しい PIN をテストしてトークンが正常に再同期されたことを確認します。
構文
radosgw-admin mfa check --uid=USERID --totp-serial=SERIAL --totp-pin=PIN
USERID には MFA が設定されているユーザー名を設定し、SERIALには TOTP トークンの ID を表す文字列を設定し、PIN にはユーザーの PIN を設定します。
例
[root@host01 ~]# radosgw-admin mfa check --uid=johndoe --totp-serial=MFAtest --totp-pin=870305 ok
関連情報
- 詳細は、新しいマルチファクター認証 TOTP トークンの作成 を参照してください。
8.5.6. マルチファクター認証 TOTP トークンのリスト表示
特定のユーザーが持っているすべてのマルチファクター認証 (MFA) 時間ベースのワンタイムパスワード (TOTP) トークンをリスト表示します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Object Gateway がインストールされている。
- Ceph Monitor ノード上での root アクセスがある。
-
MFA TOTP トークンは、
radosgw-admin mfa create
を使用して作成されました。
手順
MFA TOTP トークンをリスト表示します。
構文
radosgw-admin mfa list --uid=USERID
USERID に、MFA が設定されているユーザー名を設定します。
例
[root@host01 ~]# radosgw-admin mfa list --uid=johndoe { "entries": [ { "type": 2, "id": "MFAtest", "seed": "492dedb20cf51d1405ef6a1316017e", "seed_type": "hex", "time_ofs": 0, "step_size": 30, "window": 2 } ] }
関連情報
- 詳細は、新しいマルチファクター認証 TOTP トークンの作成 を参照してください。
8.5.7. マルチファクター認証 TOTP トークンの表示
シリアルを指定して、特定のマルチファクター認証 (MFA) 時間ベースのワンタイムパスワード (TOTP) トークンを表示します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Object Gateway がインストールされている。
- Ceph Monitor ノード上での root アクセスがある。
-
MFA TOTP トークンは、
radosgw-admin mfa create
を使用して作成されました。
手順
MFA TOTP トークンを表示します。
構文
radosgw-admin mfa get --uid=USERID --totp-serial=SERIAL
USERID には MFA が設定されているユーザー名に設定し、SERIAL には TOTP トークンの ID を表す文字列に設定します。
関連情報
- 詳細は、新しいマルチファクター認証 TOTP トークンの作成 を参照してください。
8.5.8. マルチファクター認証 TOTP トークンの削除
マルチファクター認証 (MFA) のタイムベースワンタイムパスワード (TOTP) トークンを削除します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Object Gateway がインストールされている。
- Ceph Monitor ノード上での root アクセスがある。
-
MFA TOTP トークンは、
radosgw-admin mfa create
を使用して作成されました。
手順
MFA TOTP トークンを削除します。
構文
radosgw-admin mfa remove --uid=USERID --totp-serial=SERIAL
USERID には MFA が設定されているユーザー名に設定し、SERIAL には TOTP トークンの ID を表す文字列に設定します。
例
[root@host01 ~]# radosgw-admin mfa remove --uid=johndoe --totp-serial=MFAtest
MFA TOTP トークンが削除されたことを確認します。
構文
radosgw-admin mfa get --uid=USERID --totp-serial=SERIAL
USERID には MFA が設定されているユーザー名に設定し、SERIAL には TOTP トークンの ID を表す文字列に設定します。
例
[root@host01 ~]# radosgw-admin mfa get --uid=johndoe --totp-serial=MFAtest MFA serial id not found
関連情報
- 詳細は、Ceph Object Gateway およびマルチファクター認証 を参照してください。