4.3.5 ユーザーとACL
ユーザーとACL(Access Control List)の設計では、ユーザー、グループ、ロールの作成において、どのような権限が必要か検討しておく必要があります。ユーザーの操作権限は、直接またはグループや他のロールを介して間接的に割り当てられるロールのアクセス権によって決まります。
項目 | 定義手段 | 設計のポイント |
---|---|---|
・User ・Group ・Role |
GUIによる定義 | ユーザー、グループ、ロールの作成と割り当てを実施しておきます。 |
・ACL | YAMLによる定義 (GitLab) |
ユーザー、グループ、ロールに対して、UI、アプリなどへのアクセス範囲を検討しておきます。ACLはロールに対してのみ直接割り当てることができます。 |
・GitRole | GUIによる定義 | グループに割り当てられたユーザーに対して、リポジトリへのアクセス範囲を検討しておきます。 |
・組織内のロール | GUIによる定義 | ユーザーに対して、AWXの組織ごとにアクセス範囲を検討しておきます。 |
ユーザー管理設定の詳細は、「ユーザー管理」を参照してください。
VMの貸出を例として、必要なロールを以下に示します。各ステップに適したロールを割り当てる必要があります。
作業名 | ワークフローのステップ | 操作者 | PreInstalledロール |
---|---|---|---|
VMの貸出 | |||
申請 | 申請者 | Customer User | |
申請内容の確認 | 運用担当者 | Operation Management Office Agent | |
VMの生成 | (自動実行) | - | |
VMの生成の確認 | 運用担当者 | Operation Management Office Agent | |
承認 | 運用管理者 | Operation Management Office Manager |
Ops I上の標準ロールとしてPre-InstalledロールとPrimitiveロールが提供されます。標準ロールの詳細は「Ops I上のロールとサポート機能の対応関係」を参照してください。
また、顧客ユーザーには、必ずPre-Installedロールの「Customer Manager」もしくは「Customer User」を設定します。
「Customer User」はPrimitiveロールの「customer」が割り当てられており、所属する顧客に関連があるレコードのみ操作できるように制限することができます。
デフォルトで提供される標準ロールで対応ができない場合は、任意のカスタムACLを作成し、カスタムロールに適用することができます。また、標準ロールの権限を変更したい場合、Pre-Installedロールと差分の権限情報を記述したカスタムACLをカスタムロールに割り当てることで実現することができます。
詳細については「JP1 Cloud Service 運用統合 APIリファレンス」の「APIリファレンス概要>APIの詳細と実行例>ロールにカスタムACLを割り当てる、割り当てを解除する>ロールにACLを割り当てる」を参照してください。
また、標準ロールに割り当てられているACLは変更しないでください。
設定方法は、ACLのYAML定義内でStatementを指定することにより、各ユーザーに必要なリソースへのアクセス制御などの許可情報を定義することができます。
ACLとStatementの登録、更新、および削除を行うには、Pre-Installedロール「System Security Administrator」が設定されている必要があります。
【ACL】
ACLは権限のリストで、ユーザー、グループ、ロールに必要なリソースへのアクセス権を設定することができ、ユーザーのURI、ドキュメント、UIコンポーネント、データオブジェクトなどへのアクセスを制御します。
ACLには3つの認可タイプがあります。
- URI認可
申請者に対してOps IのURIの認可条件を設定できます。
Ops Iで使用されるURIを対象のリソースに指定することができます。 - Document認可
申請者に対してOps IのYAMLファイルの認可条件を指定できます。
ユーザーが受け取るYAMLファイルに対して許可するkey-valueを対象のリソースに指定することができます。 - Object認可
申請者に対してOps IのAPIの入出力するデータの認可条件を指定できます。
ユーザーが入出力可能なレコードの条件を対象のリソースに指定することができます。
サポートされるAPIについてはAPIリファレンスを参照してください。
【Statement】
Statementとは、ACLのYAML定義内にある許可情報のセットです。
StatementのYAML定義内にはリソースへのアクセスと実行操作に関する許可情報などを定義します。
項目 | 説明 |
---|---|
カスタムロール | カスタムACLに対応するロールを作成することができます。 カスタムACLに限定した範囲の権限を持たせることで、柔軟にユーザーやグループに割り当てが可能です。 |
Group | カスタムACLをもつカスタムロールをグループに割り当てることで、任意のグループのみに権限を与えることができます。(例: 課ではなくプロジェクトなど) |
また、GitRoleは、グループに割り当てられたユーザーに対して、リポジトリ(ドキュメント)へのアクセス制御が可能となります。
ACLのYAML定義の詳細は、「ACL、Statement」を参照してください。