Contexte :

Nous allons comment restreinte l’accès à un lookup à l’App qui le porte.

Mise en place de l’environnement :

Il faut d’abord créer une Apps via la GUI, ici elle s’appelle testlookup.

On va préparer un jeu de données pour le test :

| makeresults count=10 
| eval plop="AAAAA", toto="TITI" 
| outputlookup mylk.csv

On vérifie que le lookup est bien créé sur disque :

cd $HOME_SPLUNK/etc
cat apps/testlookup/lookups/mylk.csv 
"_time",plop,toto
1573155613,AAAAA,TITI
1573155613,AAAAA,TITI
1573155613,AAAAA,TITI
1573155613,AAAAA,TITI
1573155613,AAAAA,TITI
1573155613,AAAAA,TITI
1573155613,AAAAA,TITI
1573155613,AAAAA,TITI
1573155613,AAAAA,TITI
1573155613,AAAAA,TITI

On teste l’affichage du lookup via la commande :

| inputlookup mylk.csv

Résultat dans notre App de test : resultat app 01

Résultat dans notre App Search: resultat app 02

Mise en place des modifications pour restreindre la portée :

Voyons la configuration par défaut qui autorise cela :

cat apps/testlookup/metadata/default.meta 

# Application-level permissions
[]
access = read : [ * ], write : [ admin, power ]

### EVENT TYPES
[eventtypes]
export = system

### PROPS
[props]
export = system

### TRANSFORMS
[transforms]
export = system

### LOOKUPS
[lookups]
export = system    <==== ICI

### VIEWSTATES: even normal users should be able to create shared viewstates
[viewstates]
access = read : [ * ], write : [ * ]
export = system

Plutôt que de modifier le default.meta, nous allons modifier le local.meta.
On passera le export à none ce qui aura comme effet de limiter la portée du lookup à l’aap.

cat apps/testlookup/metadata/local.meta 
[app/ui]
version = 7.3.1.1
modtime = 1573155243.045214000

[app/launcher]
version = 7.3.1.1
modtime = 1573155243.047991000

### LOOKUPS
[lookups]
export = none   <=== ICI

Il faut normalement relancer Splunkd via un restart du service ou un refresh debug (http[s]://[splunkweb hostname]:[splunkweb port]/debug/refresh).

Résultat dans notre App de test : resultat app 03

Résultat dans notre App Search: resultat app 04

Note :
On peut aussi limiter l’accès à l’App en modifiant l’attribut access dans le stanza [].

Annexes :

Doc Officielle sur les ACL de l’App.
Doc Officielle - Set permissions for objects in a Splunk app.