<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">

    <title>Running Apache Storm Securely</title>

    <!-- Bootstrap core CSS -->
    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
    <!-- Bootstrap theme -->
    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link rel="stylesheet" href="http://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css">
    <link href="/css/style.css" rel="stylesheet">
    <link href="/assets/css/owl.theme.css" rel="stylesheet">
    <link href="/assets/css/owl.carousel.css" rel="stylesheet">
    <script type="text/javascript" src="/assets/js/jquery.min.js"></script>
    <script type="text/javascript" src="/assets/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="/assets/js/owl.carousel.min.js"></script>
    <script type="text/javascript" src="/assets/js/storm.js"></script>
    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
    <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
    
    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>


  <body>
    <header>
  <div class="container-fluid">
     <div class="row">
          <div class="col-md-5">
            <a href="/index.html"><img src="/images/logo.png" class="logo" /></a>
          </div>
          <div class="col-md-5">
            
              <h1>Version: 2.0.0</h1>
            
          </div>
          <div class="col-md-2">
            <a href="/downloads.html" class="btn-std btn-block btn-download">Download</a>
          </div>
        </div>
    </div>
</header>
<!--Header End-->
<!--Navigation Begin-->
<div class="navbar" role="banner">
  <div class="container-fluid">
      <div class="navbar-header">
          <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
          <ul class="nav navbar-nav">
              <li><a href="/index.html" id="home">Home</a></li>
                <li><a href="/getting-help.html" id="getting-help">Getting Help</a></li>
                <li><a href="/about/integrates.html" id="project-info">Project Information</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="documentation">Documentation <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                      
                        
                          <li><a href="/releases/2.3.0/index.html">2.3.0</a></li>
                        
                      
                        
                          <li><a href="/releases/2.2.0/index.html">2.2.0</a></li>
                        
                      
                        
                          <li><a href="/releases/2.1.0/index.html">2.1.0</a></li>
                        
                      
                        
                          <li><a href="/releases/2.0.0/index.html">2.0.0</a></li>
                        
                      
                        
                          <li><a href="/releases/1.2.3/index.html">1.2.3</a></li>
                        
                      
                    </ul>
                </li>
                <li><a href="/talksAndVideos.html">Talks and Slideshows</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="contribute">Community <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/contribute/Contributing-to-Storm.html">Contributing</a></li>
                        <li><a href="/contribute/People.html">People</a></li>
                        <li><a href="/contribute/BYLAWS.html">ByLaws</a></li>
                    </ul>
                </li>
                <li><a href="/2021/09/27/storm230-released.html" id="news">News</a></li>
            </ul>
        </nav>
    </div>
</div>



    <div class="container-fluid">
    <h1 class="page-title">Running Apache Storm Securely</h1>
          <div class="row">
           	<div class="col-md-12">
	             <!-- Documentation -->

<p class="post-meta"></p>

<div class="documentation-content"><h1 id="running-apache-storm-securely">Running Apache Storm Securely</h1>

<p>Apache Storm offers a range of configuration options when trying to secure
your cluster.  By default all authentication and authorization is disabled but 
can be turned on as needed.</p>

<h2 id="firewall-os-level-security">Firewall/OS level Security</h2>

<p>You can still have a secure storm cluster without turning on formal
Authentication and Authorization. But to do so usually requires 
configuring your Operating System to restrict the operations that can be done.
This is generally a good idea even if you plan on running your cluster with Auth.</p>

<p>Storm&#39;s OS level security relies on running Storm processes using OS accounts that have only the permissions they need. 
Note that workers run under the same OS account as the Supervisor daemon by default.</p>

<p>The exact detail of how to setup these precautions varies a lot and is beyond
the scope of this document.</p>

<p>It is generally a good idea to enable a firewall and restrict incoming network
connections to only those originating from the cluster itself and from trusted
hosts and services, a complete list of ports storm uses are below. </p>

<p>If the data your cluster is processing is sensitive it might be best to setup
IPsec to encrypt all traffic being sent between the hosts in the cluster.</p>

<h3 id="ports">Ports</h3>

<table><thead>
<tr>
<th>Default Port</th>
<th>Storm Config</th>
<th>Client Hosts/Processes</th>
<th>Server</th>
</tr>
</thead><tbody>
<tr>
<td>2181</td>
<td><code>storm.zookeeper.port</code></td>
<td>Nimbus, Supervisors, and Worker processes</td>
<td>Zookeeper</td>
</tr>
<tr>
<td>6627</td>
<td><code>nimbus.thrift.port</code></td>
<td>Storm clients, Supervisors, and UI</td>
<td>Nimbus</td>
</tr>
<tr>
<td>8080</td>
<td><code>ui.port</code></td>
<td>Client Web Browsers</td>
<td>UI</td>
</tr>
<tr>
<td>8000</td>
<td><code>logviewer.port</code></td>
<td>Client Web Browsers</td>
<td>Logviewer</td>
</tr>
<tr>
<td>3772</td>
<td><code>drpc.port</code></td>
<td>External DRPC Clients</td>
<td>DRPC</td>
</tr>
<tr>
<td>3773</td>
<td><code>drpc.invocations.port</code></td>
<td>Worker Processes</td>
<td>DRPC</td>
</tr>
<tr>
<td>3774</td>
<td><code>drpc.http.port</code></td>
<td>External HTTP DRPC Clients</td>
<td>DRPC</td>
</tr>
<tr>
<td>670{0,1,2,3}</td>
<td><code>supervisor.slots.ports</code></td>
<td>Worker Processes</td>
<td>Worker Processes</td>
</tr>
</tbody></table>

