9.4. ユーザー管理
Ceph Object Storage ユーザー管理とは、Ceph Storage Cluster のクライアントアプリケーションとしての Ceph Object Gateway ではなく、Ceph Object Storage サービスのクライアントアプリケーションであるユーザーを指します。クライアントアプリケーションが Ceph Object Gateway サービスと対話できるようにするには、ユーザー、アクセスキー、およびシークレットを作成する必要があります。
ユーザータイプが 2 つあります。
- User: 'user' という用語は、S3 インターフェイスのユーザーを反映しています。
- Subuser: 'subuser' という用語は、Swift インターフェイスのユーザーを反映しています。サブユーザーがユーザーに関連付けられています。
ユーザーとサブユーザーを作成、変更、表示、一時停止、および削除できます。
マルチサイトデプロイメントでユーザーを管理する場合は、常にマスターゾーングループのマスターゾーン内の Ceph Object Gateway ノードで radosgw-admin
コマンドを発行して、ユーザーがマルチサイトクラスター全体で同期するようにします。マルチサイトクラスター上のユーザーをセカンダリーゾーンまたはセカンダリーゾーングループから作成、変更、または削除しないでください。
ユーザーおよびサブユーザー ID の作成に加え、ユーザーの表示名およびメールアドレスを追加することができます。キーおよびシークレットを指定するか、キーおよびシークレットを自動的に生成できます。キーを生成または指定した際には、ユーザー ID が S3 キータイプに対応し、サブユーザー ID が Swift キータイプに対応することに注意してください。Swift キーには、アクセスレベルの read
、write
、readwrite
、および full
もあります。
ユーザー管理コマンドライン構文は、通常、パターン user COMMAND USER_ID
に従います。ここで、USER_ID
は、--uid=
オプションの後にユーザー ID (S3) が続くか、--subuser=
オプションの後にユーザー名 (Swift) が続きます。
構文
radosgw-admin user <create|modify|info|rm|suspend|enable|check|stats> <--uid=USER_ID|--subuser=SUB_USER_NAME> [other-options]
radosgw-admin user <create|modify|info|rm|suspend|enable|check|stats> <--uid=USER_ID|--subuser=SUB_USER_NAME> [other-options]
発行するコマンドによっては、追加のオプションが必要になる場合があります。
9.4.1. マルチテナンシー リンクのコピーリンクがクリップボードにコピーされました!
Ceph Object Gateway は S3 および Swift API の両方に対するマルチテナンシーをサポートします。この場合、各ユーザーとバケットは "テナント" の下に置かれます。マルチテナンシーは、複数のテナントが共通のバケット名 (例: "test"、"main" など) を使用している場合に、名前空間のクラッシュを防ぎます。
各ユーザーとバケットはテナントの下にあります。下位互換性のために、空の名前を持つ "レガシー" テナントが追加されます。テナントを具体的に指定せずにバケットを参照する場合は常に、Swift API は "レガシー" テナントを想定します。既存のユーザーもレガシーテナントに保存されるため、以前のリリースと同様にバケットとオブジェクトにアクセスします。
このようなテナントの場合、テナント自体には何の操作もありません。ユーザーが管理されている場合には、必要に応じて表示および非表示になります。明示的なテナントを持つユーザーを作成、変更、および削除するには、追加のオプション --tenant
を指定するか、radosgw-admin
コマンドのパラメーターで構文 "TENANT$USER"
を使用します。
S3 用のユーザー testx$tester
を作成するには、以下のコマンドを実行します。
例
radosgw-admin --tenant testx --uid tester \ --display-name "Test User" --access_key TESTER \ --secret test123 user create
[root@host01 ~]# radosgw-admin --tenant testx --uid tester \
--display-name "Test User" --access_key TESTER \
--secret test123 user create
Swift のユーザー testx$tester
を作成するには、以下のコマンドのいずれかを実行します。
例
明示的なテナントを持つサブユーザーは、シェルで引用する必要がありました。
9.4.2. ユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
user create
コマンドを使用して S3-interface ユーザーを作成します。ユーザー ID と表示名を指定する必要があります。メールアドレスを指定することもできます。key または secret を指定しないと、radosgw-admin
によって自動的に生成されます。ただし、生成されたキー/シークレットのペアを使用しない場合は、キーやシークレットを指定できます。
構文
radosgw-admin user create --uid=USER_ID \ [--key-type=KEY_TYPE] [--gen-access-key|--access-key=ACCESS_KEY]\ [--gen-secret | --secret=SECRET_KEY] \ [--email=EMAIL] --display-name=DISPLAY_NAME
radosgw-admin user create --uid=USER_ID \
[--key-type=KEY_TYPE] [--gen-access-key|--access-key=ACCESS_KEY]\
[--gen-secret | --secret=SECRET_KEY] \
[--email=EMAIL] --display-name=DISPLAY_NAME
例
radosgw-admin user create --uid=janedoe --access-key=11BS02LGFB6AL6H1ADMW --secret=vzCEkuryfn060dfee4fgQPqFrncKEIkh3ZcdOANY --email=jane@example.com --display-name=Jane Doe
[root@host01 ~]# radosgw-admin user create --uid=janedoe --access-key=11BS02LGFB6AL6H1ADMW --secret=vzCEkuryfn060dfee4fgQPqFrncKEIkh3ZcdOANY --email=jane@example.com --display-name=Jane Doe
キーの出力を確認します。radosgw-admin
が JSON エスケープ (\
) 文字を生成することがあり、一部のクライアントは JSON エスケープ文字の処理方法を知りません。対処法には、JSON エスケープ文字 (\
) の削除、文字列の引用符でのカプセル化、キーの再生成、JSON エスケープ文字が含まれていないことの確認、またはキーとシークレットの手動指定が含まれます。
9.4.3. サブユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
サブユーザー (Swift インターフェイス) を作成するには、ユーザー ID (--uid=USERNAME
)、サブユーザー ID、およびサブユーザーのアクセスレベルを指定する必要があります。key または secret を指定しないと、radosgw-admin
によって自動的に生成されます。ただし、生成されたキー/シークレットのペアを使用しない場合は、キーかシークレットまたはその両方を指定できます。
アクセス制御ポリシーも含まれるため、full
は readwrite
ではありません。
構文
radosgw-admin subuser create --uid=USER_ID --subuser=SUB_USER_ID --access=[ read | write | readwrite | full ]
radosgw-admin subuser create --uid=USER_ID --subuser=SUB_USER_ID --access=[ read | write | readwrite | full ]
例
9.4.4. ユーザー情報の取得 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーに関する情報を取得するには、user info
ユーザー ID (--uid=USERNAME
) を指定します。
例
radosgw-admin user info --uid=janedoe
[root@host01 ~]# radosgw-admin user info --uid=janedoe
テナントユーザーに関する情報を取得するには、ユーザー ID とテナントの名前の両方を指定します。
radosgw-admin user info --uid=janedoe --tenant=test
[root@host01 ~]# radosgw-admin user info --uid=janedoe --tenant=test
9.4.5. ユーザー情報の変更 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーに関する情報を変更するには、ユーザー ID (--uid=USERNAME
) と変更する属性を指定する必要があります。変更は通常、キーとシークレット、電子メールアドレス、表示名、およびアクセスレベルに対して行われます。
例
radosgw-admin user modify --uid=janedoe --display-name="Jane E. Doe"
[root@host01 ~]# radosgw-admin user modify --uid=janedoe --display-name="Jane E. Doe"
サブユーザーの値を変更するには、subuser modify
とサブユーザー ID を指定します。
例
radosgw-admin subuser modify --subuser=janedoe:swift --access=full
[root@host01 ~]# radosgw-admin subuser modify --subuser=janedoe:swift --access=full
9.4.6. ユーザーの有効化および一時停止 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーを作成すると、ユーザーはデフォルトで有効になります。ただし、ユーザー特権を一時停止して、後で再度有効にすることができます。ユーザーを一時停止するには、user suspend
とユーザー ID を指定します。
radosgw-admin user suspend --uid=johndoe
[root@host01 ~]# radosgw-admin user suspend --uid=johndoe
一時停止ユーザーを再度有効にするには、user enable
とユーザー ID を指定します。
radosgw-admin user enable --uid=johndoe
[root@host01 ~]# radosgw-admin user enable --uid=johndoe
ユーザーを無効にすると、サブユーザーが無効になります。
9.4.7. ユーザーの削除 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーを削除すると、ユーザーとサブユーザーはシステムから削除されます。ただし、必要に応じてサブユーザーのみを削除できます。ユーザー (およびサブユーザー) を削除するには、user rm
とユーザー ID を指定します。
構文
radosgw-admin user rm --uid=USER_ID[--purge-keys] [--purge-data]
radosgw-admin user rm --uid=USER_ID[--purge-keys] [--purge-data]
例
[ceph: root@host01 /]# radosgw-admin user rm --uid=johndoe --purge-data
[ceph: root@host01 /]# radosgw-admin user rm --uid=johndoe --purge-data
サブユーザーのみを削除するには、subuser rm
およびサブユーザー名を指定します。
例
[ceph: root@host01 /]# radosgw-admin subuser rm --subuser=johndoe:swift --purge-keys
[ceph: root@host01 /]# radosgw-admin subuser rm --subuser=johndoe:swift --purge-keys
オプションには以下が含まれます。
-
データのパージ:
--purge-data
オプションは、UID に関連付けられたすべてのデータをパージします。 -
キーのパージ:
--purge-keys
オプションは、UID に関連付けられたすべてのキーをパージします。
9.4.8. サブユーザーの削除 リンクのコピーリンクがクリップボードにコピーされました!
サブユーザーを削除すると、Swift インターフェイスへのアクセスが削除されます。ユーザーがシステムに残ります。サブユーザーを削除するには、subuser rm
およびサブユーザー ID を指定します。
構文
radosgw-admin subuser rm --subuser=SUB_USER_ID
radosgw-admin subuser rm --subuser=SUB_USER_ID
例
radosgw-admin subuser rm --subuser=johndoe:swift
[root@host01 /]# radosgw-admin subuser rm --subuser=johndoe:swift
オプションには以下が含まれます。
-
キーのパージ:
--purge-keys
オプションは、UID に関連付けられたすべてのキーをパージします。
9.4.9. ユーザーの名前を変更します。 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーの名前を変更するには、radosgw-admin user rename
コマンドを使用します。このコマンドにかかる時間は、ユーザーが持つバケットおよびオブジェクトの数によって異なります。この数字が大きい場合、Red Hat は、screen
パッケージが提供する Screen
ユーティリティーでコマンドを使用することを推奨します。
前提条件
- 稼働中の Ceph クラスター。
-
Ceph Object Gateway を実行しているホストへの
root
またはsudo
アクセス。 - インストールされた Ceph Object Gateway。
手順
ユーザーの名前を変更します。
構文
radosgw-admin user rename --uid=CURRENT_USER_NAME --new-uid=NEW_USER_NAME
radosgw-admin user rename --uid=CURRENT_USER_NAME --new-uid=NEW_USER_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーがテナント内にある場合は、ユーザー名とテナントの両方を指定します。
構文
radosgw-admin user rename --uid USER_NAME --new-uid NEW_USER_NAME --tenant TENANT
radosgw-admin user rename --uid USER_NAME --new-uid NEW_USER_NAME --tenant TENANT
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーの名前が正常に変更されたことを確認します。
構文
radosgw-admin user info --uid=NEW_USER_NAME
radosgw-admin user info --uid=NEW_USER_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# radosgw-admin user info --uid=user2
[ceph: root@host01 /]# radosgw-admin user info --uid=user2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーがテナント内にある場合は、TENANT$USER_NAME 形式を使用します。
構文
radosgw-admin user info --uid= TENANT$USER_NAME
radosgw-admin user info --uid= TENANT$USER_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# radosgw-admin user info --uid=test$user2
[ceph: root@host01 /]# radosgw-admin user info --uid=test$user2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.4.10. キーの作成 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーのキーを作成するには、key create
を指定する必要があります。ユーザーには、ユーザー ID と s3
キータイプを指定します。サブユーザーのキーを作成するには、サブユーザー ID と swift
キータイプを指定する必要があります。
例
9.4.11. アクセスキーの追加および削除 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーおよびサブユーザーには、S3 インターフェイスおよび Swift インターフェイスを使用するためのアクセスキーが必要です。ユーザーまたはサブユーザーを作成し、アクセスキーおよびシークレットを指定しない場合、キーおよびシークレットが自動的に生成されます。キーを作成し、アクセスキーやシークレットを指定または生成することができます。アクセスキーおよびシークレットを削除することもできます。オプションには以下が含まれます。
-
--secret=SECRET_KEY
は、たとえば手動で生成されたシークレットキーを指定します。 -
--gen-access-key
は、ランダムなアクセスキーを生成します (デフォルトでは S3 ユーザー用)。 -
--gen-secret
は、ランダムな秘密鍵を生成します。 -
--key-type=KEY_TYPE
は、キータイプを指定します。オプションは swift および s3 です。
キーを追加するには、ユーザーを指定します。
例
radosgw-admin key create --uid=johndoe --key-type=s3 --gen-access-key --gen-secret
[root@host01 ~]# radosgw-admin key create --uid=johndoe --key-type=s3 --gen-access-key --gen-secret
鍵とシークレットを指定することもできます。
アクセスキーを削除するには、ユーザーとキーを指定する必要があります。
特定ユーザーのアクセスキーを検索します。
例
radosgw-admin user info --uid=johndoe
[root@host01 ~]# radosgw-admin user info --uid=johndoe
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アクセスキーは、出力の
"access_key"
値になります。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前の手順のユーザー ID とアクセスキーを指定して、アクセスキーを削除します。
構文
radosgw-admin key rm --uid=USER_ID --access-key ACCESS_KEY
radosgw-admin key rm --uid=USER_ID --access-key ACCESS_KEY
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
radosgw-admin key rm --uid=johndoe --access-key 0555b35654ad1656d804
[root@host01 ~]# radosgw-admin key rm --uid=johndoe --access-key 0555b35654ad1656d804
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.4.12. 管理機能の追加および削除 リンクのコピーリンクがクリップボードにコピーされました!
Ceph Storage Cluster は、ユーザーが REST API を介して管理機能を実行できるようにする管理 API を提供します。デフォルトでは、ユーザーはこの API にアクセスできません。ユーザーが管理機能を実行できるようにするには、ユーザーに管理機能を提供します。
ユーザーに管理ケイパビリティーを追加するには、以下のコマンドを実行します。
構文
radosgw-admin caps add --uid=USER_ID--caps=CAPS
radosgw-admin caps add --uid=USER_ID--caps=CAPS
ユーザー、バケット、メタデータ、および使用状況 (使用率) に、読み取り、書き込み、またはすべての機能を追加できます。
構文
--caps="[users|buckets|metadata|usage|zone]=[*|read|write|read, write]"
--caps="[users|buckets|metadata|usage|zone]=[*|read|write|read, write]"
例
radosgw-admin caps add --uid=johndoe --caps="users=*"
[root@host01 ~]# radosgw-admin caps add --uid=johndoe --caps="users=*"
ユーザーから管理ケイパビリティーを削除するには、以下のコマンドを実行します。
例
radosgw-admin caps remove --uid=johndoe --caps={caps}
[root@host01 ~]# radosgw-admin caps remove --uid=johndoe --caps={caps}