3.6. ユーザー管理
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 コマンドを実行して、ユーザーがマルチサイトクラスター全体で同期するようにします。マルチサイトクラスター上のユーザーをセカンダリーゾーンまたはセカンダリーゾーングループから作成、変更、または削除しないでください。このドキュメントでは、マスターゾーングループのマスターゾーンにあるホストのコマンドライン規則として [root@master-zone]# を使用しています。
ユーザーおよびサブユーザー 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={id}|--subuser={name}> [other-options]
[root@master-zone]# radosgw-admin user <create|modify|info|rm|suspend|enable|check|stats> <--uid={id}|--subuser={name}> [other-options]
実行するコマンドによっては、追加のオプションが必要になる場合があります。
3.6.1. マルチテナンシー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage 2 以降では、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@master-zone]# radosgw-admin --tenant testx --uid tester \
--display-name "Test User" --access_key TESTER \
--secret test123 user create
Swift のユーザー testx$tester を作成するには、以下のいずれかを実行します。
明示的なテナントを持つサブユーザーは、シェルで引用する必要がありました。
3.6.2. ユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
user create コマンドを使用して S3-interface ユーザーを作成します。ユーザー ID と表示名を指定する必要があります。メールアドレスを指定することもできます。key または secret を指定しないと、radosgw-admin によって自動的に生成されます。ただし、生成されたキー/シークレットのペアを使用しない場合は、キーやシークレットを指定できます。
radosgw-admin user create --uid=<id> \ [--key-type=<type>] [--gen-access-key|--access-key=<key>]\ [--gen-secret | --secret=<key>] \ [--email=<email>] --display-name=<name>
[root@master-zone]# radosgw-admin user create --uid=<id> \
[--key-type=<type>] [--gen-access-key|--access-key=<key>]\
[--gen-secret | --secret=<key>] \
[--email=<email>] --display-name=<name>
以下に例を示します。
radosgw-admin user create --uid=janedoe --display-name="Jane Doe" --email=jane@example.com
[root@master-zone]# radosgw-admin user create --uid=janedoe --display-name="Jane Doe" --email=jane@example.com
キーの出力を確認します。radosgw-admin が JSON エスケープ (\) 文字を生成することがあり、一部のクライアントは JSON エスケープ文字の処理方法を知りません。対処法には、JSON エスケープ文字 (\) の削除、文字列の引用符でのカプセル化、キーの再生成、JSON エスケープ文字が含まれていないことの確認、またはキーとシークレットの手動指定が含まれます。
3.6.3. サブユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
サブユーザー (Swift インターフェイス) を作成するには、ユーザー ID (--uid={username})、サブユーザー ID、およびサブユーザーのアクセスレベルを指定する必要があります。key または secret を指定しないと、radosgw-admin によって自動的に生成されます。ただし、生成されたキー/シークレットのペアを使用しない場合は、キーやシークレットを指定できます。
アクセス制御ポリシーも含まれるため、full は readwrite ではありません。
radosgw-admin subuser create --uid={uid} --subuser={uid} --access=[ read | write | readwrite | full ]
[root@master-zone]# radosgw-admin subuser create --uid={uid} --subuser={uid} --access=[ read | write | readwrite | full ]
以下に例を示します。
radosgw-admin subuser create --uid=janedoe --subuser=janedoe:swift --access=full
[root@master-zone]# radosgw-admin subuser create --uid=janedoe --subuser=janedoe:swift --access=full
3.6.4. ユーザー情報の取得 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーに関する情報を取得するには、user info ユーザー ID (--uid={username}) を指定します。
radosgw-admin user info --uid=janedoe
[root@master-zone]# radosgw-admin user info --uid=janedoe
テナントユーザーに関する情報を取得するには、ユーザー ID とテナントの名前の両方を指定します。
radosgw-admin user info --uid=janedoe --tenant=test
[root@master-zone]# radosgw-admin user info --uid=janedoe --tenant=test
3.6.5. ユーザー情報の変更 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーに関する情報を変更するには、ユーザー ID (--uid={username}) と変更する属性を指定する必要があります。変更は通常、キーとシークレット、電子メールアドレス、表示名、およびアクセスレベルに対して行われます。以下に例を示します。
radosgw-admin user modify --uid=janedoe --display-name="Jane E. Doe"
[root@master-zone]# radosgw-admin user modify --uid=janedoe --display-name="Jane E. Doe"
サブユーザーの値を変更するには、subuser modify とサブユーザー ID を指定します。以下に例を示します。
radosgw-admin subuser modify --subuser=janedoe:swift --access=full
[root@master-zone]# radosgw-admin subuser modify --subuser=janedoe:swift --access=full
3.6.6. ユーザーの有効化および一時停止 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーを作成すると、ユーザーはデフォルトで有効になります。ただし、ユーザー特権を一時停止して、後で再度有効にすることができます。ユーザーを一時停止するには、user suspend とユーザー ID を指定します。
radosgw-admin user suspend --uid=johndoe
[root@master-zone]# radosgw-admin user suspend --uid=johndoe
一時停止ユーザーを再度有効にするには、user enable とユーザー ID を指定します。
radosgw-admin user enable --uid=johndoe
[root@master-zone]# radosgw-admin user enable --uid=johndoe
ユーザーを無効にすると、サブユーザーが無効になります。
3.6.7. ユーザーの削除 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーを削除すると、ユーザーとサブユーザーはシステムから削除されます。ただし、必要に応じてサブユーザーのみを削除できます。ユーザー (およびサブユーザー) を削除するには、user rm とユーザー ID を指定します。
radosgw-admin user rm --uid=<uid> [--purge-keys] [--purge-data]
[root@master-zone]# radosgw-admin user rm --uid=<uid> [--purge-keys] [--purge-data]
以下に例を示します。
radosgw-admin user rm --uid=johndoe --purge-data
[root@master-zone]# radosgw-admin user rm --uid=johndoe --purge-data
サブユーザーのみを削除するには、subuser rm およびサブユーザー名を指定します。
radosgw-admin subuser rm --subuser=johndoe:swift --purge-keys
[root@master-zone]# radosgw-admin subuser rm --subuser=johndoe:swift --purge-keys
オプションには以下が含まれます。
-
データのパージ:
--purge-dataオプションは、UID に関連付けられたすべてのデータをパージします。 -
Purge Keys:
--purge-keysオプションは、UID に関連付けられたすべてのキーをパージします。
3.6.8. サブユーザーの削除 リンクのコピーリンクがクリップボードにコピーされました!
サブユーザーを削除すると、Swift インターフェイスへのアクセスが削除されます。ユーザーはシステムに残ります。Ceph Object Gateway: サブユーザーを削除するには、subuser rm およびサブユーザー ID を指定します。
radosgw-admin subuser rm --subuser=johndoe:test
[root@master-zone]# radosgw-admin subuser rm --subuser=johndoe:test
オプションには以下が含まれます。
-
Purge Keys:
--purge-keysオプションは、UID に関連付けられたすべてのキーをパージします。
3.6.9. ユーザーの名前変更 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーの名前を変更するには、radosgw-admin user rename コマンドを使用します。このコマンドにかかる時間は、ユーザーが持つバケットおよびオブジェクトの数によって異なります。この数字が大きい場合、Red Hat は、screen パッケージが提供する Screen ユーティリティーでコマンドを使用することを推奨します。
前提条件
- 稼働中の Ceph クラスター。
-
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-nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、名前
user1をuser2に変更するには、以下を実行します。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 tenantCopy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、
testテナント内のuser1の名前をuser2に変更するには、以下を実行します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーの名前が正常に変更されたことを確認します。
構文
radosgw-admin user info --uid=new-user-name
radosgw-admin user info --uid=new-user-nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
例
radosgw-admin user info --uid=user2
# radosgw-admin user info --uid=user2Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーがテナント内にある場合は、tenant$user-name 形式を使用します。
radosgw-admin user info --uid=tenant$new-user-name
radosgw-admin user info --uid=tenant$new-user-nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow radosgw-admin user info --uid=test$user2
# radosgw-admin user info --uid=test$user2Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
-
man ページの
screen(1)
3.6.10. キーの作成 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーのキーを作成するには、key create を指定する必要があります。ユーザーには、ユーザー ID と s3 キータイプを指定します。サブユーザーのキーを作成するには、サブユーザー ID と swift キータイプを指定する必要があります。以下に例を示します。
radosgw-admin key create --subuser=johndoe:swift --key-type=swift --gen-secret
[root@master-zone]# radosgw-admin key create --subuser=johndoe:swift --key-type=swift --gen-secret
3.6.11. アクセスキーの追加および削除 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーおよびサブユーザーには、S3 インターフェイスおよび Swift インターフェイスを使用するためのアクセスキーが必要です。ユーザーまたはサブユーザーを作成し、アクセスキーおよびシークレットを指定しない場合、キーおよびシークレットが自動的に生成されます。キーを作成し、アクセスキーやシークレットを指定または生成することができます。アクセスキーおよびシークレットを削除することもできます。オプションには以下が含まれます。
-
--secret=<key>は、秘密鍵を指定します (例: 手動で生成)。 -
--geen-access-keyは、ランダムなアクセスキーを生成します (デフォルトでは S3 ユーザー用)。 -
--geen-secretは、ランダムな秘密鍵を生成します。 -
--key-type=<type>は、キータイプを指定します。オプションは swift、s3 です。
キーを追加するには、ユーザーを指定します。
radosgw-admin key create --uid=johndoe --key-type=s3 --gen-access-key --gen-secret
[root@master-zone]# radosgw-admin key create --uid=johndoe --key-type=s3 --gen-access-key --gen-secret
鍵とシークレットを指定することもできます。
アクセスキーを削除するには、ユーザーとキーを指定する必要があります。
特定ユーザーのアクセスキーを検索します。
radosgw-admin user info --uid=<testid>
[root@master-zone]# radosgw-admin user info --uid=<testid>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>
[root@master-zone]# 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@master-zone]# radosgw-admin key rm --uid=johndoe --access-key 0555b35654ad1656d804Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.6.12. 管理機能の追加および削除 リンクのコピーリンクがクリップボードにコピーされました!
Ceph Storage Cluster は、ユーザーが REST API を介して管理機能を実行できるようにする管理 API を提供します。デフォルトでは、ユーザーはこの API にアクセスできません。ユーザーが管理機能を実行できるようにするには、ユーザーに管理機能を提供します。
ユーザーに管理機能を追加するには、以下を実行します。
radosgw-admin caps add --uid={uid} --caps={caps}
[root@master-zone]# radosgw-admin caps add --uid={uid} --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@master-zone]# radosgw-admin caps add --uid=johndoe --caps="users=*"
ユーザーから管理機能を削除するには、以下のコマンドを実行します。
radosgw-admin caps remove --uid=johndoe --caps={caps}
[root@master-zone]# radosgw-admin caps remove --uid=johndoe --caps={caps}