<h3 id="ui-logviewer">UI/Logviewer</h3>

<p>The UI and logviewer processes provide a way to not only see what a cluster is
doing, but also manipulate running topologies.  In general these processes should
not be exposed except to users of the cluster.</p>

<p>Some form of Authentication is typically required, and can be done using a java servlet filter</p>
<div class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="s">ui.filter</span><span class="pi">:</span> <span class="s2">"</span><span class="s">filter.class"</span>
<span class="s">ui.filter.params</span><span class="pi">:</span> <span class="s2">"</span><span class="s">param1":"value1"</span>
<span class="s">logviewer.filter</span><span class="pi">:</span> <span class="s2">"</span><span class="s">filter.class"</span>
<span class="s">logviewer.filter.params</span><span class="pi">:</span> <span class="s2">"</span><span class="s">param1":"value1"</span>
</code></pre></div>
<p>The <code>ui.filter</code> is an instance of <code>javax.servlet.Filter</code> that is intended to 
filter all incoming requests to the UI and authenticate the request mapping 
it to a &quot;user&quot;.  Typically this is done by modifying or wrapping the 
<code>HttpServletRequest</code> to return the user principal through the 
<code>getUserPrincipal()</code> method or returning the user name through the 
<code>getRemoteUser()</code> method.  If your filter authenticates in a different way you
can look at setting <code>ui.http.creds.plugin</code> to point to an instance of <code>IHttpCredentialsPlugin</code>
that can take the <code>HttpServletRequest</code> and return a user name and populate the needed fields
in the current <code>ReqContext</code>.  These are advanced features and you may want to look at the 
<code>DefaultHttpCredentialsPlugin</code> as an example of how to do this.</p>

<p>These same settings apply to the logviewer too.  If you want to have separate control
over how authentication works in the logviewer you may optionally set <code>logviewer.filter</code>
instead and it will override any <code>ui.filter</code> settings for the logviewer process.</p>

<p>If the cluster is single tenant you might want to just restrict access to the UI/log
viewers ports to only accept connections from local hosts, and then front them with
another web server, like Apache httpd, that can authenticate/authorize incoming connections and
proxy the connection to the storm process.  To make this work the ui process must have
logviewer.port set to the port of the proxy in its storm.yaml, while the logviewers
must have it set to the actual port that they are going to bind to.</p>

<p>The servlet filters are preferred because it allows individual topologies to
specify who is and who is not allowed to access the pages associated with
them.  </p>

<p>Storm UI (or logviewer) can be configured to use AuthenticationFilter from hadoop-auth.
<code>yaml
ui.filter: &quot;org.apache.hadoop.security.authentication.server.AuthenticationFilter&quot;
ui.filter.params:
   &quot;type&quot;: &quot;kerberos&quot;
   &quot;kerberos.principal&quot;: &quot;HTTP/nimbus.witzend.com&quot;
   &quot;kerberos.keytab&quot;: &quot;/vagrant/keytabs/http.keytab&quot;
   &quot;kerberos.name.rules&quot;: &quot;RULE:[2:$1@$0]([jt]t@.*EXAMPLE.COM)s/.*/$MAPRED_USER/ RULE:[2:$1@$0]([nd]n@.*EXAMPLE.COM)s/.*/$HDFS_USER/DEFAULT&quot;
</code>
make sure to create a principal &#39;HTTP/{hostname}&#39; (here hostname should be the one where UI daemon runs
Be aware that the UI user <em>MUST</em> be HTTP.</p>

<p>Once configured users needs to do kinit before accessing UI.
Ex:
curl  -i --negotiate -u:anyUser  -b ~/cookiejar.txt -c ~/cookiejar.txt  <a href="http://storm-ui-hostname:8080/api/v1/cluster/summary">http://storm-ui-hostname:8080/api/v1/cluster/summary</a></p>

<ol>
<li>Firefox: Goto about:config and search for network.negotiate-auth.trusted-uris double-click to  add value &quot;<a href="http://storm-ui-hostname:8080">http://storm-ui-hostname:8080</a>&quot;</li>
<li>Google-chrome:  start from command line with: google-chrome --auth-server-whitelist=&quot;*storm-ui-hostname&quot; --auth-negotiate-delegate-whitelist=&quot;*storm-ui-hostname&quot;<br></li>
<li>IE:  Configure trusted websites to include &quot;storm-ui-hostname&quot; and allow negotiation for that website</li>
</ol>

<p><strong>Note</strong>: For viewing any logs via <code>logviewer</code> in secure mode, all the hosts that runs <code>logviewer</code> should also be added to the above white list. For big clusters you could white list the host&#39;s domain (for e.g. set <code>network.negotiate-auth.trusted-uris</code> to <code>.yourdomain.com</code>).</p>

