This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.第5章 ユーザーの管理
5.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーとは、OpenShift Container Platform API と対話するエンティティーです。ユーザーは、アプリケーションを開発する開発者の場合もあれば、クラスターを管理する管理者の場合もあります。ユーザーは、グループのすべてのメンバーに適用されるパーミッションを設定するグループに割り当てることができます。たとえば、API アクセスをグループに付与して、そのグループのすべてのメンバーに API アクセスを付与することができます。
このトピックでは、ユーザーアカウントの管理について説明します。これには、OpenShift Container Platform での新規ユーザーアカウントの作成方法とそれらの削除方法が含まれます。
5.2. ユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーの作成プロセスは、設定される アイデンティティープロバイダーによって異なります。デフォルトで、OpenShift Container Platform は、すべてのユーザー名およびパスワードのアクセスを拒否する DenyAll
アイデンティティープロバイダーを使用します。
以下のプロセスでは、新規ユーザーを作成してからロールをそのユーザーに追加します。
-
アイデンティティープロバイダーに応じたユーザーアカウントを作成します。これは、アイデンティティープロバイダー設定の一部として使用される
mappingmethod
によって異なります。 新規ユーザーに必要なロールを付与します。
oc create clusterrolebinding <clusterrolebinding_name> \ --clusterrole=<role> --user=<user>
# oc create clusterrolebinding <clusterrolebinding_name> \ --clusterrole=<role> --user=<user>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
--clusterrole
オプションは必要なクラスターロールになります。たとえば、新規ユーザーに対して、クラスター内のすべてに対するアクセスを付与するcluster-admin
権限を付与するには、以下を実行します。oc create clusterrolebinding registry-controller \ --clusterrole=cluster-admin --user=admin
# oc create clusterrolebinding registry-controller \ --clusterrole=cluster-admin --user=admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールの説明および一覧については、『アーキテクチャーガイド』のクラスターロールおよびローカルロール についてのセクションを参照してください。
クラスター管理者は、各ユーザーのアクセスレベルの管理も実行できます。
アイデンティティープロバイダーおよび定義されたグループ構造によっては、一部のロールがユーザーに自動的に付与される場合があります。詳細は、「グループの LDAP との同期」についてのセクションを参照してください。
5.3. ユーザーおよび ID リストの表示 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform のユーザー設定は、OpenShift Container Platform 内の複数の場所に保存されます。アイデンティティープロバイダーの種類を問わず、OpenShift Container Platform はロールベースのアクセス制御 (RBAC) 情報およびグループメンバーシップなどの詳細情報を内部に保存します。ユーザー情報を完全に削除するには、ユーザーアカウントに加えてこのデータも削除する必要があります。
OpenShift Container Platform では、2 つのオブジェクトタイプ (user
および identity
) に、アイデンティティープロバイダー外のユーザーデータが含まれます。
ユーザーの現在のリストを取得するには、以下を実行します。
oc get user
$ oc get user
NAME UID FULL NAME IDENTITIES
demo 75e4b80c-dbf1-11e5-8dc6-0e81e52cc949 htpasswd_auth:demo
ID の現在のリストを取得するには、以下を実行します。
oc get identity
$ oc get identity
NAME IDP NAME IDP USER NAME USER NAME USER UID
htpasswd_auth:demo htpasswd_auth demo demo 75e4b80c-dbf1-11e5-8dc6-0e81e52cc949
2 つのオブジェクトタイプ間で一致する UID があることに注意してください。OpenShift Container Platform の使用を開始した後に認証プロバイダーの変更を試行する場合で重複するユーザー名がある場合、そのユーザー名は、ID リストに古い認証方式を参照するエントリーがあるために機能しなくなります。
5.4. グループの作成 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーは OpenShift Container Platform に要求するエンティティーである一方で、ユーザーのセットで構成される 1 つの以上のグループに編成することもできます。グループは、許可ポリシーなどの場合のように数多くのユーザーを 1 度に管理する際や、パーミッションを複数のユーザーに 1 度に付与する場合などに役立ちます。
組織が LDAP を使用している場合、LDAP レコードの OpenShift Container Platform に対する同期を実行し、複数のグループを 1 つの場所で設定できるようにすることができます。この場合、ユーザーについての情報が MDAP サーバーにあることを仮定します。詳細は、「グループの LDAP との同期」セクションを参照してください。
LDAP を使用していない場合は、以下の手順を使用してグループを手動で作成します。
新規グループを作成するには、以下を実行します。
oc adm groups new <group_name> <user1> <user2>
# oc adm groups new <group_name> <user1> <user2>
たとえば、west
グループを作成し、そのグループ内に john
および betty
ユーザーを置くには、以下を実行します。
oc adm groups new west john betty
# oc adm groups new west john betty
グループが作成されたことを確認し、グループに関連付けられたユーザーを一覧表示するには、以下を実行します。
oc get groups
# oc get groups
NAME USERS
west john, betty
次のステップ:
5.5. ユーザーおよびグループラベルの管理 リンクのコピーリンクがクリップボードにコピーされました!
ラベルをユーザーまたはグループに追加するには、以下を実行します。
oc label user/<user_name> <label_name>
$ oc label user/<user_name> <label_name>
たとえばユーザー名が theuser で、ラベルが level=gold の場合には、以下のようになります。
oc label user/theuser level=gold
$ oc label user/theuser level=gold
ラベルを削除するには、以下を実行します。
oc label user/<user_name> <label_name>-
$ oc label user/<user_name> <label_name>-
ユーザーまたはグループのラベルを表示するには、以下を実行します。
oc describe user/<user_name>
$ oc describe user/<user_name>
5.6. ユーザーの削除 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーを削除するには、以下を実行します。
ユーザーレコードを削除します。
oc delete user demo
$ oc delete user demo user "demo" deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザー ID を削除します。
ユーザーの ID は使用するアイデンティティープロバイダーに関連付けられます。
oc get user
でユーザーレコードからプロバイダー名を取得します。この例では、アイデンティティープロバイダー名は htpasswd_auth です。コマンドは、以下のようになります。
oc delete identity htpasswd_auth:demo
# oc delete identity htpasswd_auth:demo identity "htpasswd_auth:demo" deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この手順を省略すると、ユーザーは再度ログインできなくなります。
上記の手順の完了後は、ユーザーが再びログインすると、新規のアカウントが OpenShift Container Platform に作成されます。
ユーザーの再ログインを防ごうとする場合 (たとえば、ある社員が会社を退職し、そのアカウントを永久に削除する必要がある場合)、そのユーザーを、設定されたアイデンティティープロバイダーの認証バックエンド (htpasswd、kerberos その他) から削除することもできます。
たとえば htpasswd を使用している場合、該当のユーザー名とパスワードで OpenShift Container Platform に設定された htpasswd ファイルのエントリーを削除します。
Lightweight Directory Access Protocol (LDAP) または Red Hat Identity Management (IdM) などの外部 ID管理については、ユーザー管理ツールを使用してユーザーエントリーを削除します。