Ghatage opened a new pull request #2355:
URL: https://github.com/apache/bookkeeper/pull/2355


   This feature allows a predefined set of services to be 'whitelisted' to be 
able
   to access bookkeeper based on their client certificates.
   
   ### Motivation
   As BookKeeper and its supported services move to a cloud friendly service 
based architecture, it becomes of utmost importance to monitor and allow only 
certain qualified services to be able to access the data in BK.
   We have TLS based authentication, however, any service with the rootCA can 
access Bookkeeper clusters which is not desirable.
   
   
   ### Changes
   So this feature can be broken down into two parts:
   1. Certificate and roles
   2. Server configuration for authorized roles
   
   Details:
   1. Certificate and roles:
   Here is an example of how the SUBJECT field of a final certificate for 
Apache Pulsar running in the cloud would look like:
       CN=apache.bookkeeper.org
   O=apache-pulsar
   OU=0:pulsar-broker-role;1:cluster-1
   L=San Francisco
   S=CA
   C=US
   This shows that this bookkeeper client certificate is owned by the apache 
pulsar service has the role ‘pulsar-broker-role’ for entities in ‘cluster-1’.
   Only those services with pulsar-broker-role should be able to access it.
   We can add more fields separated by commas to increase the upstream 
application clusters to be able to access this bookkeeper cluster.
   
   For example: OU=0:herddb-readonlyNode,herddb-readwriteNode;1:herddb-cluster2
   
   Such separation of access based on services is paramount to keeping this 
secure as many upstream users of BookKeeper are financial institutions, 
databases and other services.
   
   2. Server configuration for authorized roles
   Once we have a certificate whose SUBJECT field has the OU attribute with the 
roles we want to authorize, on the Bookie side, we need to specify which roles 
are allowed.
   We make this happen by introducing a server configuration option called 
‘authorizedRoles’.
   Since we have only static options, this will be set in stone as long as the 
bookie booted up with it.
   If in case we need to change the allowed roles, we’ll need to stop the 
bookie, update the configuration file and then restart the bookie.
   We can have multiple roles which are authorized as the OU field can have 
multiple comma separated values for roles.
   
   Master Issue: #2354 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to