<p><strong>Caution</strong>: In AD MIT Keberos setup the key size is bigger than the default UI jetty server request header size. Make sure you set ui.header.buffer.bytes to 65536 in storm.yaml. More details are on <a href="https://issues.apache.org/jira/browse/STORM-633">STORM-633</a></p>

<h2 id="drpc-http">DRPC HTTP</h2>

<p>The DRPC server optionally supports a REST endpoint as well, and you can configure authentication
on that endpoint similar to the ui/logviewer.</p>

<p>The <code>drpc.http.filter</code> and <code>drpc.http.filter.params</code> configs can be used to setup a <code>Filter</code> for the DRPC server.  Unlike the logviewer
it does not fall back to the UI configs as the DRPC server is intended to be REST only and often will be hit by headless users.</p>

<p>The <code>drpc.http.creds.plugin</code> config can be used in cases where the default plugin is not good enough because of how authentication happens.</p>

<h2 id="ui-drpc-logviewer-ssl">UI / DRPC / LOGVIEWER SSL</h2>

<p>UI,DRPC and LOGVIEWER allows users to configure ssl .</p>

<h3 id="ui">UI</h3>

<p>For UI users needs to set following config in storm.yaml. Generating keystores with proper keys and certs should be taken care by the user before this step.</p>

<ol>
<li>ui.https.port </li>
<li>ui.https.keystore.type (example &quot;jks&quot;)</li>
<li>ui.https.keystore.path (example &quot;/etc/ssl/storm_keystore.jks&quot;)</li>
<li>ui.https.keystore.password (keystore password)</li>
<li>ui.https.key.password (private key password)</li>
</ol>

<p>optional config 
6. ui.https.truststore.path (example &quot;/etc/ssl/storm_truststore.jks&quot;)
7. ui.https.truststore.password (truststore password)
8. ui.https.truststore.type (example &quot;jks&quot;)</p>

<p>If users want to setup 2-way auth
9. ui.https.want.client.auth (If this set to true server requests for client certificate authentication, but keeps the connection if no authentication provided)
10. ui.https.need.client.auth (If this set to true server requires client to provide authentication)</p>

<h3 id="drpc">DRPC</h3>

<p>similarly to UI , users need to configure following for DRPC</p>

<ol>
<li>drpc.https.port </li>
<li>drpc.https.keystore.type (example &quot;jks&quot;)</li>
<li>drpc.https.keystore.path (example &quot;/etc/ssl/storm_keystore.jks&quot;)</li>
<li>drpc.https.keystore.password (keystore password)</li>
<li>drpc.https.key.password (private key password)</li>
</ol>

<p>optional config 
6. drpc.https.truststore.path (example &quot;/etc/ssl/storm_truststore.jks&quot;)
7. drpc.https.truststore.password (truststore password)
8. drpc.https.truststore.type (example &quot;jks&quot;)</p>

<p>If users want to setup 2-way auth
9. drpc.https.want.client.auth (If this set to true server requests for client certificate authentication, but keeps the connection if no authentication provided)
10. drpc.https.need.client.auth (If this set to true server requires client to provide authentication)</p>

<h3 id="logviewer">LOGVIEWER</h3>

<p>similarly to UI and DRPC , users need to configure following for LOGVIEWER</p>

<ol>
<li>logviewer.https.port </li>
<li>logviewer.https.keystore.type (example &quot;jks&quot;)</li>
<li>logviewer.https.keystore.path (example &quot;/etc/ssl/storm_keystore.jks&quot;)</li>
<li>logviewer.https.keystore.password (keystore password)</li>
<li>logviewer.https.key.password (private key password)</li>
</ol>

<p>optional config 
6. logviewer.https.truststore.path (example &quot;/etc/ssl/storm_truststore.jks&quot;)
7. logviewer.https.truststore.password (truststore password)
8. logviewer.https.truststore.type (example &quot;jks&quot;)</p>

<p>If users want to setup 2-way auth
9. logviewer.https.want.client.auth (If this set to true server requests for client certificate authentication, but keeps the connection if no authentication provided)
10. logviewer.https.need.client.auth (If this set to true server requires client to provide authentication)</p>

<h2 id="authentication-kerberos">Authentication (Kerberos)</h2>

<p>Storm offers pluggable authentication support through thrift and SASL.  This
example only goes off of Kerberos as it is a common setup for most big data
projects.</p>

<p>Setting up a KDC and configuring kerberos on each node is beyond the scope of
this document and it is assumed that you have done that already.</p>

<h3 id="create-headless-principals-and-keytabs">Create Headless Principals and keytabs</h3>

