Geode is introducing additional security features which allow finer grained control for JMX operations as well as GFSH commands and Pulse. Additional information can be found here: Geode Integrated Security.
To quickly get started using permissions for JMX and GFSH a sample implementation of org.apache.geode.security.SecurityManager is provided by the class
org.apache.geode.examples.security.ExampleSecurityManager. This implementation requires a JSON file which defines the allowed users and their corresponding permissions. For example:
In this sample "security.json" file, we have two roles defined: cluster and data. The cluster role can perform cluster level operations like list members, whereas the data role can access/store data in Regions. The data role only has access to two regions: region1 and region2.
To start using this sample perform the following steps:
Copy the above "security.json" file into locator's and server's directory (locator1 and server1 in the example below).
Using gfsh, start a locator with security activated. In the example below, we disable peer-to-peer security for simplicity of configuration
Similarly, start a server (you will need to provide user/password in order to join the cluster. The user needs to have cluster:manage privilege). Notice server is started with a security-manager, but since locator's cluster configuration is enabled, the security-manager setting will be distributed to the server automatically. This ensures that the entire cluster is using the same security-manager.
Start a new instance of gfsh and connect with one of the users defined in your JSON file. The super-user should be allowed to do everything in gfsh.
Disconnect and reconnect with a user with lesser privileges:
- Currently, changes to the security.json file require the locator to be restarted.