SYNOPSIS
pveum <COMMAND> [ARGS] [OPTIONS] です。
pveum acl delete <path> --roles <string> [OPTIONS].
アクセスコントロールリストの更新(パーミッションの追加または削除)。
- <path>: <文字列
-
アクセス制御パス
- --グループ <文字列
-
グループ一覧。
- --プロパゲート <ブール値>(デフォルト = 1)
-
パーミッションの伝搬(継承)を許可します。
- --roles <文字列
-
役割の一覧。
- --トークン <文字列
-
APIトークンのリスト。
- --users <文字列
-
ユーザー一覧。
pveumのaclリスト [FORMAT_OPTIONS]。
アクセス制御リスト(ACL)を取得します。
pveum acl modify <path> --roles <string> [OPTIONS].
アクセスコントロールリストの更新(パーミッションの追加または削除)。
- <path>: <文字列
-
アクセス制御パス
- --グループ <文字列
-
グループ一覧。
- --プロパゲート <ブール値>(デフォルト = 1)
-
パーミッションの伝搬(継承)を許可します。
- --roles <文字列
-
役割の一覧。
- --トークン <文字列
-
APIトークンのリスト。
- --users <文字列
-
ユーザー一覧。
プベウム・アクデル
pveum acl delete のエイリアス。
pveum aclmod
pveum acl modify のエイリアス。
pveum group add <groupid> [OPTIONS](グループ追加 <グループID >[オプション])
新しいグループを作成します。
- <groupid>: <文字列
-
説明なし
- --コメント <文字列
-
説明なし
pveum グループ削除 <グループID
グループを削除します。
- <groupid>: <文字列
-
説明なし
pveum グループ・リスト [FORMAT_OPTIONS].
グループインデックス
pveum group modify <groupid> [OPTIONS] [オプション]。
グループデータを更新します。
- <groupid>: <文字列
-
説明なし
- --コメント <文字列
-
説明なし
グループ追加
pveum group add のエイリアス。
プベウム・グループデル
pveum group delete のエイリアス。
プベウム・グループモッド
pveum group modify のエイリアス。
pveum help [OPTIONS]
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pveum passwd <ユーザーID> [オプション].
ユーザーパスワードを変更します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- --確認パスワード <文字列
-
変更を実行するユーザーの現在のパスワード。
pveum pool add <poolid> [OPTIONS](プール追加 <プール) [オプション])
新しいプールを作成します。
- <プール>: <文字列
-
説明なし
- --コメント <文字列
-
説明なし
プール削除 <プール
プールを削除します。
- <プール>: <文字列
-
説明なし
pveum プールリスト [OPTIONS] [FORMAT_OPTIONS].
プールの一覧表示またはプール設定の取得
- --プール <文字列
-
説明なし
- --タイプ <lxc | qemu | storage>
-
説明なし
必要なオプション:poolid
pveum pool modify <poolid> [OPTIONS] [オプション].
プールを更新。
- <プール>: <文字列
-
説明なし
- --allow-move <boolean>(デフォルト = 0)
-
すでに別のプールにいる場合でも、ゲストを追加できるようにします。ゲストは現在のプールから削除され、このプールに追加されます。
- --コメント <文字列
-
説明なし
- --delete <boolean>(デフォルト = 0)
-
渡されたVMIDやストレージIDを追加する代わりに削除します。
- --ストレージ <文字列
-
このプールから追加または削除するストレージ ID のリスト。
- --vms <文字列
-
このプールから追加または削除するゲスト VMID のリスト。
pveum realm add <realm> --type <string> [OPTIONS] です。
認証サーバーを追加します。
- <realm>: <文字列
-
認証ドメインID
- --acr-values ^[^x00-xxx1F <>#"]*$.
-
認証サーバが認証要求に使用するよう要求される認証コンテキスト・クラス参照値 を指定します。
- --autocreate <boolean>(デフォルト = 0)
-
ユーザーが存在しない場合、自動的にユーザーを作成します。
- --base_dn <文字列
-
LDAPベースドメイン名
- --bind_dn <文字列
-
LDAPバインドドメイン名
- --capath <文字列>(デフォルト = /etc/ssl/certs)
-
CA 証明書ストアへのパス
- --大文字小文字を区別 <ブール値>(デフォルト = 1)
-
ユーザー名は大文字と小文字を区別します。
- --証明書 <文字列
-
クライアント証明書へのパス
- --認証キー <文字列
-
クライアント証明書キーへのパス
- --check-connection <boolean>(デフォルト = 0)
-
サーバーへのバインド接続を確認します。
- --クライアントID <文字列
-
OpenIDクライアントID
- --client-key <文字列
-
OpenIDクライアント・キー
- --コメント <文字列
-
説明
- --default <ブール値
-
デフォルトのレルムとして使用します。
- --ドメイン
-
ADドメイン名
- --フィルタ <文字列
-
ユーザー同期用のLDAPフィルター。
- --group_classes <string>(default = groupOfNames, group, univentionGroup, ipausergroup)
-
グループのオブジェクトクラス。
- --group_dn <文字列
-
グループ同期用のLDAPベース・ドメイン名。設定されていない場合は、base_dnが使用されます。
- --グループフィルター <文字列
-
グループ同期用のLDAPフィルタ。
- --group_name_attr <文字列
-
グループ名を表すLDAP属性。設定されていない場合、または見つかった場合は、DN の最初の値が name として使用されます。
- --issuer-url <文字列
-
OpenID発行者URL
- --モード <ldap | ldap+starttls | ldaps>(デフォルト = ldap)
-
LDAPプロトコルモード。
- --パスワード <文字列
-
LDAP バインドパスワード。etc/pve/priv/realm/<REALM>.pw に格納されます。
- --ポート <整数> (1 - 65535)
-
サーバーポート
- --プロンプト (?:none|login|consent|select_account|S+)
-
認証サーバがエンドユーザに再認証と同意を求めるかどうかを指定します。
- --スコープ <文字列>(デフォルト = 電子メールプロファイル)
-
認可され返されるべきスコープ (ユーザの詳細) を指定します。
- --secure <ブール値
-
安全な LDAPS プロトコルを使用します。廃止: 代わりにmodeを使用してください。
- --サーバ1 <文字列
-
サーバーIPアドレス(またはDNS名)
- --サーバー2 <文字列
-
フォールバックサーバーのIPアドレス(またはDNS名)
- -sslバージョン <tlsv1 | tlsv1_1 | tlsv1_2 | tlsv1_3>.
-
LDAPS TLS/SSLのバージョン。1.2より古いバージョンを使用することはお勧めしません!
- -sync-defaults-options [enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>] となります。
-
同期の動作に関するデフォルトのオプション。
- --sync_attributes \w+=[^,]+(,\s*\w+=[^,]+)*
-
どの LDAP 属性をどの PVE ユーザーフィールドにマッピングするかを指定するための key=value ペアのカンマ区切りリスト。例えば、LDAP 属性のmailを PVE のemail にマッピングするには、email=mail と記述します。デフォルトでは、各 PVE ユーザーフィールドは同じ名前の LDAP 属性で表されます。
- --tfa type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>].
-
二要素認証を使用してください。
- --type <ad | ldap | openid | pam | pve>.
-
レルムタイプ。
- --user_attr \S{2,}.
-
LDAPユーザー属性名
- --user_classes <string>(デフォルト = inetorgperson, posixaccount, person, user)
-
ユーザーのオブジェクトクラス。
- --username-claim <string>
-
一意のユーザー名を生成するために使用されるOpenIDクレーム。
- --verify <boolean>(デフォルト = 0)
-
サーバーのSSL証明書の確認
pveum realm delete <realm>
認証サーバーを削除します。
- <realm>: <文字列
-
認証ドメインID
pveum realm list [FORMAT_OPTIONS]。
認証ドメインインデックス。
pveum realm modify <realm> [OPTIONS] [オプション].
認証サーバーの設定を更新します。
- <realm>: <文字列
-
認証ドメインID
- --acr-values ^[^x00-xxx1F <>#"]*$.
-
認証サーバが認証要求に使用するよう要求される認証コンテキスト・クラス参照値 を指定します。
- --autocreate <boolean>(デフォルト = 0)
-
ユーザーが存在しない場合、自動的にユーザーを作成します。
- --base_dn <文字列
-
LDAPベースドメイン名
- --bind_dn <文字列
-
LDAPバインドドメイン名
- --capath <文字列>(デフォルト = /etc/ssl/certs)
-
CA 証明書ストアへのパス
- --大文字小文字を区別 <ブール値>(デフォルト = 1)
-
ユーザー名は大文字と小文字を区別します。
- --証明書 <文字列
-
クライアント証明書へのパス
- --認証キー <文字列
-
クライアント証明書キーへのパス
- --check-connection <boolean>(デフォルト = 0)
-
サーバーへのバインド接続を確認します。
- --クライアントID <文字列
-
OpenIDクライアントID
- --client-key <文字列
-
OpenIDクライアント・キー
- --コメント <文字列
-
説明
- --default <ブール値
-
デフォルトのレルムとして使用します。
- --削除 <文字列
-
削除したい設定のリスト。
- -ダイジェスト <文字列
-
現在のコンフィギュレーション・ファイルのダイジェストが異なる場合、変更を防止します。これは同時修正を防ぐために使用できます。
- --ドメイン
-
ADドメイン名
- --フィルタ <文字列
-
ユーザー同期用のLDAPフィルター。
- --group_classes <string>(default = groupOfNames, group, univentionGroup, ipausergroup)
-
グループのオブジェクトクラス。
- --group_dn <文字列
-
グループ同期用のLDAPベース・ドメイン名。設定されていない場合は、base_dnが使用されます。
- --グループフィルター <文字列
-
グループ同期用のLDAPフィルタ。
- --group_name_attr <文字列
-
グループ名を表すLDAP属性。設定されていない場合、または見つかった場合は、DN の最初の値が name として使用されます。
- --issuer-url <文字列
-
OpenID発行者URL
- --モード <ldap | ldap+starttls | ldaps>(デフォルト = ldap)
-
LDAPプロトコルモード。
- --パスワード <文字列
-
LDAP バインドパスワード。etc/pve/priv/realm/<REALM>.pw に格納されます。
- --ポート <整数> (1 - 65535)
-
サーバーポート
- --プロンプト (?:none|login|consent|select_account|S+)
-
認証サーバがエンドユーザに再認証と同意を求めるかどうかを指定します。
- --スコープ <文字列>(デフォルト = 電子メールプロファイル)
-
認可され返されるべきスコープ (ユーザの詳細) を指定します。
- --secure <ブール値
-
安全な LDAPS プロトコルを使用します。廃止: 代わりにmodeを使用してください。
- --サーバ1 <文字列
-
サーバーIPアドレス(またはDNS名)
- --サーバー2 <文字列
-
フォールバックサーバーのIPアドレス(またはDNS名)
- -sslバージョン <tlsv1 | tlsv1_1 | tlsv1_2 | tlsv1_3>.
-
LDAPS TLS/SSLのバージョン。1.2より古いバージョンを使用することは推奨されません!
- -sync-defaults-options [enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>] となります。
-
同期の動作に関するデフォルトのオプション。
- --sync_attributes \w+=[^,]+(,\s*\w+=[^,]+)*
-
どの LDAP 属性をどの PVE ユーザーフィールドにマッピングするかを指定するための key=value ペアのカンマ区切りリスト。例えば、LDAP 属性のmailを PVE のemail にマッピングするには、email=mail と記述します。デフォルトでは、各 PVE ユーザーフィールドは同じ名前の LDAP 属性で表されます。
- --tfa type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>].
-
二要素認証を使用してください。
- --user_attr \S{2,}.
-
LDAPユーザー属性名
- --user_classes <string>(デフォルト = inetorgperson, posixaccount, person, user)
-
ユーザーのオブジェクトクラス。
- --verify <boolean>(デフォルト = 0)
-
サーバーのSSL証明書の確認
pveum realm sync <realm> [OPTIONS] [オプション].
設定されたLDAPからuser.cfgにユーザまたはグループを同期します。注意: 同期されたグループはname-$realm という名前を持つので、上書きを防ぐためにそれらのグループが存在しないことを確認してください。
- <realm>: <文字列
-
認証ドメインID
- --ドライラン <ブール値>(デフォルト = 0)
-
設定されている場合、何も書きません。
- --enable-new <boolean>(デフォルト = 1)
-
新しく同期されたユーザーをすぐに有効にします。
- --full <ブール値
-
廃止: 代わりにremove-vanishedを使用してください。設定されている場合、真実のソースとしてLDAPディレクトリを使用し、同期から返されなかったユーザまたはグループを削除し、同期されたユーザのローカルで変更されたすべてのプロパティを削除します。設定されていない場合、同期されたデータに存在する情報のみが同期され、それ以外のものは削除または変更されません。
- --パージ <ブール値
-
廃止: 代わりにremove-vanishedを使用してください。同期中に設定から削除されたユーザまたはグループの ACL を削除します。
- --remove-vanished ([acl];[properties];[entry])|none(default = none)
-
セミコロンで区切られたリストで、同期中にユーザーやグループが消えたときに削除されます。aclは、ユーザー/グループが同期から返されなかったときにaclsを削除します。リストの代わりにnone(デフォルト)を指定することもできます。
- --スコープ <両方 | グループ | ユーザー
-
同期するものを選択します。
pveum role add <roleid> [OPTIONS] [オプション].
新しいロールを作成します。
- <roleid>: <文字列
-
説明なし
- --privs <文字列
-
説明なし
pveumロール削除 <ロールID
役割を削除します。
- <roleid>: <文字列
-
説明なし
pveumロールリスト [FORMAT_OPTIONS]。
役割インデックス
pveum role modify <roleid> [オプション].
既存のロールを更新します。
- <roleid>: <文字列
-
説明なし
- --append <ブール値
-
説明なし
必要なオプション:privs - --privs <文字列
-
説明なし
プベウム・ロールアド
pveum role add のエイリアス。
プベウム・ローデル
pveum role deleteのエイリアスです。
pveumロールモッド
pveum role modifyのエイリアス。
pveum ticket <ユーザー名> [オプション].
認証チケットを作成または検証します。
- <ユーザー名>: <文字列
-
ユーザー名
- --new-format <boolean>(デフォルト = 1)
-
このパラメータは無視され、1とみなされます。
- --otp <文字列
-
二要素認証用のワンタイムパスワード。
- --パス <文字列
-
チケットを確認し、ユーザがパスにアクセス権限を持っているかチェックします。
必要なオプション:privs - --privs <文字列
-
チケットを確認し、ユーザがパスにアクセス権限を持っているかチェックします。
必要なオプション:path - --realm <文字列
-
オプションで、このパラメータに realm を渡すことができます。通常、レルムは単にユーザ名 <username>@<relam> に追加されます。
- -tfa-チャレンジ <文字列
-
ユーザーが応答したい署名済みTFAチャレンジ文字列。
pveum user add <userid> [OPTIONS] [オプション].
新しいユーザーを作成します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- --コメント <文字列
-
説明なし
- --電子メール <文字列
-
説明なし
- --有効 <ブール値>(デフォルト = 1)
-
アカウントを有効にします(デフォルト)。アカウントを無効にするには、これを0に設定します。
- --有効期限 <整数> (0 - N)
-
アカウントの有効期限 (エポックからの秒数)。0は有効期限がないことを意味します。
- --名 <文字列
-
説明なし
- --グループ <文字列
-
説明なし
- --keys [0-9a-zA-Z!=]{0,4096}。
-
二要素認証(yubico)用のキー。
- --ラストネーム <文字列
-
説明なし
- --パスワード <文字列
-
初期パスワード
pveum ユーザー削除 <ユーザーID
ユーザーを削除します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
pveum ユーザーリスト [OPTIONS] [FORMAT_OPTIONS].
ユーザーインデックス
- --有効 <ブール値
-
enableプロパティのオプションフィルタ。
- --full <ブール値>(デフォルト = 0)
-
グループおよびトークン情報を含みます。
pveum user modify <userid> [OPTIONS] [オプション].
ユーザー設定を更新します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- --append <ブール値
-
説明なし
必要なオプション:グループ - --コメント <文字列
-
説明なし
- --電子メール <文字列
-
説明なし
- --有効 <ブール値>(デフォルト = 1)
-
アカウントを有効にします(デフォルト)。アカウントを無効にするには、これを0に設定します。
- --expire <整数> (0 - N)
-
アカウントの有効期限 (エポックからの秒数)。0は有効期限がないことを意味します。
- --名 <文字列
-
説明なし
- --グループ <文字列
-
説明なし
- --keys [0-9a-zA-Z!=]{0,4096}。
-
二要素認証(yubico)用のキー。
- --ラストネーム <文字列
-
説明なし
pveum user permissions [<userid>] [OPTIONS] [FORMAT_OPTIONS].
指定されたユーザ/トークンの有効なパーミッションを取得します。
- <userid>: (?^:^(?^:[^\s:/]+)\@(?^:[A-Za-z][A-Za-z0-9\.\-_]+)(?:!(?^:[A-Za-z][A-Za-z0-9\.\-_]+))?$)
-
ユーザーIDまたは完全なAPIトークンID
- --パス <文字列
-
ツリー全体ではなく、特定のパスだけをダンプします。
pveum user tfa delete <userid> [OPTIONS] [オプション].
ユーザーから TFA エントリを削除します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- --id <文字列
-
TFA ID。指定がない場合は、すべての TFA エントリが削除されます。
pveumユーザーtfaリスト [<ユーザーID>]。
TFAエントリー一覧。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
pveumユーザーtfaロック解除 <ユーザーID
ユーザーのTFA認証を解除します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
pveum user token add <userid> <tokenid> [OPTIONS] [FORMAT_OPTIONS].
特定のユーザー用に新しいAPIトークンを生成します。注意: APIトークンの値を返します。この値は後から取得できないため、保存しておく必要があります!
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- <tokenid>: (?^:[A-Za-z][A-Za-z0-9\.\-_]+)
-
ユーザー固有のトークン識別子。
- --コメント <文字列
-
説明なし
- --expire <integer> (0 - N)(デフォルト = user と同じ)
-
APIトークンの有効期限(エポックからの秒数)。0は有効期限なしを意味します。
- --privsep <ブール値>(デフォルト = 1)
-
個別のACL(デフォルト)でAPIトークンの権限を制限するか、対応するユーザーの全権限を与えます。
pveum user token delete <userid> <tokenid> [FORMAT_OPTIONS]。
特定のユーザーのAPIトークンを削除します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- <tokenid>: (?^:[A-Za-z][A-Za-z0-9\.\-_]+)
-
ユーザー固有のトークン識別子。
pveum ユーザー・トークン・リスト <ユーザーID> [FORMAT_OPTIONS].
ユーザー API トークンを取得します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
pveum user token modify <userid> <tokenid> [OPTIONS] [FORMAT_OPTIONS].
特定のユーザーのAPIトークンを更新します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- <tokenid>: (?^:[A-Za-z][A-Za-z0-9\.\-_]+)
-
ユーザー固有のトークン識別子。
- --コメント <文字列
-
説明なし
- --expire <integer> (0 - N)(デフォルト = user と同じ)
-
APIトークンの有効期限(エポックからの秒数)。0は有効期限なしを意味します。
- --privsep <ブール値>(デフォルト = 1)
-
個別のACL(デフォルト)でAPIトークンの権限を制限するか、対応するユーザーの全権限を与えます。
pveum user token permissions <userid> <tokenid> [OPTIONS] [FORMAT_OPTIONS].
与えられたトークンの有効なパーミッションを取得します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- <tokenid>: (?^:[A-Za-z][A-Za-z0-9\.\-_]+)
-
ユーザー固有のトークン識別子。
- --パス <文字列
-
ツリー全体ではなく、特定のパスだけをダンプします。
pveumユーザートークンの削除
pveum user token delete のエイリアス。
ユーザー追加
pveum user add のエイリアス。
ユーザー削除
pveum user delete のエイリアス。
pveum usermod
pveum user modify のエイリアス。
説明
Proxmox VEは、Linux PAM、統合Proxmox VE認証サーバ、LDAP、Microsoft Active Directory、OpenID Connectなど、複数の認証ソースをサポートしています。
すべてのオブジェクト(VM、ストレージ、ノードなど)に対してロールベースのユーザーと権限管理を使用することで、きめ細かなアクセスを定義できます。
ユーザー
Proxmox VE はユーザ属性を/etc/pve/user.cfg に保存します。 パスワードはここには保存されず、ユーザは後述する認証レルムに関連付けられます。 したがって、ユーザは内部的にはユーザ名とレルムによって<userid>@<realm> という形式で識別されることがよくあります。
このファイルの各ユーザー・エントリには、以下の情報が含まれています:
-
名前
-
姓
-
メールアドレス
-
団体会員
-
任意の有効期限
-
このユーザーに関するコメント
-
このユーザーが有効か無効か
-
オプションの二要素認証キー
|
|
ユーザーを無効化または削除した場合、または設定された有効期限が過去の場合、このユーザーは新しいセッションにログインしたり、新しいタスクを開始したりできなくなります。このユーザーによってすでに開始されているすべてのタスク(ターミナル・セッションなど)は、このようなイベントによって自動的に終了することはありません。 |
グループ
各ユーザーは複数のグループのメンバーになることができます。グループは、アクセス許可を整理するための好ましい方法です。個々のユーザーではなく、常にグループにアクセス許可を与えるべきです。そうすることで、よりメンテナンスしやすいアクセス制御リストを得ることができます。
API トークン
APIトークンを使用すると、別のシステム、ソフトウェア、またはAPIクライアントからREST APIのほとんどの部分にステートレスでアクセスできます。トークンは個々のユーザー用に生成することができ、アクセスの範囲と期間を制限するために個別の権限と有効期限を与えることができます。APIトークンが漏洩した場合、ユーザー自身を無効にすることなく、トークンを失効させることができます。
APIトークンには基本的に2つのタイプがあります:
-
権限の分離:トークンには ACL による明示的なアクセス権が必要です。 トークンの実効的なアクセス権は、ユーザー権限とトークン権限を交差させて計算されます。
-
完全な権限:トークンの権限は、関連付けられたユーザーの権限と同じです。
|
|
トークンの値は、トークンが生成されたときに一度だけ表示/返されます。後からAPI経由で再度取得することはできません! |
API トークンを使用するには、API リクエストの際に HTTP ヘッダAuthorizationにPVEAPIToken=USER@REALM!TOKENID=UUIDの形式で表示される値を設定するか、API クライアントのドキュメントを参照してください。
認証領域
Proxmox VEのユーザは、外部レルムに存在するユーザのカウンターパートに過ぎないので、レルムは/etc/pve/domains.cfgで設定する必要があります。 以下のレルム(認証方法)が利用可能です:
- Linux PAM 標準認証
-
Linux PAMは、システム全体のユーザー認証のためのフレームワークです。これらのユーザは、ホストシステム上でadduser などのコマンドを使用して作成します。PAM ユーザーが Proxmox VE ホストシステムに存在する場合、対応するエントリを Proxmox VE に追加して、これらのユーザーがシステムのユーザー名とパスワードでログインできるようにすることができます。
- Proxmox VE 認証サーバー
-
これは Unix ライクなパスワードストアで、ハッシュ化されたパスワードを/etc/pve/priv/shadow.cfg に保存します。パスワードは SHA-256 ハッシュアルゴリズムを使ってハッシュされます。これは、ユーザがProxmox VEの外部にアクセスする必要がない小規模な(あるいは中規模の)インストールに最も便利な領域です。この場合、ユーザはProxmox VEによって完全に管理され、GUIを介して自分のパスワードを変更することができます。
- ライトウェイトディレクトリアクセスプロトコル
-
LDAP (Lightweight Directory Access Protocol) は、ディレクトリサービスを使った認証のための、オープンでクロスプラットフォームなプロトコルです。OpenLDAP は、LDAP プロトコルの一般的なオープンソース実装です。
- Microsoft Active Directory (AD)
-
Microsoft Active Directory (AD)はWindowsドメインネットワーク用のディレクトリサービスで、Proxmox VEの認証レルムとしてサポートされています。認証プロトコルとしてLDAPをサポートしています。
- OpenID Connect
-
OpenID Connectは、OATH 2.0プロトコルの上にIDレイヤーとして実装されています。クライアントは、外部の認証サーバによって実行された認証に基づいて、ユーザの身元を確認することができます。
Linux PAM 標準認証
Linux PAM はホスト・システム・ユーザーに対応するため、ユーザーがログインを許可される各ノードにシステム・ユーザーが存在する必要があります。ユーザーは通常のシステムパスワードで認証します。このレルムはデフォルトで追加され、削除することはできません。設定可能な点では、管理者はレルムからのログインで二要素認証を要求したり、レルムをデフォルトの認証レルムとして設定したりすることができます。
Proxmox VE 認証サーバ
Proxmox VE認証サーバのレルムは、シンプルなUnixライクなパスワードストアです。 レルムはデフォルトで作成され、Linux PAMと同様に、利用可能な設定項目は、レルムのユーザに二要素認証を要求する機能と、ログイン時のデフォルトレルムとして設定する機能のみです。
他のProxmox VEレルムタイプとは異なり、ユーザは他のシステムに対して認証するのではなく、Proxmox VEを通じて作成および認証されます。したがって、このタイプのユーザーは作成時にパスワードを設定する必要があります。
LDAP
ユーザ認証に外部LDAPサーバを使用することもできます(OpenLDAPなど)。このレルム・タイプでは、ユーザはユーザ属性名(user_attr)フィールドで指定されたユーザ名属性を使用して、ベース・ドメイン名(base_dn)の下で検索されます。
サーバーとオプションのフォールバック・サーバーを設定し、SSLで接続を暗号化することができます。さらに、ディレクトリとグループに対してフィルタを設定することができます。フィルタにより、レルムの範囲をさらに制限することができます。
例えば、あるユーザーが次のようなLDIFデータセットで表現されているとします:
# user1 of People at ldap-test.com dn: uid=user1,ou=People,dc=ldap-test,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson uid: user1 cn:テストユーザー1 sn: Testers description:これは最初のテストユーザーです。
ベース・ドメイン名はou=People,dc=ldap-test,dc=comで、ユーザ属性はuidです。
Proxmox VE がユーザーを照会および認証する前に LDAP サーバーに認証 (バインド) する必要がある場合、/etc/pve/domains.cfg のbind_dnプロパティでバインド ドメイン名を構成できます。そのパスワードは、/etc/pve/priv/ldap/<realmname>.pw(例えば、/etc/pve/priv/ldap/my-ldap.pw) に格納する必要があります。このファイルには、生のパスワードを1行で記述します。
証明書を検証するには、capath を設定する必要があります。LDAPサーバのCA証明書を直接設定するか、信頼されたCA証明書を含むシステムパス(/etc/ssl/certs)を設定することができます。 さらに、verifyオプションを設定する必要があり、これはウェブインターフェイス上でも行うことができます。
LDAPサーバ・レルムの主な設定オプションは以下のとおりです:
-
レルム(realm):Proxmox VEユーザのレルム識別子
-
ベース・ドメイン名(base_dn):ユーザーを検索するディレクトリ
-
ユーザ属性名(user_attr):ユーザがログインするユーザ名を含むLDAP属性
-
サーバー(server1):LDAPディレクトリをホストするサーバー
-
予備サーバー(server2):プライマリサーバが到達不能な場合のフォールバックサーバアドレス(オプション
-
Port(ポート):LDAPサーバーがリッスンするポート
|
|
特定のユーザにLDAPサーバを使用した認証を許可するには、Proxmox VEサーバからそのレルムのユーザとして追加する必要があります。これは 同期によって自動的に実行できます。 |
Microsoft Active Directory (AD)
Microsoft ADをレルムとして設定するには、サーバアドレスと認証ドメインを指定する必要があります。Active Directoryは、オプションのフォールバックサーバ、ポート、SSL暗号化など、LDAPと同じプロパティのほとんどをサポートしています。 さらに、設定後、 同期操作によってユーザをProxmox VEに自動的に追加することができます。
LDAPと同様に、Proxmox VEがADサーバにバインドする前に認証が必要な場合は、バインド・ユーザ(bind_dn)プロパティを構成する必要があります。このプロパティは通常、Microsoft ADではデフォルトで必要です。
Microsoft Active Directoryの主な構成設定は以下のとおりです:
-
レルム(realm):Proxmox VEユーザのレルム識別子
-
ドメイン(domain):サーバーのADドメイン
-
サーバー(server1):サーバーのFQDNまたはIPアドレス
-
予備サーバー(server2):プライマリサーバが到達不能な場合のフォールバックサーバアドレス(オプション
-
Port(ポート):Microsoft ADサーバーがリッスンするポート。
|
|
Microsoft ADは通常、大文字と小文字を区別せずにユーザー名のような値をチェックします。Proxmox VEでも同じようにするには、Web UIでrealmを編集するか、CLIを使用して(realm IDでIDを変更する)、デフォルトの大文字小文字を区別するオプションを無効にします:pveum realm modify ID --case-sensitive 0 |
LDAP ベースの Realms の同期
LDAP ベースのレルム(LDAP & Microsoft Active Directory)のユーザーとグループを Proxmox VE に手動で追加するのではなく、自動的に同期することができます。 同期オプションには、Web インターフェイスのAuthenticationパネルの Add/Edit ウィンドウ、またはpveum realm add/modifyコマンドからアクセスできます。その後、GUI のAuthenticationパネルから、または以下のコマンドを使用して同期操作を実行できます:
pveum realm sync <realm>
ユーザとグループはクラスタ全体の構成ファイル/etc/pve/user.cfg に同期されます。
属性からプロパティへ
同期レスポンスにユーザ属性が含まれている場合、それらはuser.cfg内の一致するユーザ・プロパティに同期されます。例:firstnameまたはlastname。
属性の名前がProxmox VEのプロパティと一致しない場合は、sync_attributesオプションを使用して、コンフィグでカスタムフィールド間マップを設定できます。
このようなプロパティが消えた場合にどのように処理されるかは、後述の同期オプションで制御できます。
同期設定
LDAPベースのレルムを同期するための設定オプションは、[追加/編集]ウィンドウの[同期オプション]タブにあります。
設定オプションは以下の通りです:
-
バインド・ユーザー(bind_dn):ユーザとグループの問い合わせに使用する LDAP アカウントを指します。このアカウントは、必要なエントリすべてにアクセスできる必要があります。これが設定されている場合、検索はバインド経由で行われ、そうでない場合は匿名で行われます。ユーザは、例えば、cn=admin,dc=example,dc=comのように、完全なLDAP形式の識別名(DN)でなければなりません。
-
グループ名attr(group_name_attr):ユーザのグループを表します。user.cfgの通常の文字制限に従ったエントリのみが同期されます。グループは、名前の衝突を避けるために、名前に-$realmが付加された状態で同期されます。同期によって手動で作成したグループが上書きされないようにしてください。
-
ユーザー・クラス(user_classes):ユーザーに関連するオブジェクト・クラス。
-
グループ・クラス(group_classes):グループに関連するオブジェクト・クラス。
-
Eメール属性:LDAPベースのサーバでユーザの電子メールアドレスが指定されている場合、ここで関連する属性を設定することで、これらの電子メールアドレスも同期に含めることができます。これはコマンドラインから--sync_attributesパラメータを指定することで実現できます。
-
ユーザーフィルター(filter):特定のユーザーをターゲットとするフィルタオプションです。
-
グループ・フィルター(group_filter):特定のグループをターゲットとするフィルタオプション。
|
|
フィルタを使用すると、追加の一致基準を作成して、同期の範囲を絞り込 むことができます。使用可能な LDAP フィルタの種類とその使用方法については、ldap.com を参照してください。 |
同期オプション
これらのオプションは同期の前にパラメータとして設定するか、レルムオプションsync-defaults-options でデフォルトとして設定します。
同期の主なオプションは以下の通りです:
-
スコープ(範囲):同期するものの範囲。ユーザー、グループ、またはその両方を指定できます。
-
新規を有効にする(enable-new):設定すると、新しく同期されたユーザが有効になり、ログインできるようになります。デフォルトはtrueです。
-
Remove Vanished(remove-vanished):これはオプションのリストで、有効にすると、同期レスポンスから返されなかったときに削除されるかどうかを決定します。オプションは次のとおりです:
-
ACL(acl):同期応答で返されなかったユーザーとグループの ACL を削除します。多くの場合、Entry と一緒に使用します。
-
エントリ(entry):エントリ(entry):同期応答で返されなかったエントリ(ユーザーやグループなど)を削除します。
-
Properties(プロパティ):プロパティ(properties):シンク応答のユーザーがそれらの属性を含んでいないエントリのプロパティを削除します。こ れはすべてのプ ロパテ ィ を含み、 一度も同期に よ っ て設定 さ れていない も の も 含みます。こ れ ら は こ のオプシ ョ ンを有効に し て も保持 さ れます。
-
-
プレビュー(ドライラン):データはコンフィグに書き込まれません。どのユーザとグループがuser.cfgに同期されるかを確認したい場合に便利です。
予約文字
特定の文字は予約されており(RFC2253を参照)、適切にエスケープしないとDNの属性値で簡単に使用できません。
以下の文字はエスケープが必要です:
-
先頭または末尾にスペース( )
-
先頭に数字記号(#)
-
カンマ(,)
-
プラス記号(+)
-
ダブルクォート(")
-
スラッシュ(/)
-
角括弧(<>)
-
セミコロン(;)
-
等号(=)
こ の よ う な文字を DN で使用す る には、 属性値を ダブル ク ォーテーシ ョ ンで囲みます。 た と えば、 CN (共通名)Example, User を持つユーザ と バ イ ン ド す る には、bind_dn の値 と し てCN="Example, User",OU=people,DC=example,DC=comを用います。
これはbase_dn 属性、bind_dn 属性、group_dn属性に適用されます。
|
|
コロンとスラッシュはユーザー名の予約文字であるため、同期できません。 |
OpenID Connect
OpenID Connectの主な設定オプションは以下のとおりです:
-
発行者URL(issuer-url):ProxmoxはOpenID Connect Discoveryプロトコルを使用して、自動的に詳細を設定します。
暗号化されていないhttp://URL を使用することも可能ですが、暗号化されたhttps://接続を使用することを強くお勧めします。
-
レルム(realm):Proxmox VEユーザのレルム識別子
-
クライアントID(client-id): OpenIDクライアントID。
-
クライアント・キー(client-key):オプションの OpenID クライアント鍵。
-
ユーザーの自動作成(autocreate):ユーザが存在しない場合、自動的にユーザを作成します。認証はOpenIDサーバで行われますが、すべてのユーザはProxmox VEのユーザ設定にエントリが必要です。手動で追加するか、自動作成オプションを使用して新しいユーザを自動的に追加します。
-
ユーザー名クレーム(username-claim):一意なユーザ名(件名、ユーザ名、またはメールアドレス) を生成するために使用される OpenID claim。
ユーザー名のマッピング
OpenID Connectの仕様では、subjectという一意な属性(OpenID用語ではclaim)が定義されています。デフォルトでは、この属性の値を使ってProxmox VEのユーザ名を生成します。
残念なことに、ほとんどのOpenIDサーバはDGH76OKH34BNG3245SBのようなランダムな文字列を件名に使っているので、典型的なユーザ名はDGH76OKH34BNG3245SB@yourrealmのようになります。ユニークではありますが、人間がこのようなランダムな文字列を覚えておくのは難しいので、実際のユーザと関連付けるのはかなり不可能です。
username-claim設定では、ユーザー名のマッピングに他の属性を使用することができます。OpenID Connect サーバがその属性を提供し、一意性が保証されている場合はusernameを指定することを推奨します。
もう1つのオプションはemailを使うことで、こちらも人間が読めるユーザ名が得られます。繰り返しますが、サーバがこの属性の一意性を保証している場合にのみ、この設定を使用してください。
例
Google を使って OpenID レルムを作成する例です。client-idと --client-keyは、Google OpenIDの設定の値で置き換える必要があります。
pveum realm add myrealm1 --type openid --issuer-url https://accounts.google.com --client-id XXXX --client-key YYYY --username-claim email
上記のコマンドでは--username-claim email を使用しているため、Proxmox VE 側のユーザー名はexample.user@google.com@myrealm1 のようになります。
Keycloak(https://www.keycloak.org/)は、OpenID Connectをサポートするオープンソースのアイデンティティおよびアクセス管理ツールです。以下の例では、--issuer-urlと --client-idをあなたの情報で置き換える必要があります:
pveum realm add myrealm2 --type openid --issuer-url https://your.server:8080/realms/your-realm --client-id XXX --username-claim ユーザー名
username-claimユーザー名を使用すると、Proxmox VE側でexample.user@myrealm2のようなシンプルなユーザー名を使用できます。
|
|
ユーザーが(Keycloakサーバー上で)ユーザー名の設定を自分で編集できないようにする必要があります。 |
二要素認証
二要素認証を使用するには2つの方法があります:
これは、TOTP(Time-based One-Time Password) またはYubiKey OTP のいずれかの認証レルムによって要求されます。この場合、新しく作成されたユーザは、すぐに鍵を追加する必要があります。TOTPの場合、最初にログインできれば、後からTOTPを変更することも可能です。
あるいは、たとえレルムが2ファクタ認証を強制していなくても、ユーザは後から2ファクタ認証を選択することもできます。
利用可能なセカンドファクター
スマートフォンやセキュリティーキーを紛失してアカウントから永久にロックされる事態を避けるため、複数のセカンドファクターを設定することができます。
レルム強制 TOTP、YubiKey OTP に加え、以下の二要素認証が利用可能です:
-
ユーザーが設定するTOTP(時間ベースのワンタイムパスワード)。 共有シークレットと現在時刻から導き出される短いコードで、30秒ごとに変更されます。
-
WebAuthn(Web Authentication) 認証の一般的な標準。コンピュータやスマートフォンのハードウェアキーやTPM(Trusted Platform Module)など、さまざまなセキュリティデバイスによって実装されます。
-
シングルユースのリカバリーキー。プリントアウトして安全な場所に施錠するか、電子保管庫にデジタル保存する必要があるキーのリスト。各キーは1回のみ使用できます。他のすべてのセカンドファクターが紛失または破損した場合でも、ロックアウトされないようにするのに最適なキーです。
WebAuthn がサポートされる前は、U2F はユーザーが設定できました。既存のU2Fファクターは引き続き使用できますが、サーバー上で設定された後は、WebAuthnに切り替えることをお勧めします。
レルム強制二要素認証
これは、認証レルムを追加または編集する際に、TFAドロップダウン・ボックスで利用可能な方法の1つを選択することで行うことができます。 レルムがTFAを有効にすると、それが要件となり、TFAが設定されたユーザのみがログインできるようになります。
現在、2つの方法があります:
- タイムベースOATH(TOTP)
-
これは標準的な HMAC-SHA1 アルゴリズムを使用し、現在時刻はユーザーが設定したキーでハッシュ化されます。時間ステップとパスワードの長さのパラメータは設定可能です。
ユーザーは複数のキーを(スペースで区切って)設定することができ、キーはBase32(RFC3548)または16進数表記で指定できます。
Proxmox VEは、oathtoolコマンドラインツールやAndroid Google Authenticator、FreeOTP、andOTPなどの様々なOTPツールで直接使用できるBase32記法のランダムキーを出力するキー生成ツール(oathkeygen)を提供しています。
- YubiKey OTP
-
YubiKeyで認証を行うには、Yubico API ID、API KEY、認証サーバURLが設定されており、ユーザがYubiKeyを持っている必要があります。YubiKeyからキーIDを取得するには、YubiKeyをUSBで接続した後、一度YubiKeyを起動し、入力されたパスワードの最初の12文字をユーザーのキーIDsフィールドにコピーします。
YubiCloudを使用する方法、または独自の認証サーバをホストする方法については、YubiKey OTPのドキュメントを参照してください。
二要素認証の制限とロックアウト
第二の要因は、パスワードが何らかの形で漏れたり推測されたりした場合に、ユーザーを保護するためのものです。しかし、いくつかの要素は総当たりで破られる可能性があります。このため、第2要素によるログインに何度も失敗すると、ユーザーはロックアウトされます。
TOTPの場合、8回失敗すると、ユーザーのTOTPファクターは無効になります。回復キーでログインすると解除されます。TOTP が唯一の利用可能な要素であった場合、管理者の介入が必要であり、ユーザに直ちにパスワードの変更を要求することが強く推奨されます。
FIDO2/Webauthnとリカバリキーはブルートフォースアタックの影響を受けにくいため、リミットは高くなりますが(100回)、それを超えるとすべてのセカンドファクターが1時間ブロックされます。
管理者は、UIのユーザーリストまたはコマンドラインから、いつでもユーザーの二要素認証を解除することができます:
pveum ユーザー tfa ロック解除 joe@pve
ユーザーが設定した TOTP 認証
ユーザは、ログイン時にTOTPまたはWebAuthnを第二要素として有効にするかどうかを、ユーザ一覧のTFAボタンから選択できます (レルムがYubiKey OTP を強制している場合を除く)。
ユーザーはいつでも1回限りのリカバリキーを追加して使用することができます。
TFAウィンドウを開くと、TOTP認証を設定するためのダイアログが表示されます。Secret」フィールドには鍵を入力します。鍵は「Randomize」ボタンでランダムに生成することができます。ほとんどのTOTPアプリは、発行者名と対応するOTP値を表示します。ユーザ名はTOTPアプリの QR コードにも含まれます。
キーを生成すると、FreeOTP などのほとんどの OTP アプリで使用できる QR コードが表示されます。その後、ユーザーは、現在のユーザーパスワード(root としてログインしている場合を除く)と、TOTPキーを正しく使用できることを、現在のOTP値を検証コードフィールドに入力して適用ボタンを押すことで確認する必要があります。
TOTP
サーバーの設定は不要です。スマートフォンにTOTPアプリ(例えばFreeOTP)をインストールし、Proxmox VEのウェブインターフェースを使用してTOTPファクターを追加するだけです。
WebAuthn
WebAuthnを動作させるには、2つのものが必要です:
-
信頼できる HTTPS 証明書 (Let's Encrypt を使用するなど)。 信頼できない証明書でもおそらく動作しますが、ブラウザによっては信頼できない証明書を使用すると警告が表示されたり、WebAuthn の操作が拒否されたりすることがあります。
-
WebAuthn 設定を設定します(Proxmox VE ウェブインターフェースのDatacenter → Options → WebAuthn Settingsを参照)。これはほとんどのセットアップで自動入力できます。
これらの両方の要件を満たすと、[Datacenter] → [Permissions] → [Two Factor] の[Two Factor]パネルで WebAuthn 設定を追加できます。
サーバーサイド Webauthn 設定
|
|
WebAuthn の設定を変更すると、既存のすべてのWebAuthn登録が使用できなくなる可能性があります! |
これは/etc/pve/datacenter.cfgで行います。例えば
webauthn: rp=mypve.example.com,origin=https://mypve.example.com:8006,id=mypve.example.com
サーバー側 U2F 設定
|
|
代わりにWebAuthnを使用することをお勧めします。 |
ユーザーがU2F認証を使用できるようにするには、有効なSSL証明書を持つ有効なドメインを使用する必要がある場合があります。そうでない場合、ブラウザによっては警告が表示されたり、U2Fの使用を完全に拒否したりする場合があります。最初に、AppId
[AppIdhttps://developers.yubico.com/U2F/App_ID.html]
を設定する必要があります。
|
|
AppIdを変更すると、既存のすべてのU2F登録が使用できなくなります! |
これは/etc/pve/datacenter.cfgで行います。例えば
u2f: appid=https://mypve.example.com:8006
1つのノードの場合、AppIdは単純にウェブインターフェースのアドレスで、ブラウザで使用されているものと全く同じで、上記のようにhttps://、ポートも含みます。ブラウザによっては、AppIdのマッチングが他のブラウザよりも厳しい場合があることに注意してください。
複数のノードを使用する場合、appid.json
[Multi-facet apps:https://developers.yubico.com/U2F/App_ID.html]
ファイルを提供する別のhttpsサーバーを用意するのが、ほとんどのブラウザと互換性があるようです。すべてのノードが同じトップレベルドメインのサブドメインを使用している場合、AppId として TLD を使用すれば十分かもしれません。ただし、ブラウザによってはこれを受け入れない場合があることに注意してください。
|
|
AppIdが正しくないと通常はエラーが発生しますが、特にChromiumでサブドメイン経由でアクセスされるノードにトップレベルドメインのAppIdを使用している場合、エラーが発生しないことがあります。このため、後でAppIdを変更すると既存のU2F登録が使用できなくなるため、複数のブラウザで設定をテストすることをお勧めします。 |
パーミッション管理
ユーザがアクション(VMのコンフィギュレーションの一部を一覧表示、変更、削除など)を実行するには、そのユーザに適切なパーミッションが必要です。
Proxmox VEは、ロールおよびパスベースの権限管理システムを使用しています。パーミッションテーブルのエントリは、オブジェクトや パスにアクセスする際に、ユーザー、グループ、トークンが特定の役割を担うことを許可します。つまり、アクセスルールは(パス、ユーザー、ロール)、(パス、グループ、ロール)、(パス、トークン、ロール)のトリプルとして表すことができます。
役割
ロールは単に権限のリストです。Proxmox VEには定義済みのロールが多数用意されており、ほとんどの要件を満たすことができます。
-
管理者:すべての権限があります。
-
NoAccess: 権限を持たない (アクセスを禁止するために使用)
-
PVEAdmin:ほとんどのタスクを実行できますが、システム設定(Sys.PowerMgmt、Sys.Modify、Realm.Allocate)やパーミッション(Permissions.Modify)を変更する権限はありません。
-
PVEAuditor: 読み取り専用
-
PVEDatastoreAdmin: バックアップ領域とテンプレートの作成と割り当て
-
PVEDatastoreUser: バックアップ領域の割り当てとストレージの表示
-
PVEMappingAdmin: リソースマッピングの管理
-
PVEMappingUser: リソースマッピングの表示と使用
-
PVEPoolAdmin: プールの割り当て
-
PVEPoolUser: プールを見る
-
PVESDNAdmin: SDN コンフィギュレーションの管理
-
PVESDNUser: ブリッジ/ネットへのアクセス
-
PVESysAdmin: 監査、システムコンソール、システムログ
-
PVETemplateUser: テンプレートの表示とクローン
-
PVEUserAdmin: ユーザーの管理
-
PVEVMAdmin: VM を完全に管理します。
-
PVEVMUser:表示、バックアップ、CD-ROM設定、VMコンソール、VM電源管理
GUIで定義済みのロール一式を見ることができます。
GUIまたはコマンドラインから新しいロールを追加できます。
GUIからDatacenterの Permissions → Rolesタブに移動し、Createボタンをクリックします。そこでロール名を設定し、Privilegesドロップダウンメニューから必要な権限を選択できます。
コマンドラインからロールを追加するには、例えばpveumCLIツールを使用します:
pveum role add VM_Power-only --privs"VM.PowerMgmt VM.Console"pveum role add Sys_Power-only --privs"Sys.PowerMgmt Sys.Console"
|
|
PVEで始まるロールは常に組み込みのものであり、カスタムロールはこの予約接頭辞を使用することはできません。 |
特典
権限とは、特定のアクションを実行する権利のことです。管理を簡単にするために、権限のリストはロールにグループ化されます。権限はロールの一部でなければユーザやパスに直接割り当てることができないことに注意してください。
現在、以下の特権をサポートしています:
- ノード / システム関連権限
-
-
Group.Allocate:グループの作成/変更/削除
-
Mapping.Audit:リソースマッピングの表示
-
Mapping.Modify:リソースマッピングの管理
-
Mapping.Use:リソースマッピングの使用
-
Permissions.Modify:アクセス許可の変更
-
Pool.Allocate:プールの作成/変更/削除
-
Pool.Audit:プールの表示
-
Realm.AllocateUser: ユーザーをレルムに割り当てる
-
Realm.Allocate: 認証レルムの作成/変更/削除
-
SDN.Allocate: SDNコンフィギュレーションの管理
-
SDN.Audit:SDNコンフィギュレーションの表示
-
Sys.Audit:ノードステータス/設定、Corosyncクラスタ設定、HA設定の表示
-
Sys.Console: ノードへのコンソールアクセス
-
Sys.Incoming:他のクラスタからの受信データストリームを許可(実験的)
-
Sys.Modify: ノード・ネットワーク・パラメータの作成/変更/削除
-
Sys.PowerMgmt: ノードの電源管理 (スタート、ストップ、リセット、シャットダウンなど)
-
Sys.Syslog: syslogの表示
-
User.Modify:ユーザーアクセスと詳細の作成/変更/削除。
-
- 仮想マシン関連権限
-
-
SDN.Use: SDN ネットワークとローカルネットワークのブリッジにアクセスします。
-
VM.Allocate:サーバー上のVMの作成/削除
-
VM.Audit:VMコンフィグを表示
-
VM.Backup:VMのバックアップ/リストア
-
VM.Clone: VMのクローン/コピー
-
VM.Config.CDROM: CD-ROM の取り出し/交換
-
VM.Config.CPU: CPU設定の変更
-
VM.Config.Cloudinit: クラウドイットパラメータの変更
-
VM.Config.Disk: ディスクの追加/変更/削除
-
VM.Config.HWType: エミュレートされたハードウェアタイプを変更します。
-
VM.Config.Memory: メモリ設定の変更
-
VM.Config.Network: ネットワークデバイスの追加/変更/削除
-
VM.Config.Options:その他のVM設定を変更します。
-
VM.Console: VMへのコンソールアクセス
-
VM.Migrate:クラスタ上の代替サーバにVMを移行
-
VM.Monitor:VMモニター(kvm)へのアクセス
-
VM.PowerMgmt: 電源管理 (スタート、ストップ、リセット、シャットダウンなど)
-
VM.Snapshot.Rollback:VMをスナップショットの1つにロールバックします。
-
VM.Snapshot: VMスナップショットの作成/削除
-
- ストレージ関連の権限
-
-
Datastore.Allocate: データストアの作成/変更/削除とボリュームの削除
-
Datastore.AllocateSpace:データストアに領域を割り当てる
-
Datastore.AllocateTemplate: テンプレートと ISO イメージの割り当て/アップロード
-
Datastore.Audit:データストアの表示/閲覧
-
|
|
Permissions.Modifyと Sys.Modifyの両方は、危険または機密であるシステムとその構成の側面を変更することができるため、慎重に扱う必要があります。 |
|
|
以下の継承に関するセクションを注意深く読んで、割り当てられたロール(およびその権限)がACLツリーに沿ってどのように伝搬するかを理解してください。 |
オブジェクトとパス
アクセス許可は、仮想マシン、ストレージ、リソースプールなどのオブジェクトに割り当てられます。 ファイルシステムのようなパスを使用して、これらのオブジェクトにアクセスします。これらのパスは自然なツリーを形成し、上位レベル(より短いパス)のパーミッションは、オプションでこの階層内に伝搬することができます。
パスはテンプレート化できます。API 呼び出しがテンプレート化されたパスのパーミッションを必要とする場合、パスには API 呼び出しのパラメータへの参照が含まれることがあります。こ れ ら の参照は中かっ こ で指定 し ます。一部のパラメータは、APIコールのURIから暗黙的に取得されます。例えば、/nodes/mynode/status を呼び出すときのパーミッションパス/nodes/{node}は、/nodes/mynode のパーミッションを必要とし、/access/aclへの PUT 要求のパス{path}は、メソッドのパスパラメータを参照します。
いくつか例を挙げましょう:
-
/ノード/{ノード}:Proxmox VE サーバマシンへのアクセス
-
/vms:すべてのVMをカバー
-
/vms/{vmid}です:特定の VM へのアクセス
-
/storage/{storeid}:特定のストレージへのアクセス
-
/pool/{プール名}:特定のプールに含まれるリソースへのアクセス
-
/アクセス/グループグループ管理
-
/access/realms/{realmid}:レルムへの管理者アクセス
相続
前述したように、オブジェクトのパスはファイルシステムのようなツリーを形成し、パーミッションはそのツリーの下のオブジェクトに継承されます(デフォルトではpropagateフラグが設定されています)。以下の継承ルールを使用します:
-
個人ユーザーに対するパーミッションは、常にグループパーミッションに取って代わります。
-
グループに対するパーミッションは、ユーザーがそのグループのメンバーである場合に適用されます。
-
より深いレベルのパーミッションは、上位レベルから継承されたものを置き換えます。
-
NoAccessは、指定されたパス上の他のすべてのロールをキャンセルします。
さらに、権限分離されたトークンは、関連するユーザーが持っていないパーミッションを、任意のパス上で持つことはできません。
プール
プールを使用すると、仮想マシンとデータストアのセットをグループ化できます。そして、プール(/pool/{poolid}) にパーミッションを設定するだけで、そのパーミッションはすべてのプールメンバーに継承されます。これは、アクセス制御を簡素化する素晴らしい方法です。
どのパーミッションが必要ですか?
必要なAPI権限は個々のメソッドごとに文書化されており、https://pve.proxmox.com/pve-docs/api-viewer/。
パーミッションはリストとして指定され、ロジックとアクセスチェック関数のツリーとして解釈できます:
- ["および", <subtests>...]および["or", <subtests>...] 。
-
現在のリストの各要素(and)またはそれ以上の要素(any(or))が真でなければなりません。
- ["perm", <path>, [ <privileges>... ], <options>...]] 。
-
パスはテンプレート化されたパラメータです(「オブジェクトとパス」参照)。列挙 さ れてい る 権限のすべて (またはanyオプシ ョ ンが用い ら れてい る 場合はいずれか) が、 指定 さ れたパス上で許 さ れてい る 必要があ り ます。require-paramオプシ ョ ンが指定 さ れてい る と き は、 その API 呼び出 し の ス キーマがそれ以外にはそのパラ メ タ をオプシ ョ ナル と し て リ ス ト し てい る と き で も 、 その指定 さ れたパ ラ メ タ は必須です。
- [userid-group", [ <privileges>... ], <options>... ]。
-
呼び出し元は、/access/groupsにリストされた特権のいずれかを持っていなければなりません。さらに、groups_paramオプションが設定されているかどうかによって、2つのチェックが可能です:
-
groups_paramが設定されています:APIコールに非オプションのgroupsパラメータがあり、呼び出し元がリストされたすべてのグループに対してリストされた特権のいずれかを持っている必要があります。
-
groups_paramが設定されていません:useridパラメータで渡されたユーザは、呼び出し元が(/access/groups/<group>パス経由で)リストされた権限のいずれかを持つグループに存在し、そのグループの一部でなければなりません。
-
- [userid-param", "self"]。
-
APIコールのuseridパラメータに提供される値は、アクションを実行するユーザーを参照する必要があります(通常、昇格権限を持っていなくても、ユーザーが自分自身に対してアクションを実行できるようにするために、orと組み合わせて使用されます)。
- ["userid-param", "Realm.AllocateUser"]。
-
ユーザはRealm.AllocateUser で /access/realm/<realm> にアクセスする必要があります。ユーザ ID は<username>@<realm> の形式で渡されますので、 レルムに関連付けるためにユーザが存在する必要はないことに注意してください。
- ["perm-modify","<path>"]。
-
パスはテンプレート化されたパラメータです(「オブジェクトとパス」を参照)。ユーザは、Permissions.Modify特権か、パスによっては以下の特権で代用することができます:
-
/storage/...: 'Datastore.Allocate` が必要です。
-
/vms/...: 'VM.Allocate` が必要です。
-
/pool/...: 'Pool.Allocate` が必要です。
パスが空の場合は、/accessの Permissions.Modifyが必要です。
ユーザーがPermissions.Modify権限を持っていない場合、指定されたパス上の自分の権限のサブセットのみを委譲することができます(例えば、PVEVMAdminを持つユーザーはPVEVMUserを委譲することはできますが、PVEAdminを委譲することはできません)。
-
コマンドラインツール
ほとんどのユーザーは GUI を使ってユーザーを管理します。しかし、pveum("ProxmoxVE User Manager"の略)と呼ばれるフル機能のコマンドラインツールもあります。Proxmox VEのコマンドラインツールはすべてAPIのラッパーなので、REST APIからこれらの機能にアクセスすることもできます。
以下は簡単な使用例です。ヘルプを表示するには
はげ
または (特定のコマンドに関する詳細なヘルプを表示するには)
pveumヘルプユーザー追加新しいユーザーを作成します:
pveum user add testuser@pve -comment"ただのテスト"パスワードを設定または変更します(すべてのレルムでサポートされているわけではありません):
pveum passwd testuser@pve
ユーザーを無効にします:
pveum user modify testuser@pve -enable0新しいグループを作成します:
pveumグループ追加テストグループ
新しいロールを作成します:
pveum role add PVE_Power-only -privs"VM.PowerMgmt VM.Console"実例
管理者グループ
管理者が、(rootアカウントを使わずに)完全な管理者権限を持つユーザーグループを作りたいと思うことはあり得ます。
そのためには、まずグループを定義します:
pveum group add admin -comment"システム管理者"次に役割を割り当てます:
pveum acl modify/-group admin -role 管理者最後に、新しい管理者グループにユーザーを追加します:
pveum user modify testuser@pve -group admin
監査役
PVEAuditorロールをユーザーまたはグループに割り当てることで、ユーザーに読み取り専用アクセス権を与えることができます。
例 1: ユーザjoe@pveにすべてを表示することを許可します。
pveum acl modify/-user joe@pve -role PVEAuditor例 2: ユーザjoe@pveにすべての仮想マシンを表示できるようにします。
pveum acl modify /vms -user joe@pve -role PVEAuditor
ユーザー管理の委任
ユーザ管理をユーザjoe@pveに委譲したい場合は、次のようにします:
pveum acl modify /access -user joe@pve -role PVEUserAdmin
ユーザjoe@pveはユーザの追加と削除、パスワードなどのユーザ属性の変更ができるようになりました。これは非常に強力なロールであり、選択されたレルムとグループに制限したい場合がほとんどでしょう。以下の例では、joe@pveはレルムpve内のユーザを変更することができます:
pveum acl modify /access/realm/pve -user joe@pve -role PVEUserAdmin pveum acl modify /access/groups/customers -user joe@pve -role PVEUserAdmin
|
|
そのユーザーは他のユーザーを追加することができますが、そのユーザーがcustomersグループのメンバーであり、pveレルム内にいる場合に限られます。 |
モニタリング用限定APIトークン
APIトークンの権限は、常に対応するユーザの権限のサブセットです。つまり、APIトークンを使用して、バックユーザが権限を持たないタスクを実行することはできません。このセクションでは、トークン所有者の権限をさらに制限するために、別の権限を持つAPIトークンを使用する方法を示します。
すべてのVMで、ユーザーjoe@pveにロールPVEVMAdminを与えます:
pveum acl modify /vms -user joe@pve -role PVEVMAdmin
別の権限を持つ新しいAPIトークンを追加します。このAPIトークンは、VM情報の表示のみ許可されます(監視目的など):
pveum user token add joe@pve monitoring -privsep1pveum acl modify /vms -token'joe@pve!monitoring'-role PVEAuditor
ユーザーとトークンの権限を確認します:
pveum ユーザー権限 joe@pve pveum ユーザー・トークン権限 joe@pve モニタリング
リソースプール
通常、企業はいくつかの小さな部門に分かれており、それぞれの部門にリソースを割り当てたり、管理タスクを委任したりするのが一般的です。ここでは、ソフトウェア開発部門のためのプールを設定したいとします。まず、グループを作成します:
pveum group add developers -コメント"Our software developers"次に、そのグループのメンバーである新しいユーザーを作成します:
pveum user add developer1@pve -group developers -password
|
|
password "パラメーターはパスワードの入力を要求します。 |
そして、開発部門が使用するリソース・プールを作成します:
pveum pool add dev-pool --comment"IT開発プール"最後に、そのプールに権限を割り当てることができます:
pveum acl modify/pool/dev-pool/-group developers -role PVEAdmin当社のソフトウェア開発者は、そのプールに割り当てられたリソースを管理できるようになりました。
著作権および免責事項
著作権 © 2007-2022 Proxmox Server Solutions GmbH
このプログラムはフリー・ソフトウェアです。あなたは、Free Software Foundationによって発行されたGNU Affero General Public Licenseのバージョン3、またはそれ以降のバージョンのいずれかに従って、このプログラムを再配布したり、変更したりすることができます。
このプログラムは有用であることを期待して配布されていますが、商品性や特定の目的への適合性についての暗黙の保証もなく、いかなる保証もありません。詳細はGNU Affero General Public Licenseをご覧ください。
あなたはこのプログラムとともにGNU Affero General Public Licenseのコピーを受け取っているはずです。 そうでない場合は、https://www.gnu.org/licenses/をご覧ください。