<p>Each Zookeeper Server, Nimbus, and DRPC server will need a service principal, which, by convention, includes the FQDN of the host it will run on.  Be aware that the zookeeper user <em>MUST</em> be zookeeper.<br>
The supervisors and UI also need a principal to run as, but because they are outgoing connections they do not need to be service principals. 
The following is an example of how to setup kerberos principals, but the
details may vary depending on your KDC and OS.</p>
<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># Zookeeper (Will need one of these for each box in the Zk ensemble)</span>
<span class="nb">sudo </span>kadmin.local <span class="nt">-q</span> <span class="s1">'addprinc zookeeper/zk1.example.com@STORM.EXAMPLE.COM'</span>
<span class="nb">sudo </span>kadmin.local <span class="nt">-q</span> <span class="s2">"ktadd -k /tmp/zk.keytab  zookeeper/zk1.example.com@STORM.EXAMPLE.COM"</span>
<span class="c"># Nimbus and DRPC</span>
<span class="nb">sudo </span>kadmin.local <span class="nt">-q</span> <span class="s1">'addprinc storm/storm.example.com@STORM.EXAMPLE.COM'</span>
<span class="nb">sudo </span>kadmin.local <span class="nt">-q</span> <span class="s2">"ktadd -k /tmp/storm.keytab storm/storm.example.com@STORM.EXAMPLE.COM"</span>
<span class="c"># All UI logviewer and Supervisors</span>
<span class="nb">sudo </span>kadmin.local <span class="nt">-q</span> <span class="s1">'addprinc storm@STORM.EXAMPLE.COM'</span>
<span class="nb">sudo </span>kadmin.local <span class="nt">-q</span> <span class="s2">"ktadd -k /tmp/storm.keytab storm@STORM.EXAMPLE.COM"</span>
</code></pre></div>
<p>be sure to distribute the keytab(s) to the appropriate boxes and set the FS permissions so that only the headless user running ZK, or storm has access to them.</p>

<h4 id="storm-kerberos-configuration">Storm Kerberos Configuration</h4>

<p>Both storm and Zookeeper use jaas configuration files to log the user in.
Each jaas file may have multiple sections for different interfaces being used.</p>

<p>To enable Kerberos authentication in storm you need to set the following storm.yaml configs
<code>yaml
storm.thrift.transport: &quot;org.apache.storm.security.auth.kerberos.KerberosSaslTransportPlugin&quot;
java.security.auth.login.config: &quot;/path/to/jaas.conf&quot;
</code></p>

<p>Nimbus and the supervisor processes will also connect to ZooKeeper(ZK) and we want to configure them to use Kerberos for authentication with ZK. To do this append 
<code>
-Djava.security.auth.login.config=/path/to/jaas.conf
</code></p>

<p>to the childopts of nimbus, ui, and supervisor.  Here is an example given the default childopts settings at the time of writing:</p>
<div class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="s">nimbus.childopts</span><span class="pi">:</span> <span class="s2">"</span><span class="s">-Xmx1024m</span><span class="nv"> </span><span class="s">-Djava.security.auth.login.config=/path/to/jaas.conf"</span>
<span class="s">ui.childopts</span><span class="pi">:</span> <span class="s2">"</span><span class="s">-Xmx768m</span><span class="nv"> </span><span class="s">-Djava.security.auth.login.config=/path/to/jaas.conf"</span>
<span class="s">supervisor.childopts</span><span class="pi">:</span> <span class="s2">"</span><span class="s">-Xmx256m</span><span class="nv"> </span><span class="s">-Djava.security.auth.login.config=/path/to/jaas.conf"</span>
</code></pre></div>
<p>The jaas.conf file should look something like the following for the storm nodes.
The StormServer section is used by nimbus and the DRPC Nodes.  It does not need to be included on supervisor nodes.
The StormClient section is used by all storm clients that want to talk to nimbus, including the ui, logviewer, and supervisor.  We will use this section on the gateways as well but the structure of that will be a bit different.
The Client section is used by processes wanting to talk to zookeeper and really only needs to be included with nimbus and the supervisors.
The Server section is used by the zookeeper servers.
Having unused sections in the jaas is not a problem.</p>
<div class="highlight"><pre><code class="language-" data-lang="">StormServer {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab="$keytab"
   storeKey=true
   useTicketCache=false
   principal="$principal";
};
StormClient {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab="$keytab"
   storeKey=true
   useTicketCache=false
   serviceName="$nimbus_user"
   principal="$principal";
};
Client {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab="$keytab"
   storeKey=true
   useTicketCache=false
   serviceName="zookeeper"
   principal="$principal";
};
Server {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab="$keytab"
   storeKey=true
   useTicketCache=false
   principal="$principal";
};
</code></pre></div>
<p>The following is an example based off of the keytabs generated
<code>
StormServer {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab=&quot;/keytabs/storm.keytab&quot;
   storeKey=true
   useTicketCache=false
   principal=&quot;storm/storm.example.com@STORM.EXAMPLE.COM&quot;;
};
StormClient {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab=&quot;/keytabs/storm.keytab&quot;
   storeKey=true
   useTicketCache=false
   serviceName=&quot;storm&quot;
   principal=&quot;storm@STORM.EXAMPLE.COM&quot;;
};
Client {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab=&quot;/keytabs/storm.keytab&quot;
   storeKey=true
   useTicketCache=false
   serviceName=&quot;zookeeper&quot;
   principal=&quot;storm@STORM.EXAMPLE.COM&quot;;
};
Server {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab=&quot;/keytabs/zk.keytab&quot;
   storeKey=true
   useTicketCache=false
   serviceName=&quot;zookeeper&quot;
   principal=&quot;zookeeper/zk1.example.com@STORM.EXAMPLE.COM&quot;;
};
</code></p>

