こんにちは、メケです。
ServiceNowにはCSA(Certified System Administrator)という認定資格があります。
今回はその試験範囲の1つである「データベースの管理」の中の「アクセス制御」について、解説していきます。
アクセス制御って権限とかのことかな?
苦手なんだよね〜。
ユーザーやグループに適切な権限を与えることは、システムを運用していく上では非常に重要なことです。ServiceNowではどのようなアクセス制御が可能なのかを紹介していきます。
だれが、何に対して、何ができるかを制御します。
CSAの試験にはここから出題される問題もあるかもしれません。
ユーザー認証
まずは「誰が」の部分になります。
いわゆる「人」に対するものですね。以下のようなものがあります。
- ユーザー(User)
- グループ(Group)
- ロール(Role)
ユーザー
ユーザーは個人につくものですね。ユーザーIDなどが割り振られ個人を識別するものになります。
ユーザーの認証には以下のようなものがあります。
- ローカルデータベース
- マルチファクター
- LDAP
- SAML2.0
- OAuth 2.0
- ダイジェストトークン
ユーザーは[sys_user]というテーブルにて管理されます。
グループ
グループは複数のユーザーをまとめたい時に使用します。
例えば会社の部署だったり、委員会だったり共通の目的を持った人たちの集まりです。
グループは[sys_user_group]というテーブルにて管理されます。
ロール
ロールは「役割」と和訳されるもので、「権限の集まり」です。
以下のようなものがあります。
- システム管理者
- 承認者
- 特定のモジュールを操作できる役割
ユーザー・グループに対して割り当てることができ、複数のロールを持つことができます。
ユーザーロールは[sys_user_role]というテーブルにて管理されます。
一人一人のユーザーに権限をつけていくことはできますが、部署異動などになった時に権限の付け直しなどは手間ですよね。そのためグループやロール(Role)を使用して、権限の付け替えを行いやすくします。
アクセス制御リスト(Access Controls)の表示
フィルターナビゲーターに”ACL”と入力して下さい。
[System Security]-[Access Control(ACL)]をクリックします。
一覧が表示され、システムのアクセス制御一覧を確認することができます。
security_admin権限
Access Control画面では通常は[New]ボタンが表示されていないと思いますが、新規でACLを作成するにはログインユーザーにsecurity_admin権限をつける必要があります。
以下の画像のようにユーザーメニューの「Elevate Roles」より行います。
これで[New]ボタンが表示されるようになったかと思います。
アクセス制御(Access Control)画面の表示
Access Control画面でアクセス制御を定義する際には大きく以下の3つを指定します。
- 操作
- オブジェクト
- 条件
操作
どの操作に対してアクセス制御を行うかを指定するのは[Operation]フィールドです。
基本的なものとしてはCRUDがあります。RDBなどでもよく見かけるものですね。
- Create(作成)
- Read(読み取り)
- Update(更新)
- Delete(削除)
また、ServiceNowにはCRUD以外にもServiceNow独自の操作もあります。
「Operation(操作)」のプルダウンを表示するとCRUDの他に以下のようなものが表示されます。
- execute:実行することができるか
- report_on:レポートを作成することができるか
(他のものは公式ドキュメントを参照してみてください。)
オブジェクト
何に対してのアクセス制御を行うかを指定するのは[Name]フィールドです。
テーブルやフィールドを指定します。
フィールドの指定の方法としては、以下の3つの方法があります。
- table.None
フィールドの指定をせずにテーブル全体を対象としたい時に指定します。 - table.field
特定のフィールドを対象としたい時に指定します。 - table.* (ワイルドカード)
.fieldで指定されたアクセス制御が既定されている場合に、それ以外のフィールド全てというような指定をしたい時に使用します。
条件
条件の指定としては以下の3つがあります。
- ロール:どのRoleに対してアクセスを許可するか
- 条件式:テーブルのフィールドがどの状態の時に許可するか
- スクリプト:上記では対応できない場合に、独自のスクリプトでの制御も可能
この画面のように通常はScriptが画面に表示されておらず、[Advanced]をチェックすることで表示されることが多いです。
テーブルアクセス制御の評価
アクセス制御は1つだけではなく、複数設定することができます。
テーブルに対してはフィールドレベル・レコードレベルでの制御を行うことができます。
複数のアクセス制御が存在する場合は全てを満たす必要があります。
どれか一つに一致すれば良いというわけではないので注意が必要です。
まとめ
今回はServiceNowのアクセス制御について紹介してみました。
どのテーブルにてユーザーやグループ・ロールが管理されているかはしっかり押さえておきたいです。
アクセス制御については正しく理解しておく必要があるため、この記事で概要を掴んでいただいた後はServiceNowの製品ドキュメントにて詳細を確認してみてください。
「Access control list rules」などを参照していただけるのが良いかと思います。
アクセス制御についてちょっとわかった気がしたよ。
もっと理解を深めるには
文字だけを見て学ぶよりも、実際にServiceNowの環境を触ってみるのが効果的です。
そんなこと言っても家では会社の環境にはアクセスできないよ〜
PDI(個人用開発インスタンス)を使用すれば、誰でもどこからでも無料で自分だけの環境を作ることができるんですよ。
以下の記事を参考にしてみて下さい。
これで、家でこっそりServiceNowのことを勉強して、会社で「できるやつ」って思われるかもね。
それぞれでどんな事ができるかはCSAの試験にも出題されます。
試験対策だけでなく、実際に使用する人や開発する人でもどんな事ができるかは知っておいて損はないかなと思います。
他のCSA対策の記事はこちらでまとめているので、よかったら是非見てやって下さい。
見ていただけると、とても喜びます😆
本記事に書かれていないものでこんな問題も出ていたよなどがあれば、コメント欄に記載頂くかお問い合わせフォームより連絡頂けると幸いです。
連絡いただけたものは随時加筆させていただこうと思います。
最後まで見て頂きありがとうございます。
コメント