HI Steve, I think we should move this to a new thread as it is probably a different issue. May I suggest moving this to our new discussion forum with a section specifically for Shield https://discuss.elastic.co/c/shield if you have any followups to my response below?
To get you some help and on your way though, we do have documentation about limitations [1] and node clients[2]. Also a few other notes, what you've defined for the anonymous user is actually a different user than the actual system user, so it will not have the affect you are looking for but instead will give every request without any user full access. This may be a little confusing but we don't give our internal system calls full rights, so what you're most probably doing in your application is checking for the existence of an index somewhere without specifying any credentials for the request. The details on specifying credentials per request are located in [2] as well. The second note, is have you considered switching to a transport client? With Shield and node clients embedded in your application, you are essentially making your application part of the cluster since it is a node and these nodes need access to all of the Shield files such as users, roles, and the system key. [1] https://www.elastic.co/guide/en/shield/1.1/limitations.html [2] https://www.elastic.co/guide/en/shield/1.1/_java_clients.html On Thursday, May 21, 2015 at 7:12:07 AM UTC-4, Steve Barnes wrote: > > Hello Jay, > > I am having a similar issue using ES 1.4.3 + Shield 1.1. As soon as my > application instance (with embedded ES node.client) starts up, it throws : > > *Caused by: org.elasticsearch.shield.authz.AuthorizationException: action > [indices:admin/exists] is unauthorized for user [__es_system_user]* > > and therefore my application will not start. I have tried the following as > per the documentation here ( > https://www.elastic.co/guide/en/shield/current/authentication.html#anonymous-access) > > : > > > > *shield.authc: anonymous: roles: admin* > > and > > > > > *shield.authc: anonymous: username: > __es_system_user roles: admin* > > but they don't have any affect. > > If there is any documentation I can read of the restriction(s) in > ES/Shield, please can you point me to it ? I need to understand if this is > something we can program/config around or whether we can patch Shield 1.1 > (we only support v1.1 until next release of our application). > > > Thanks, > > Steve. > > > On Wednesday, 22 April 2015 13:34:07 UTC+1, Jay Modi wrote: >> >> Hi Bert, >> >> Thank you for the detailed report and reproduction of this issue. This is >> a known limitation with Shield and certain operations in elasticsearch. >> We're working to resolve this in a future release. >> >> We will be documenting this limitation and all of the operations affected >> shortly; this was something that we had forgotten to document. >> >> -Jay >> >> On Monday, April 20, 2015 at 10:46:40 AM UTC-4, Bert Vermeiren wrote: >>> >>> Hi, >>> >>> Using: >>> * ElasticSearch 1.5.1 >>> * SHIELD 1.2 >>> >>> Whenever I use a terms lookup filter in a search query, I get an >>> UnAuthorizedException for the [__es_system_user] user although the actual >>> user has even 'admin' role privileges. >>> This seems a bug to me, where the terms filter does not have the correct >>> security context. >>> >>> This is very easy to reproduce, see gist : >>> >>> https://gist.github.com/bertvermeiren/c29e0d9ee54bb5b0b73a >>> >>> Scenario : >>> >>> # Add user 'admin' with default 'admin' role. >>> ./bin/shield/esusers useradd admin -p admin1 -r admin >>> >>> # create index. >>> curl -XPUT 'admin:admin1@localhost:9200/customer' >>> >>> # create a document on the index >>> curl -XPUT 'admin:admin1@localhost:9200/customer/external/1' -d ' >>> { >>> "name" : "John Doe", >>> "token" : "token1" >>> }' >>> >>> # create additional index for the "terms lookup" filter functionality >>> curl -XPUT 'admin:admin1@localhost:9200/tokens' >>> >>> # create document in 'tokens' index >>> curl -XPUT 'admin:admin1@localhost:9200/tokens/tokens/1' -d ' >>> { >>> "group" : "1", >>> "tokens" : ["token1", "token2" ] >>> }' >>> >>> # search with a terms lookup filter on the "customer" index, referring >>> to the 'tokens' index. >>> >>> curl -XGET 'admin:admin1@localhost:9200/customer/external/_search' -d ' >>> { >>> "query": { >>> "filtered": { >>> "query": { >>> "match_all": {} >>> }, >>> "filter": { >>> "terms": { >>> "token": { >>> "index": "tokens", >>> "type": "tokens", >>> "id": "1", >>> "path": "tokens" >>> } >>> } >>> } >>> } >>> } >>> }' >>> >>> >>> => org.elasticsearch.shield.authz.AuthorizationException: action >>> [indices:data/read/get] is unauthorized for user [__es_system_user] >>> >> -- Please update your bookmarks! We have moved to https://discuss.elastic.co/ --- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/408cb544-1f07-426a-8d23-f6308f33211d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.