<p>Nimbus also will translate the principal into a local user name, so that other services can use this name.  To configure this for Kerberos authentication set</p>
<div class="highlight"><pre><code class="language-" data-lang="">storm.principal.tolocal: "org.apache.storm.security.auth.KerberosPrincipalToLocal"
</code></pre></div>
<p>This only needs to be done on nimbus, but it will not hurt on any node.
We also need to inform the topology who the supervisor daemon and the nimbus daemon are running as from a ZooKeeper perspective.</p>
<div class="highlight"><pre><code class="language-" data-lang="">storm.zookeeper.superACL: "sasl:${nimbus-user}"
</code></pre></div>
<p>Here <em>nimbus-user</em> is the Kerberos user that nimbus uses to authenticate with ZooKeeper.  If ZooKeeeper is stripping host and realm then this needs to have host and realm stripped too.</p>

<h4 id="zookeeper-ensemble">ZooKeeper Ensemble</h4>

<p>Complete details of how to setup a secure ZK are beyond the scope of this document.  But in general you want to enable SASL authentication on each server, and optionally strip off host and realm</p>
<div class="highlight"><pre><code class="language-" data-lang="">authProvider.1 = org.apache.zookeeper.server.auth.SASLAuthenticationProvider
kerberos.removeHostFromPrincipal = true
kerberos.removeRealmFromPrincipal = true
</code></pre></div>
<p>And you want to include the jaas.conf on the command line when launching the server so it can use it can find the keytab.
<code>
-Djava.security.auth.login.config=/jaas/zk_jaas.conf
</code></p>

<h4 id="gateways">Gateways</h4>

<p>Ideally the end user will only need to run kinit before interacting with storm.  To make this happen seamlessly we need the default jaas.conf on the gateways to be something like</p>
<div class="highlight"><pre><code class="language-" data-lang="">StormClient {
   com.sun.security.auth.module.Krb5LoginModule required
   doNotPrompt=false
   useTicketCache=true
   serviceName="$nimbus_user";
};
</code></pre></div>
<p>The end user can override this if they have a headless user that has a keytab.</p>

<h3 id="authorization-setup">Authorization Setup</h3>

<p><em>Authentication</em> does the job of verifying who the user is, but we also need <em>authorization</em> to do the job of enforcing what each user can do.</p>

<p>The preferred authorization plug-in for nimbus is The <em>SimpleACLAuthorizer</em>.  To use the <em>SimpleACLAuthorizer</em>, set the following:</p>
<div class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="s">nimbus.authorizer</span><span class="pi">:</span> <span class="s2">"</span><span class="s">org.apache.storm.security.auth.authorizer.SimpleACLAuthorizer"</span>
</code></pre></div>
<p>DRPC has a separate authorizer configuration for it.  Do not use SimpleACLAuthorizer for DRPC.</p>

<p>The <em>SimpleACLAuthorizer</em> plug-in needs to know who the supervisor users are, and it needs to know about all of the administrator users, including the user running the ui daemon. </p>

<p>These are set through <em>nimbus.supervisor.users</em> and <em>nimbus.admins</em> respectively.  Each can either be a full Kerberos principal name, or the name of the user with host and realm stripped off.</p>

<p>The Log servers have their own authorization configurations.  These are set through <em>logs.users</em> and <em>logs.groups</em>.  These should be set to the admin users or groups for all of the nodes in the cluster.  </p>

<p>When a topology is submitted, the submitting user can specify users in this list as well.  The users and groups specified-in addition to the users in the cluster-wide setting-will be granted access to the submitted topology&#39;s worker logs in the logviewers.</p>

<h3 id="supervisors-headless-user-and-group-setup">Supervisors headless User and group Setup</h3>

<p>To ensure isolation of users in multi-tenancy, there is need to run supervisors and headless user and group unique to execution on the supervisor nodes.  To enable this follow below steps.
1. Add headlessuser to all supervisor hosts.
2. Create unique group and make it the primary group for the headless user on the supervisor nodes.
3. The set following properties on storm for these supervisor nodes.</p>

<h3 id="multi-tenant-scheduler">Multi-tenant Scheduler</h3>

<p>To support multi-tenancy better we have written a new scheduler.  To enable this scheduler set.
<code>yaml
storm.scheduler: &quot;org.apache.storm.scheduler.multitenant.MultitenantScheduler&quot;
</code>
Be aware that many of the features of this scheduler rely on storm authentication.  Without them the scheduler will not know what the user is and will not isolate topologies properly.</p>

<p>The goal of the multi-tenant scheduler is to provide a way to isolate topologies from one another, but to also limit the resources that an individual user can have in the cluster.</p>

<p>The scheduler currently has one config that can be set either through =storm.yaml= or through a separate config file called =multitenant-scheduler.yaml= that should be placed in the same directory as =storm.yaml=.  It is preferable to use =multitenant-scheduler.yaml= because it can be updated without needing to restart nimbus.</p>

