This is an automated email from the ASF dual-hosted git repository.

lucasbru pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/trunk by this push:
     new e8e4e0b6dba KAFKA-19377:Update /streams/developer-guide/security.html 
for KIP-1071 (#20084)
e8e4e0b6dba is described below

commit e8e4e0b6dba77837d7fd97821e10dbee46a4e16e
Author: KTKTK-HZ <[email protected]>
AuthorDate: Thu Jul 17 16:35:46 2025 +0800

    KAFKA-19377:Update /streams/developer-guide/security.html for KIP-1071 
(#20084)
    
    Added required ACLs for new streams operations:
    
    - STREAMS_GROUP_HEARTBEAT (88) requires:
      • READ on Group
      • DESCRIBE on Topics
      • [Conditional] CREATE on Cluster or Topics
    - STREAMS_GROUP_DESCRIBE (89) requires:
      • DESCRIBE on Group
      • DESCRIBE on Topic
    
    Here is the rendering of the modified document.
    
    Reviewers: Lucas Brutschy <[email protected]>
    Co-authored-by: Lucas Brutschy <[email protected]>
---
 docs/streams/developer-guide/security.html | 61 +++++++++++++++++++++++++++++-
 1 file changed, 60 insertions(+), 1 deletion(-)

diff --git a/docs/streams/developer-guide/security.html 
b/docs/streams/developer-guide/security.html
index 13e671fa931..bae4d90b8b2 100644
--- a/docs/streams/developer-guide/security.html
+++ b/docs/streams/developer-guide/security.html
@@ -70,7 +70,65 @@
                 the ACL set so that the application has the permissions to 
create, read and write
                 <a class="reference internal" 
href="manage-topics.html#streams-developer-guide-topics-internal"><span 
class="std std-ref">internal topics</span></a>.</p>
 
-                <p>To avoid providing this permission to your application, you 
can create the required internal topics manually.
+            <div class="admonition">
+                <p>If the <a class="reference external" 
href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-1071%3A+Streams+Rebalance+Protocol";>streams
 rebalance protocol</a> is enabled by setting 
<code>group.protocol=streams</code>, the following ACLs are required on the 
topic and group resources:</p>
+            </div>
+
+            <table border="1" class="docutils">
+                <colgroup>
+                    <col width="25%">
+                    <col width="15%">
+                    <col width="20%">
+                    <col width="40%">
+                </colgroup>
+                <thead valign="bottom">
+                <tr class="row-odd"><th class="head">API PROTOCOL</th>
+                    <th class="head">OPERATION</th>
+                    <th class="head">Resource</th>
+                    <th class="head">Notes</th>
+                </tr>
+                </thead>
+                <tbody valign="top">
+                <tr class="row-even">
+                    <td>STREAMS_GROUP_HEARTBEAT</td>
+                    <td>Read</td>
+                    <td>Group</td>
+                    <td>Required for the application's streams group</td>
+                </tr>
+                <tr class="row-odd">
+                    <td>STREAMS_GROUP_HEARTBEAT</td>
+                    <td>Create</td>
+                    <td>Cluster <i>or</i> Topic</td>
+                    <td>
+                        Required only if auto-creating internal topics.<br>
+                        • <code>Create</code> on Cluster resource<br>
+                        • or <code>Create</code> on all topics in 
StateChangelogTopics and RepartitionSourceTopics<br>
+                        Not required if internal topics are pre-created
+                    </td>
+                </tr>
+                <tr class="row-even">
+                    <td>STREAMS_GROUP_HEARTBEAT</td>
+                    <td>Describe</td>
+                    <td>Topic</td>
+                    <td>Required for all topics used in the application's 
topology, when first joining.</td>
+                </tr>
+                <tr class="row-odd">
+                    <td>STREAMS_GROUP_DESCRIBE</td>
+                    <td>Describe</td>
+                    <td>Group</td>
+                    <td>Required for the application's streams group</td>
+                </tr>
+                <tr class="row-even">
+                    <td>STREAMS_GROUP_DESCRIBE</td>
+                    <td>Describe</td>
+                    <td>Topic</td>
+                    <td>Required for all topics used in the group's 
topology</td>
+                </tr>
+                </tbody>
+            </table>
+
+                <p>As mentioned earlier, Kafka Streams applications need 
appropriate ACLs to create internal topics when running against a secured Kafka 
cluster.
+                    To avoid providing this permission to your application, 
you can create the required internal topics manually.
                     If the internal topics exist, Kafka Streams will not try 
to recreate them.
                     Note, that the internal repartition and changelog topics 
must be created with the correct number of partitions&mdash;otherwise, Kafka 
Streams will fail on startup.
                 The topics must be created with the same number of partitions 
as your input topic, or if there are multiple topics, the maximum number of 
partitions across all input topics.
@@ -89,6 +147,7 @@
                 and <a class="reference external" 
href="https://cwiki.apache.org/confluence/x/QpvLB";>KIP-290</a> for details).
             </p>
         </div>
+
         <div class="section" id="security-example">
             <span id="streams-developer-guide-security-example"></span><h2><a 
class="toc-backref" href="#id2">Security example</a><a class="headerlink" 
href="#security-example" title="Permalink to this headline"></a></h2>
             <p>The purpose is to configure a Kafka Streams application to 
enable client authentication and encrypt data-in-transit when

Reply via email to