Hi folks, It's been a few days since I last pinged and nobody replied so I assume that this KIP is abandoned and I can take this over (but please let me know if it's not). I will keep the current version of the KIP and move it to a sub-page if it's ever needed.
Thanks, Viktor On Fri, Aug 28, 2020 at 11:35 AM Viktor Somogyi-Vass < viktorsomo...@gmail.com> wrote: > Hi folks, > > I have a use-case and a non-trivial implementation with Apache Atlas for > this KIP and since this kip seems to be dormant for a while now, I'd take > it over and drive it to completion if you don't mind. > The current state of the PoC can be found on my fork at > https://github.com/viktorsomogyi/kafka/tree/atlas-audit-impl. > > Viktor > > On Wed, Jan 29, 2020 at 9:32 AM Игорь Мартемьянов <ledost...@gmail.com> > wrote: > >> Hello, Nikolai. >> >> >> >> > Can you, please, make it more specific? >> >> > Why does a business want to have this information? >> >> It is very demanded for security department to know who/when/where create >> or edit ACL settings. The same situation about topics. >> >> >> >> > What are the use-cases for it? >> >> This KIP are able to help catching some unauthorized changes of cluster >> resources or save history these changes. >> >> >> >> > Who will be analyzing these events and how? >> >> Events could be analyzed by some security department or developers who >> builds applications that can change cluster resources. >> >> >> >> > Why it’s not convenient to implement it with third-party tools? >> >> It is imposible to my mind getting detailed information about these events >> through third-party tools, because we don`t have the ability to catch >> these >> events outside Kafka core. >> >> >> >> > 1. `audit` name sounds too general for me. How about `onEvent`? >> >> Thanks, good point. I`ll change the method name. >> >> >> >> > 2. Should we introduce a special marker interface for audit events? >> >> > `AuditableRequest`, for example? >> >> No, we shouldn`t. We are going to create these events if we process >> special >> request in KafkaApis class (ApiKeys.CREATE_TOPICS, ApiKeys.DELETE_TOPICS, >> ApiKeys.CREATE_ACLS, ApiKeys.DELETE_ACLS, ApiKeys.DESCRIBE_ACLS, >> ApiKeys.ALTER_CONFIGS) >> >> >> >> >> public interface AuditEvent<T extends AbstractRequest> { >> >> >> String guid(); >> >> >> >> > Where this `guid` comes from? >> >> Guid generated automatically when the audit event is created. >> >> >> >> > Will it be the same on each node that receives an auditable event? >> >> Event is creating while request that changes cluster resource is processed >> and will destroyed after the prosessing will finished on each node. >> >> >> >> > Do we have `guid` for any extensions of `AbstractRequest`? >> >> No, we don`t. >> >> >> >> > If this field is `guid` why do we format this as a String on the API >> level? >> >> Thanks for the point. >> >> I have changed event interface recently. >> >> >> >> > Can you, please, add a full list of proposed new configuration >> properties >> and >> >> > examples for each to clarify your intentions? >> >> Yes, I have added some examples of new configuration properties. >> >> ср, 29 янв. 2020 г., 10:23 Владимир Беруненко <vvberune...@gmail.com>: >> >> > Hi Nikolai! >> > >> > >Can you, please, make it more specific? >> > Why does a business want to have this information? >> > >What are the use-cases for it? >> > >Who will be analyzing these events and how? >> > >Why it’s not convenient to implement it with third-party tools? >> > >> > This is required by the guys from information security to detect >> potential >> > threats of violation the rules for providing access to the data layer. >> > Analysis in the audit system is usually based on identifying >> > uncharacteristic integrations. The key feature of the audit, is that >> > cluster administrators do not have access to modification of audit >> events. >> > Third-party tools are great for data analysis, but its not good idea to >> use >> > it for audit events collection. >> > >> > >It’s not clear for me where and when AuditEvents will be sent? >> > Who will be the receiver of events? >> > >> > In my opinion, sending an audit event should be initiated when the >> broker >> > receives a request that matches the audit parameters. Each organization >> has >> > its own receiver system, so a common interface is required that the >> > organization’s development team can implement to integrate with their >> audit >> > system. >> > >> > Best wishes, Vladimir >> > >> > Hello, Igor. >> > > >> > > Thanks for the KIP. >> > > I have a couple of comments for it: >> > > >> > > > Motivation >> > > > It is highly demanded in most businesses to have the ability of >> > > obtaining audit information in case someone changes cluster >> configuration >> > > (like creation/deletion/modify/description of any topic or ACLs). >> > > >> > > Can you, please, make it more specific? >> > > Why does a business want to have this information? >> > > What are the use-cases for it? >> > > Who will be analyzing these events and how? >> > > Why it’s not convenient to implement it with third-party tools? >> > > >> > > It’s not clear for me where and when AuditEvents will be sent? >> > > Who will be the receiver of events? >> > > >> > > > void audit<T extends AbstractRequest>(AuditEvent<T> event); >> > > >> > > 1. `audit` name sounds too general for me. How about `onEvent`? >> > > 2. Should we introduce a special marker interface for audit events? >> > > `AuditableRequest`, for example? >> > > >> > > > public interface AuditEvent<T extends AbstractRequest> { >> > > > String guid(); >> > > >> > > Where this `guid` comes from? >> > > Will it be the same on each node that receives an auditable event? >> > > Do we have `guid` for any extensions of `AbstractRequest`? >> > > If this field is `guid` why do we format this as a String on the API >> > level? >> > > >> > > > One or more of AuditExtension's implementations can be configured >> via >> > > the configuration audit.extension.classes >> > > >> > > Can you, please, add a full list of proposed new configuration >> properties >> > > and examples for each to clarify your intentions? >> > > >> > > >> > > > 24 янв. 2020 г., в 18:12, Alexander Dunayevsky < >> > a.a.dunayev...@gmail.com> >> > > написал(а): >> > > > >> > > > Hello Igor, >> > > > >> > > > Thanks for your KIP 🙌🏽 >> > > > It would be great to adopt this functionality and getting the best >> of >> > > > tracking cluster activity. >> > > > >> > > > +1 vote from me >> > > > >> > > > Cheers, >> > > > Alex Dunayevsky >> > > > >> > > > >> > > > On Fri, 24 Jan 2020, 15:35 Игорь Мартемьянов, <ledost...@gmail.com> >> > > wrote: >> > > > >> > > >> Motivation: >> > > >> >> > > >> >> > > >> *It is highly demanded in most businesses to have the ability of >> > > obtaining >> > > >> audit information in case someone changes cluster configuration >> (like >> > > >> creation/deletion/modify/description of any topic or ACLs).We may >> add >> > > this >> > > >> ability. Since audit requirements are so broad, it's impractical to >> > > support >> > > >> all of them.Hence we have to provide ability for users to plug >> > resources >> > > >> helping to achieve required capabilities.* >> > > >> >> > > >> >> > > >> >> > > >> > >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-567%3A+Kafka+Cluster+Audit >> > > >> >> > > >> >> > > >> пт, 24 янв. 2020 г., 17:29 Игорь Мартемьянов <ledost...@gmail.com >> >: >> > > >> >> > > >>> Hello there. >> > > >>> Please review this KIP. >> > > >>> Thanks. >> > > >>> >> > > >> >> > > >> > > >> > >> >