<p>There is currently only one config in =multitenant-scheduler.yaml=, =multitenant.scheduler.user.pools= is a map from the user name, to the maximum number of nodes that user is guaranteed to be able to use for their topologies.</p>

<p>For example:</p>
<div class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="s">multitenant.scheduler.user.pools</span><span class="pi">:</span> 
    <span class="s2">"</span><span class="s">evans"</span><span class="pi">:</span> <span class="s">10</span>
    <span class="s2">"</span><span class="s">derek"</span><span class="pi">:</span> <span class="s">10</span>
</code></pre></div>
<h3 id="run-worker-processes-as-user-who-submitted-the-topology">Run worker processes as user who submitted the topology</h3>

<p>By default storm runs workers as the user that is running the supervisor.  This is not ideal for security.  To make storm run the topologies as the user that launched them set.</p>
<div class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="s">supervisor.run.worker.as.user</span><span class="pi">:</span> <span class="no">true</span>
</code></pre></div>
<p>There are several files that go along with this that are needed to be configured properly to make storm secure.</p>

<p>The worker-launcher executable is a special program that allows the supervisor to launch workers as different users.  For this to work it needs to be owned by root, but with the group set to be a group that only the supervisor headless user is a part of.
It also needs to have 6550 permissions.
There is also a worker-launcher.cfg file, usually located under /etc/ that should look something like the following</p>
<div class="highlight"><pre><code class="language-" data-lang="">storm.worker-launcher.group=$(worker_launcher_group)
min.user.id=$(min_user_id)
</code></pre></div>
<p>where worker_launcher_group is the same group the supervisor is a part of, and min.user.id is set to the first real user id on the system.
This config file also needs to be owned by root and not have world or group write permissions.</p>

<h3 id="impersonating-a-user">Impersonating a user</h3>

<p>A storm client may submit requests on behalf of another user. For example, if a <code>userX</code> submits an oozie workflow and as part of workflow execution if user <code>oozie</code> wants to submit a topology on behalf of <code>userX</code>
it can do so by leveraging the impersonation feature.In order to submit topology as some other user , you can use <code>StormSubmitter.submitTopologyAs</code> API. Alternatively you can use <code>NimbusClient.getConfiguredClientAs</code> 
to get a nimbus client as some other user and perform any nimbus action(i.e. kill/rebalance/activate/deactivate) using this client. </p>

<p>Impersonation authorization is disabled by default which means any user can perform impersonation. To ensure only authorized users can perform impersonation you should start nimbus with <code>nimbus.impersonation.authorizer</code> set to <code>org.apache.storm.security.auth.authorizer.ImpersonationAuthorizer</code>.
The <code>ImpersonationAuthorizer</code> uses <code>nimbus.impersonation.acl</code> as the acl to authorize users. Following is a sample nimbus config for supporting impersonation:</p>
<div class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="s">nimbus.impersonation.authorizer</span><span class="pi">:</span> <span class="s">org.apache.storm.security.auth.authorizer.ImpersonationAuthorizer</span>
<span class="s">nimbus.impersonation.acl</span><span class="pi">:</span>
    <span class="na">impersonating_user1</span><span class="pi">:</span>
        <span class="na">hosts</span><span class="pi">:</span>
            <span class="pi">[</span><span class="nv">comma separated list of hosts from which impersonating_user1 is allowed to impersonate other users</span><span class="pi">]</span>
        <span class="na">groups</span><span class="pi">:</span>
            <span class="pi">[</span><span class="nv">comma separated list of groups whose users impersonating_user1 is allowed to impersonate</span><span class="pi">]</span>
    <span class="na">impersonating_user2</span><span class="pi">:</span>
        <span class="na">hosts</span><span class="pi">:</span>
            <span class="pi">[</span><span class="nv">comma separated list of hosts from which impersonating_user2 is allowed to impersonate other users</span><span class="pi">]</span>
        <span class="na">groups</span><span class="pi">:</span>
            <span class="pi">[</span><span class="nv">comma separated list of groups whose users impersonating_user2 is allowed to impersonate</span><span class="pi">]</span>
</code></pre></div>
<p>To support the oozie use case following config can be supplied:
<code>yaml
nimbus.impersonation.acl:
    oozie:
        hosts:
            [oozie-host1, oozie-host2, 127.0.0.1]
        groups:
            [some-group-that-userX-is-part-of]
</code></p>

<h3 id="automatic-credentials-push-and-renewal">Automatic Credentials Push and Renewal</h3>

<p>Individual topologies have the ability to push credentials (tickets and tokens) to workers so that they can access secure services.  Exposing this to all of the users can be a pain for them.
To hide this from them in the common case plugins can be used to populate the credentials, unpack them on the other side into a java Subject, and also allow Nimbus to renew the credentials if needed. These are controlled by the following configs.</p>

<p><code>topology.auto-credentials</code> is a list of java plugins, all of which must implement the <code>IAutoCredentials</code> interface, that populate the credentials on gateway 
and unpack them on the worker side. On a kerberos secure cluster they should be set by default to point to <code>org.apache.storm.security.auth.kerberos.AutoTGT</code></p>

<p><code>nimbus.credential.renewers.classes</code> should also be set to <code>org.apache.storm.security.auth.kerberos.AutoTGT</code> so that nimbus can periodically renew the TGT on behalf of the user.  </p>

