Virtual I/O Server での役割ベースのアクセス制御の使用
Virtual I/O Server バージョン 2.2以降では、システム管理者は、役割ベースのアクセス制御 (RBAC) を使用して、組織内のジョブ機能に基づいて役割を定義できます。
システム管理者は、役割ベースのアクセス制御 (RBAC) を使用して、 Virtual I/O Serverでユーザーの役割を定義できます。 役割は、割り当てられたユーザーに対して許可あるいは権限のセットを付与します。 このように、ユーザーは付与されたアクセス権限に従って、特定のシステム機能のセットのみを実行することができます。 例えば、システム管理者がユーザー管理コマンドへのアクセス権限を持つ役割 UserManagement を作成し、この役割をユーザーに割り当てると、そのユーザーはシステム上のユーザーを管理することができますが、それ以上のアクセス権限はありません。
Virtual I/O Server で役割ベースのアクセス制御を使用する利点は、以下のとおりです。
- システム管理機能の分割
- ユーザーに必要なアクセス権限のみを付与することによるセキュリティーの向上
- 一貫したシステム管理およびアクセス制御の実装と強化
- システム機能の容易な管理および監査
承認
Virtual I/O Server は、 AIX® オペレーティング・システムの権限を緊密にエミュレートする権限を作成します。 Virtual I/O Server は、 AIX オペレーティング・システムの許可を厳密にエミュレートする許可を作成します。 許可は命名規則および記述をエミュレートしますが、 Virtual I/O Server 固有の要件にのみ適用されます。 デフォルトでは、 padmin ユーザーには、 Virtual I/O Server上のすべての権限が付与され、すべてのコマンドを実行できます。 その他のタイプのユーザー (mkuser コマンドを使用して作成されたユーザー) は、そのユーザーのコマンド実行許可を保持します。
mkauth コマンドは、権限データベース内に新しいユーザー定義の権限を作成します。 auth パラメーターでドット (.) を使用することで権限の階層を作成し、ParentAuth.SubParentAuth.SubSubParentAuth... のような形式の権限を作成することができます。 auth パラメーターのすべての親エレメントは、権限が作成される前に権限データベースに存在している必要があります。 権限を作成するために使用できる親エレメントの最大数は、8 個です。
Attribute=Value パラメーターを使用して権限を作成する際に、権限属性を設定することができます。 作成するすべての権限には、id 権限属性の値が割り当てられている必要があります。 mkauth コマンドを使用して id 属性を指定しない場合、コマンドは自動的に権限の固有 ID を生成します。 ID を指定する場合は、その値は 15000 より大きな固有の値でなければなりません。 ID 1 から 15000 は、システム定義された権限用に予約済みです。
AIX オペレーティング・システムとは異なり、ユーザーはすべての Virtual I/O Server コマンドに対して許可を作成することはできません。 AIX オペレーティング・システムでは、許可ユーザーはすべてのコマンドに対して許可の階層を作成できます。 ただし、 Virtual I/O Serverでは、ユーザーが所有するコマンドまたはスクリプトに対してのみ許可を作成できます。 vios. または aix. から始まる権限は、システム定義の権限であると見なされるため、ユーザーが作成することはできません。 そのため、ユーザーはこれらの権限にどのような階層も追加することはできません。
ユーザーは、すべての Virtual I/O Server コマンドに対して許可を作成することはできません。 Virtual I/O Serverでは、ユーザーが所有するコマンドまたはスクリプトに対してのみ許可を作成できます。 vios. から始まる権限は、システム定義の権限であると見なされるため、ユーザーが作成することはできません。 そのため、ユーザーはこれらの権限にどのような階層も追加することはできません。
権限の名前は、ダッシュ (-)、正符号 (+)、アットマーク (@)、あるいはチルド (~) から始めることはできません。また、スペース、タブ、あるいは改行文字を含むこともできません。 権限名として ALL、default 、ALLOW_OWNER、ALLOW_GROUP、ALLOW_ALL の各キーワード、またはアスタリスク (*) を使用することはできません。 権限のストリングに以下の文字を使用してはいけません。
- : (コロン)
- " (引用符)
- # (番号記号)
- , (コンマ)
- = (等号)
- \ (円記号)
- / (スラッシュ)
- ? (疑問符)
- ' (単一引用符)
- ` (バッククォート)
以下の表に、 Virtual I/O Server コマンドに対応する許可をリストします。 vios と後続の子権限 (例えば、vios と vios.device) は使用されません。 親権限あるいは後続の子権限 (例えば、vios または vios.device) のいずれかを持つ役割がユーザーに付与されている場合、そのユーザーはすべての後続の子権限とその関連コマンドに対してアクセス権限を持ちます。 例えば、権限 vios.device を持つ役割は、すべての vios.device.config および vios.device.manage 権限とその関連コマンドに対するアクセス権限をユーザーに付与します。
| コマンド | コマンド・オプション | 許可 |
|---|---|---|
| activatevg | すべて | vios.lvm.manage.varyon |
| alert | すべて | vios.system.cluster.alert |
| alt_root_vg | すべて | vios.lvm.change.altrootvg |
| artexdiff | すべて | vios.system.rtexpert.diff |
| artexget | すべて | vios.system.rtexpert.get |
| artexlist | すべて | vios.system.rtexpert.list |
| artexmerge | すべて | vios.system.rtexpert.merge |
| artexset | すべて | vios.system.rtexpert.set |
| backup | すべて | vios.fs.backup |
| backupios | すべて | vios.install.backup |
| bootlist | すべて | vios.install.bootlist |
| cattracerpt | すべて | vios.system.trace.format |
| cfgassist | すべて | vios.security.cfgassist |
| cfgdev | すべて | vios.device.config |
| cfglnagg | すべて | vios.network.config.lnagg |
| cfgnamesrv | すべて | vios.system.dns |
| cfgsvc | すべて | vios.system.config.agent |
| chauth | すべて | vios.security.auth.change |
| chbdsp | すべて | vios.device.manage.backing.change |
| chdate | すべて | vios.system.config.date.change |
| chdev | すべて | vios.device.manage.change |
| checkfs | すべて | vios.fs.check |
| chedition | すべて | vios.system.edition |
| chkdev | すべて | vios.device.manage.check |
| chlang | すべて | vios.system.config.locale |
| chlv | すべて | vios.lvm.manage.change |
| chpath | すべて | vios.device.manage.path.change |
| chrep | すべて | vios.device.manage.repos.change |
| chrole | すべて | vios.security.role.change |
| chsp | すべて | vios.device.manage.spool.change |
| chtcpip | すべて | vios.network.tcpip.change |
| chuser | すべて | vios.security.user.change |
| chvg | すべて | vios.lvm.manage.change |
| chvlog | すべて | vios.device.manage.vlog.change |
| chvlrepo | すべて | vios.device.manage.vlrepo.change |
| chvopt | すべて | vios.device.manage.optical.change |
| cl_snmp | すべて | vios.security.manage.snmp.query |
| cleandisk | すべて | vios.system.cluster.change |
| cluster | すべて | vios.system.cluster.create |
| cplv | すべて | vios.lvm.manage.copy |
| cpvdi | すべて | vios.lvm.manage.copy |
| deactivatevg | すべて | vios.lvm.manage.varyoff |
| diagmenu | すべて | vios.system.diagnostics |
| dsmc | すべて | vios.system.manage.tsm |
| entstat | すべて | vios.network.stat.ent |
| errlog | -rm | vios.system.log |
| その他 | vios.system.log.view | |
| exportvg | すべて | vios.lvm.manage.export |
| extendlv | すべて | vios.lvm.manage.extend |
| extendvg | すべて | vios.lvm.manage.extend |
| failgrp | -create、-modify、 -remove | vios.device.manage.spool.change または vios.system.cluster.pool.modify |
| fcstat | すべて | vios.network.stat.fc |
| fsck | すべて | vios.fs.check |
| hostmap | すべて | vios.system.config.address |
| hostname | すべて | vios.system.config.hostname |
| importvg | すべて | vios.lvm.manage.import |
| invscout | すべて | vios.system.firmware.scout |
| ioslevel | すべて | vios.system.level |
| ldapadd | すべて | vios.security.manage.ldap.add |
| ldapsearch | すべて | vios.security.manage.ldap.search |
| ldfware | すべて | vios.system.firmware.load |
| license | -受け入れる | vios.system.license |
| その他 | vios.system.license.view | |
| loadopt | すべて | vios.device.manage.optical.load |
| loginmsg | すべて | vios.security.user.login.msg |
| lsauth | すべて | vios.security.auth.list |
| lsdev | すべて | vios.device.manage.list |
| lsfailedlogin | すべて | vios.security.user.login.fail |
| lsfware | すべて | vios.system.firmware.list |
| lsgcl | すべて | vios.security.log.list |
| lslparinfo | すべて | vios.system.lpar.list |
| lslv | すべて | vios.lvm.manage.list |
| lsmap | すべて | vios.device.manage.map.phyvirt |
| lsnetsvc | すべて | vios.network.service.list |
| lsnports | すべて | vios.device.manage.list |
| lspath | すべて | vios.device.manage.list |
| lspv | すべて | vios.device.manage.list |
| lsrep | すべて | vios.device.manage.repos.list |
| lsrole | すべて | vios.security.role.list |
| lssecattr | -c | vios.security.cmd.list |
| -d | vios.security.device.list | |
| -f | vios.security.file.list | |
| -p | vios.security.proc.list | |
| lssp | すべて | vios.device.manage.spool.list |
| lssvc | すべて | vios.system.config.agent.list |
| lssw | すべて | vios.system.software.list |
| lstcpip | すべて | vios.network.tcpip.list |
| lsuser | すべて | vios.security.user.list 注: すべてのユーザーがこのコマンドを実行して、ユーザー属性の最小セットを表示できます。 ただし、すべてのユーザー属性を表示することができるのは、この権限を持つユーザーのみです。
|
| lsvg | すべて | vios.lvm.manage.list |
| lsvlog | すべて | vios.device.manage.vlog.list |
| lsvlrepo | すべて | vios.device.manage.vlrepo.list |
| lsvopt | すべて | vios.device.manage.optical.list |
| lu | -作成する | vios.device.manage.backing.create または vios.system.cluster.lu.create |
| -マップ | vios.device.manage.backing.create または vios.system.cluster.lu.create または vios.system.cluster.lu.map | |
| -remove | vios.device.manage.backing.remove または vios.system.cluster.lu.remove | |
| -マップ解除 | vios.device.manage.remove または vios.system.cluster.lu.unmap | |
| migratepv | すべて | vios.device.manage.migrate |
| mirrorios | すべて | vios.lvm.manage.mirrorios.create |
| mkauth | すべて | vios.security.auth.create |
| mkbdsp | すべて | vios.device.manage.backing.create |
| mkkrb5clnt | すべて | vios.security.manage.kerberos.create |
| mkldap | すべて | vios.security.manage.ldap.create |
| mklv | すべて | vios.lvm.manage.create |
| mklvcopy | すべて | vios.lvm.manage.mirror.create |
| mkpath | すべて | vios.device.manage.path.create |
| mkrep | すべて | vios.device.manage.repos.create |
| mkrole | すべて | vios.security.role.create |
| mksp | すべて | vios.device.manage.spool.create |
| mktcpip | すべて | vios.network.tcpip.config |
| mkuser | すべて | vios.security.user.create |
| mkvdev | -エフボ | vios.device.manage.create.virtualdisk |
| -ラング | vios.device.manage.create.lnagg | |
| -海 | vios.device.manage.create.sea | |
| -ブブ | vios.device.manage.create.virtualdisk | |
| -ブラン | vios.device.manage.create.vlan | |
| mkvg | すべて | vios.lvm.manage.create |
| mkvlog | すべて | vios.device.manage.vlog.create |
| mkvopt | すべて | vios.device.manage.optical.create |
| motd | すべて | vios.security.user.msg |
| mount | すべて | vios.fs.mount |
| netstat | すべて | vios.network.tcpip.list |
| optimizenet | すべて | vios.network.config.tune |
| oem_platform_level | すべて | vios.system.level |
| oem_setup_env | すべて | vios.oemsetupenv |
| passwd | すべて | vios.security.passwd 注: ユーザーは、この権限がなくてもパスワードを変更できます。 この権限は、他のユーザーのパスワードを変更する場合に必要です。
|
| pdump | すべて | vios.system.dump.platform |
| ping | すべて | vios.network.ping |
| postprocesssvc | すべて | vios.system.config.agent |
| prepdev | すべて | vios.device.config.prepare |
| pv | -add、-remove、-replace | vios.device.manage.spool.change または vios.system.cluster.pool.modify |
| redefvg | すべて | vios.lvm.manage.reorg |
| reducevg | すべて | vios.lvm.manage.change |
| refreshvlan | すべて | vios.network.config.refvlan |
| remote_management | すべて | vios.system.manage.remote |
| replphyvol | すべて | vios.device.manage.replace |
| restore | すべて | vios.fs.backup |
| restorevgstruct | すべて | vios.lvm.manage.restore |
| rmauth | すべて | vios.security.auth.remove |
| rmbdsp | すべて | vios.device.manage.backing.remove |
| rmdev | すべて | vios.device.manage.remove |
| rmlv | すべて | vios.lvm.manage.remove |
| rmlvcopy | すべて | vios.lvm.manage.mirror.remove |
| rmpath | すべて | vios.device.manage.path.remove |
| rmrep | すべて | vios.device.manage.repos.remove |
| rmrole | すべて | vios.security.role.remove |
| rmsecattr | -c | vios.security.cmd.remove |
| -d | vios.security.device.remove | |
| -f | vios.security.file.remove | |
| rmsp | すべて | vios.device.manage.spool.remove |
| rmtcpip | すべて | vios.network.tcpip.remove |
| rmuser | すべて | vios.security.user.remove |
| rmvdev | すべて | vios.device.manage.remove |
| rmvlog | すべて | vios.device.manage.vlog.remove |
| rmvopt | すべて | vios.device.manage.optical.remove |
| rolelist | -p | vios.security.proc.role.list 注: このコマンドの他のオプションは、権限なしで実行できます。
|
| -u | vios.security.role.list | |
| savevgstruct | すべて | vios.lvm.manage.save |
| save_base | すべて | vios.device.manage.saveinfo |
| seastat | すべて | vios.network.stat.sea |
| setkst | すべて | vios.security.kst.set |
| setsecattr | -c | vios.security.cmd.set |
| -d | vios.security.device.set | |
| -f | vios.security.file.set | |
| -o | vios.security.domain.set | |
| -p | vios.security.proc.set | |
| showmount | すべて | vios.fs.mount.show |
| shutdown | すべて | vios.system.boot.shutdown |
| snap | すべて | vios.system.trace.format |
| snapshot | すべて | vios.device.manage.backing.create |
| snmp_info | すべて | vios.security.manage.snmp.info |
| snmpv3_ssw | すべて | vios.security.manage.snmp.switch |
| snmp_trap | すべて | vios.security.manage.snmp.trap |
| startnetsvc | すべて | vios.network.service.start |
| startsvc | すべて | vios.system.config.agent.start |
| startsysdump | すべて | vios.system.dump |
| starttrace | すべて | vios.system.trace.start |
| stopnetsvc | すべて | vios.network.service.stop |
| stopsvc | すべて | vios.system.config.agent.stop |
| stoptrace | すべて | vios.system.trace.stop |
| svmon | すべて | vios.system.stat.memory |
| syncvg | すべて | vios.lvm.manage.sync |
| sysstat | すべて | vios.system.stat.list |
| rmsecattr | -c | vios.security.cmd.remove |
| -d | vios.security.device.remove | |
| -f | vios.security.file.remove | |
| tier | -作成 | vios.device.manage.spool.change
or vios.system.cluster.pool.modify |
| -remove | vios.device.manage.spool.change
or vios.system.cluster.pool.modify |
|
| -modify | vios.device.manage.spool.change
or vios.system.cluster.pool.modify |
|
| topas | すべて | vios.system.config.topas |
| topasrec | すべて | vios.system.config.topasrec |
| tracepriv | すべて | vios.security.priv.trace |
| traceroute | すべて | vios.network.route.trace |
| uname | すべて | vios.system.uname |
| unloadopt | すべて | vios.device.manage.optical.unload |
| unmirrorios | すべて | vios.lvm.manage.mirrorios.remove |
| unmount | すべて | vios.fs.unmount |
| updateios | すべて | vios.install |
| vasistat | すべて | vios.network.stat.vasi |
| vfcmap | すべて | vios.device.manage.map.virt |
| viosbr | ビュー | vios.system.backup.cfg.view |
| その他 | vios.system.backup.cfg 注: このコマンドの他のオプションを実行するには、この権限が必要です。
|
|
| viosecure | すべて | vios.security.manage.firewall |
| viostat | すべて | vios.system.stat.io |
| vmstat | すべて | vios.system.stat.memory |
| wkldagent | すべて | vios.system.manage.workload.agent |
| wkldmgr | すべて | vios.system.manage.workload.manager |
| wkldout | すべて | vios.system.manage.workload.process |
ロール
Virtual I/O Server は、現在のロールを保持し、そのロールに割り当てられた適切な権限を持ちます。 AIX オペレーティング・システムで役割を厳密にエミュレートする追加の役割を作成できます。 AIX オペレーティング・システムで役割を厳密にエミュレートする追加の役割を作成できます。 ロールは命名規則と記述をエミュレートしますが、 Virtual I/O Server 固有の要件にのみ適用されます。 ユーザーは、 AIX オペレーティング・システムの場合 AIX オペレーティング・システムの場合のデフォルトの役割を表示、使用、または変更することはできません。
以下の役割は、 AIX オペレーティング・システムの場合 AIX オペレーティング・システムの場合のデフォルトの役割です。 これらのロールは、 Virtual I/O Server ユーザーは使用できず、表示されません。
- AccountAdmin
- BackupRestore
- DomainAdmin
- FSAdmin
- SecPolicy
- SysBoot
- SysConfig
- isso
- sa
- so (シフトアウト)
以下の役割は、 Virtual I/O Serverのデフォルトの役割です。
- 管理者
- DEUser
- PAdmin
- RunDiagnostics
- SRUser
- SYSAdm
- ViewOnly
mkrole コマンドは、役割を作成します。 newrole パラメーターは、固有の役割名でなければなりません。 ロール名にキーワード ALL または default を使用できません。 すべてのロールには、セキュリティー決定に使用される固有のロール ID がなければなりません。 役割の作成時に id 属性を指定しない場合、mkrole コマンドは自動的に固有 ID をその役割に割り当てます。
役割のパラメーターには、スペース、タブ、あるいは改行文字を含むことはできません。 不整合を避けるには、役割名を POSIX ポータブル・ファイル名の文字セットにある文字に制限してください。 キーワード ALL または default をロール名に使用することはできません。 役割名のストリングに以下の文字を使用してはいけません。
- : (コロン)
- " (引用符)
- # (番号記号)
- , (コンマ)
- = (等号)
- \ (円記号)
- / (スラッシュ)
- ? (疑問符)
- ' (単一引用符)
- ` (バッククォート)
特権
特権は、プロセスがシステムの特定の制約事項や制限をバイパスすることを可能にする、プロセスの属性です。 特権はプロセスに関連付けられており、特権コマンドの実行によって獲得されます。 特権は、オペレーティング・システム・カーネルでビット・マスクとして定義され、特権操作全体のアクセス制御を実施します。 例えば、特権ビット PV_KER_TIME は、カーネル操作を制御してシステムの日時を変更します。 約 80 個の特権が オペレーティング・システムに組み込まれており、特権操作全体の精細な制御を提供します。 カーネルでの特権操作の分割によって、操作の実行に必要な最小の特権を獲得できます。 この機能によって、プロセス・ハッカーはシステム内の 1 つまたは 2 つの特権のアクセス権限しか取得できず、root ユーザー権限を取得できないため、セキュリティーが拡張されます。
権限および役割は、特権操作に対するユーザー・アクセス権限を構成するためのユーザー・レベルのツールです。 特権はオペレーティング・システム・カーネルで使用される制限メカニズムで、プロセスがアクションを実行するための権限を持っているかを判別します。 そのため、ユーザーがコマンドを実行する権限を持つ役割セッションに属しており、そのコマンドが実行された場合、特権のセットはプロセスに割り当てられます。 権限および役割を特権に直接マッピングするものはありません。 複数のコマンドへのアクセスは、権限を介して提供されます。 それらの各コマンドは、異なる特権のセットを付与されます。
次の表は、役割ベースのアクセス制御 (RBAC) に関連したコマンドをリストを示しています。
| コマンド | 説明 |
|---|---|
| chauth | newauth パラメーターによって識別された権限の属性を変更します |
| chrole | role パラメーターによって識別された役割の属性を変更します |
| lsauth | 権限データベースからのユーザー定義およびシステム定義の属性を表示します |
| lsrole | 役割属性を表示します |
| lssecattr | 1 つ以上のコマンド、デバイス、あるいはプロセスのセキュリティー属性をリストします |
| mkauth | 新規のユーザー定義権限を権限データベースに作成します |
| mkrole | 新規の役割を作成します |
| rmauth | auth パラメーターによって識別されたユーザー定義の権限を削除します |
| rmrole | role パラメーターによって識別された役割を役割データベースから削除します |
| rmsecattr | Name パラメーターによって識別されたコマンド、デバイス、あるいはファイル・エントリーのセキュリティー属性を適切なデータベースから削除します |
| rolelist | 呼び出し元に割り当てられた役割について、役割および権限の情報を提供します |
| setkst | セキュリティー・データベースを読み取り、データベースからの情報をカーネル・セキュリティー・テーブルにロードします |
| setsecattr | Name パラメーターによって指定されたコマンド、デバイス、あるいはプロセスのセキュリティー属性を設定します |
| swrole | Role パラメーターによって指定された役割を持つ役割セッションを作成します |
| tracepriv | コマンドの実行時にコマンドが使用を試みる特権を記録します |