Splunkユーザーを効率的に管理する

この記事は約10分で読めます。
sponsored link

ロール (role) とは

ロール (役割) とは「パーミッション (ユーザーの行動範囲を定義したもの) の集合」で、ユーザーは自身のロールによりアクセスできるデータや、使える機能などが異なります。
※ロールが付与されていないアカウントはSplunkへログインできません。

なお、ユーザーに複数ロールが付与されている場合、サーチフィルターは権限の低い方に制限されますが、Indexes へのアクセスは権限が高い方が採用され、異なる権限を持つ場合はそれがすべて利用できるようになります。

ユーザーマネジメント

ユーザーの追加やロールの設定、認証方法の設定などは [Settings] から行うことができます。

名前 設定可能な項目
Roles Inheritance, Capability, Indexes, Restrictions, Resource
Users Name, Email, PW, Time Zone, Default App, Assign role
Tokens
Password Management PW Rules, Expiration, History, Login Settings, Lockout
Authentication Methods LDAP, SAML, Multifactor Autentication (Duo, RSA)

Users

[Settings] > [Users] > [New User] から新規ネイティブユーザーを追加できます。
※ユーザーやロールの追加にはパーミッションが必要です。(e.g., admin user)

項目 デフォルト値
Name (必須)
Full name
Email address
Set password (必須)
Time zone Search head time zone
Default app Role default app, or Home
Assign to roles user

Roles

種類

項目 役割
admin 管理者。多くのcapabilityで users, objects, configurations などを管理する。
power 共有された objects(e.g., saved search), alerts, tag events などを編集できる人。
user 自分専用の searches, preferences, event types などを作成/編集/実行できる人。
can_delete delete コマンドを実行できるロール。
splunk-system-role 他のユーザーの system services を実行できるロール。
sc_admin (Splunk Cloudのみ) 他のユーザー/ロールの作成ができるロール。

カスタムユーザーロールの作成

[Settings] > [Roles] >[New Role] から新規ロールを追加でき、以下の5つのカテゴリから細かな条件の設定を行います。

カテゴリ 概要
Inheritance 選択した既存のロールの capability, indexes をユーザーが全て引き継ぐ*。個別の無効化はできない。
Capabilities 選択したアクション (e.g., edit_forwarders) をユーザーが実行できるようになる。 
Indexes ユーザーがアクセス可能な Indexes を指定*。デフォルトでは全データにアクセス可能。
Restrictions ユーザーがサーチできるデータを SPL で制限。(e.g., index::web and sourcetype::access)
Resources Default app, User/Role search job limit (standard/realtime), Window limit, Disk space limit.

※親から引き継いだロールで閲覧可能な Indexes は無効化できません。
※ [Resources]の job limit では 0が「制限なし」-1が「親の制限を継承」という意味になります。

authorize.conf

Splunk Enterprise の場合のみ「authorize.conf」を用いてロールを追加/編集することもできます。

[role_marketing_admin]   #[role_<roleName>]
srchIndexesAllowed = main;marketing   #<setting>=<value>
srchINdexesDefault = marketing
srchTimeWin = 10000000
grantablerole = role1;role2;role3

edit_roles_grantable

edit_roles_grantable“とは「制限されたロールを他の人に付与できるようにする」という権限で、authorize.conf でロールを指定して利用します。

通常、他のユーザーにロールを付与できるのは admin のみですが、admin はかなり強い権限を持つのでなるべく管理者以外の方には譲渡すべきではありません。そこで “基盤全体の管理者” と “ユーザー管理者” を分けたいときに登場するのが “edit_roles_grantable” です。
※ “edit_user”, “edit_roles_grantable” を付与することで上記のようなセキュアな管理が実現しますが、”edit_user”, “edit_roles” を付与すると完全なadminに昇格されてしまうことに注意しましょう。

Password Management

パスワードマネジメントとは「管理者が Splunk ネイティブユーザーの PW を管理するオプション」のことで、以下の5つの機能を提供しています。
※このルールは SAML/LDAP には適用できません。

カテゴリ 設定できる項目
PW Rules PW最低文字数 (8〜256)。PWに含める数値/小文字/大文字/特殊文字の数。
Expirations (default) Disable。PW有効期限 (0:無期限 〜3560日)
History (default) Disable。有効化するとユーザーは過去に利用したPWが使えなくなる。
Login Settings (default) Disable。継続ログイン時間 (.001〜5s)。既存ユーザーへ弱いPWの変更を求める設定。
Lockout (default) Enable。ログインの試行回数制限。n分後に試して下さいの設定。自動ログアウトの時間。

なお、設定したPWはハッシュ化されて $SPLUNK_HOME/etc/passwd に保存されます。

PW ロック解除

ユーザーがPWを忘れてしまいアカウントがロックされた場合は [Settings] > [User]、または CLI ( edit user ) を使って解除することができます。

$SPLUNK_HOME/bin/splunk edit user <locked_username> -lockedout false -auth admin:<admin_password>

もし管理者がPWを忘れてしまった場合、Splunkのインスタンスを停止し /etc/passwd のバックアップを取得した後、以下のコマンドで admin credential を作成します。

# PWを自分で決める場合
$SPLUNK_HOME/bin/splunk start --accept-license --answer-yes --no-prompt --seed-passwd <your_password>

# PWをランダムに生成する場合
$SPLUNK_HOME/bin/splunk start --accept-license --answer-yes --no-prompt --gen-and-print-passwd

Authentication Methods

認証の種類

Splunkユーザーアカウントの認証方法は『Splunk ネイティブ認証』『LDAP or AD』『SAML (SSO)』『API 認証* (e.g., RADIUS, PAM)』の4種類あり、登録した設定は authentication.conf に保存されます。
※ API 認証は Splunk Cloud ではサポートされていません。

これらの認証は複数組み合わせる (e.g., ネイティブ認証 + SAML) ことも可能ですが、その場合はネイティブ認証が最優先となります。

LDAP構成の手順

LDAPを構成するには authentication.conf の直接編集という方法もありますが、ここではwebで構成する手順について紹介します。

  1. LDAP strategy を作成 (LADP serversとSplunkを接続)
  2. LDAP groups を Splunk roles にマッピング (user単位でも可)
  3. 複数 LDAP servers がある場合、接続順序を指定

グループのパーミッションを変更する場合「異なるロールにマッピングする」「ロールのパーミッションを変更する」必要があり、個別のユーザーでは「ユーザーをグループから除外し再度マッピング」する必要があります。
※ユーザーが複数ロールにマッピングされた場合、それらが持つ全てのパーミッションが付与されます。

二段階認証

Splunkの二段階認証では『Duo*』『RSA』の2つがサポートされており、これらは SAML (SSO) 以外の認証方法と併用することができます。
※ Duo はSplunk Enterpriseのみ利用可能。RSAの場合は事前に “change_authentication” の権限が必要。

References

role – Splunk Documentation

Manage Splunk Cloud users and roles –  Splunk Documentation

About configured role-based user access – Splunk Documentation

About user authentication – Splunk Documentation

Create and manage roles in Splunk Enterprise using the authorized.conf configuration file – Splunk Documentation

Define roles on the Splunk platform with capabilities – Splunk Documentation

Password best practices for administrators – Splunk Documentation

Unlock a user account – Splunk Documentation

Create secure administrator credentials – Splunk Documentation

Set up user authentication with LDAP – Splunk Documentation

Manage Splunk user roles with LDAP – Splunk Documentation

Configure Splunk Enterprise to use Duo Security multifactor authentication – Splunk Documentation

About multifactor authentication with RSA Authentication Manager – Splunk Documentation