<p>All autocredential classes that desire to implement the IMetricsRegistrant interface can register metrics automatically for each topology.  The AutoTGT class currently implements this interface and adds a metric named TGT-TimeToExpiryMsecs showing the remaining time until the TGT needs to be renewed.</p>

<p><code>nimbus.credential.renewers.freq.secs</code> controls how often the renewer will poll to see if anything needs to be renewed, but the default should be fine.</p>

<p>In addition Nimbus itself can be used to get credentials on behalf of the user submitting topologies. This can be configured using <code>nimbus.autocredential.plugins.classes</code> which is a list 
of fully qualified class names, all of which must implement <code>INimbusCredentialPlugin</code>.  Nimbus will invoke the populateCredentials method of all the configured implementation as part of topology
submission. You should use this config with <code>topology.auto-credentials</code> and <code>nimbus.credential.renewers.classes</code> so the credentials can be populated on worker side and nimbus can automatically renew
them. Currently there are 2 examples of using this config, AutoHDFS and AutoHBase which auto populates hdfs and hbase delegation tokens for topology submitter so they don&#39;t have to distribute keytabs
on all possible worker hosts.</p>

<h3 id="limits">Limits</h3>

<p>By default storm allows any sized topology to be submitted. But ZK and others have limitations on how big a topology can actually be.  The following configs allow you to limit the maximum size a topology can be.</p>

<table><thead>
<tr>
<th>YAML Setting</th>
<th>Description</th>
</tr>
</thead><tbody>
<tr>
<td>nimbus.slots.perTopology</td>
<td>The maximum number of slots/workers a topology can use.</td>
</tr>
<tr>
<td>nimbus.executors.perTopology</td>
<td>The maximum number of executors/threads a topology can use.</td>
</tr>
</tbody></table>

<h3 id="log-cleanup">Log Cleanup</h3>

<p>The Logviewer daemon now is also responsible for cleaning up old log files for dead topologies.</p>

<table><thead>
<tr>
<th>YAML Setting</th>
<th>Description</th>
</tr>
</thead><tbody>
<tr>
<td>logviewer.cleanup.age.mins</td>
<td>How old (by last modification time) must a worker&#39;s log be before that log is considered for clean-up. (Living workers&#39; logs are never cleaned up by the logviewer: Their logs are rolled via logback.)</td>
</tr>
<tr>
<td>logviewer.cleanup.interval.secs</td>
<td>Interval of time in seconds that the logviewer cleans up worker logs.</td>
</tr>
</tbody></table>

<h3 id="allowing-specific-users-or-groups-to-access-storm">Allowing specific users or groups to access storm</h3>

<p>With SimpleACLAuthorizer any user with valid kerberos ticket can deploy a topology or do further operations such as activate, deactivate , access cluster information.
 One can restrict this access by specifying nimbus.users or nimbus.groups. If nimbus.users configured only the users in the list can deploy a topology or access cluster.
 Similarly nimbus.groups restrict storm cluster access to users who belong to those groups.</p>

<p>To configure specify the following config in storm.yaml</p>
<div class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="s">nimbus.users</span><span class="pi">:</span> 
   <span class="pi">-</span> <span class="s2">"</span><span class="s">testuser"</span>
</code></pre></div>
<p>or </p>
<div class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="s">nimbus.groups</span><span class="pi">:</span> 
   <span class="pi">-</span> <span class="s2">"</span><span class="s">storm"</span>
</code></pre></div>
<h3 id="drpc">DRPC</h3>

<p>Storm provides the Access Control List for the DRPC Authorizer.Users can see <a href="javadocs/org/apache/storm/security/auth/authorizer/DRPCSimpleACLAuthorizer.html">org.apache.storm.security.auth.authorizer.DRPCSimpleACLAuthorizer</a> for more details.</p>

<p>There are several DRPC ACL related configurations.</p>

<table><thead>
<tr>
<th>YAML Setting</th>
<th>Description</th>
</tr>
</thead><tbody>
<tr>
<td>drpc.authorizer.acl</td>
<td>A class that will perform authorization for DRPC operations. Set this to org.apache.storm.security.auth.authorizer.DRPCSimpleACLAuthorizer when using security.</td>
</tr>
<tr>
<td>drpc.authorizer.acl.filename</td>
<td>This is the name of a file that the ACLs will be loaded from. It is separate from storm.yaml to allow the file to be updated without bringing down a DRPC server. Defaults to drpc-auth-acl.yaml</td>
</tr>
<tr>
<td>drpc.authorizer.acl.strict</td>
<td>It is useful to set this to false for staging where users may want to experiment, but true for production where you want users to be secure. Defaults to false.</td>
</tr>
</tbody></table>

<p>The file pointed to by drpc.authorizer.acl.filename will have only one config in it drpc.authorizer.acl this should be of the form</p>
<div class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="s">drpc.authorizer.acl</span><span class="pi">:</span>
   <span class="s2">"</span><span class="s">functionName1"</span><span class="pi">:</span>
     <span class="s2">"</span><span class="s">client.users"</span><span class="pi">:</span>
       <span class="pi">-</span> <span class="s2">"</span><span class="s">alice"</span>
       <span class="pi">-</span> <span class="s2">"</span><span class="s">bob"</span>
     <span class="s2">"</span><span class="s">invocation.user"</span><span class="pi">:</span> <span class="s2">"</span><span class="s">bob"</span>
</code></pre></div>
<p>In this the users bob and alice as client.users are allowed to run DRPC requests against functionName1, but only bob as the invocation.user is allowed to run the topology that actually processes those requests.</p>

<h2 id="cluster-zookeeper-authentication">Cluster Zookeeper Authentication</h2>

<p>Users can implement cluster Zookeeper authentication by setting several configurations are shown below.</p>

<table><thead>
<tr>
<th>YAML Setting</th>
<th>Description</th>
</tr>
</thead><tbody>
<tr>
<td>storm.zookeeper.auth.scheme</td>
<td>The cluster Zookeeper authentication scheme to use, e.g. &quot;digest&quot;. Defaults to no authentication.</td>
</tr>
<tr>
<td>storm.zookeeper.auth.payload</td>
<td>A string representing the payload for cluster Zookeeper authentication. It should only be set in the storm-cluster-auth.yaml. Users can see storm-cluster-auth.yaml.example for more details.</td>
</tr>
</tbody></table>

<p>Also, there are several configurations for topology Zookeeper authentication:</p>

<table><thead>
<tr>
<th>YAML Setting</th>
<th>Description</th>
</tr>
</thead><tbody>
<tr>
<td>storm.zookeeper.topology.auth.scheme</td>
<td>The topology Zookeeper authentication scheme to use, e.g. &quot;digest&quot;. It is the internal config and user shouldn&#39;t set it.</td>
</tr>
<tr>
<td>storm.zookeeper.topology.auth.payload</td>
<td>A string representing the payload for topology Zookeeper authentication.</td>
</tr>
</tbody></table>

<p>Note: If storm.zookeeper.topology.auth.payload isn&#39;t set, Storm will generate a ZooKeeper secret payload for MD5-digest with generateZookeeperDigestSecretPayload() method.</p>
</div>


	          </div>
	       </div>
	  </div>
<footer>
    <div class="container-fluid">
        <div class="row">
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>Meetups</h5>
                    <ul class="latest-news">
                        
                        <li><a href="http://www.meetup.com/Apache-Storm-Apache-Kafka/">Apache Storm & Apache Kafka</a> <span class="small">(Sunnyvale, CA)</span></li>
                        
                        <li><a href="http://www.meetup.com/Apache-Storm-Kafka-Users/">Apache Storm & Kafka Users</a> <span class="small">(Seattle, WA)</span></li>
                        
                        <li><a href="http://www.meetup.com/New-York-City-Storm-User-Group/">NYC Storm User Group</a> <span class="small">(New York, NY)</span></li>
                        
                        <li><a href="http://www.meetup.com/Bay-Area-Stream-Processing">Bay Area Stream Processing</a> <span class="small">(Emeryville, CA)</span></li>
                        
                        <li><a href="http://www.meetup.com/Boston-Storm-Users/">Boston Realtime Data</a> <span class="small">(Boston, MA)</span></li>
                        
                        <li><a href="http://www.meetup.com/storm-london">London Storm User Group</a> <span class="small">(London, UK)</span></li>
                        
                        <!-- <li><a href="http://www.meetup.com/Apache-Storm-Kafka-Users/">Seatle, WA</a> <span class="small">(27 Jun 2015)</span></li> -->
                    </ul>
                </div>
            </div>
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>About Apache Storm</h5>
                    <p>Apache Storm integrates with any queueing system and any database system. Apache Storm's spout abstraction makes it easy to integrate a new queuing system. Likewise, integrating Apache Storm with database systems is easy.</p>
               </div>
            </div>
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>First Look</h5>
                    <ul class="footer-list">
                        <li><a href="/releases/current/Rationale.html">Rationale</a></li>
                        <li><a href="/releases/current/Tutorial.html">Tutorial</a></li>
                        <li><a href="/releases/current/Setting-up-development-environment.html">Setting up development environment</a></li>
                        <li><a href="/releases/current/Creating-a-new-Storm-project.html">Creating a new Apache Storm project</a></li>
                    </ul>
                </div>
            </div>
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>Documentation</h5>
                    <ul class="footer-list">
                        <li><a href="/releases/current/index.html">Index</a></li>
                        <li><a href="/releases/current/javadocs/index.html">Javadoc</a></li>
                        <li><a href="/releases/current/FAQ.html">FAQ</a></li>
                    </ul>
                </div>
            </div>
        </div>
        <hr/>
        <div class="row">   
            <div class="col-md-12">
                <p align="center">Copyright © 2019 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved. 
                    <br>Apache Storm, Apache, the Apache feather logo, and the Apache Storm project logos are trademarks of The Apache Software Foundation. 
                    <br>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
            </div>
        </div>
    </div>
</footer>
<!--Footer End-->
<!-- Scroll to top -->
<span class="totop"><a href="#"><i class="fa fa-angle-up"></i></a></span> 

</body>

</html>

