Setting aside the user auth/permissions issue (which sounds like, from your initial email, that you nailed perfectly with a secured cluster), I'll address this accidental deletion issue using what I consider a general design pattern for Nifi (or any process that write-touches files):
* I don't allow physical file deletes (which happen with the default GetFiles settings) * I create an archive folder for files I've processed if I want/need to move them out of the processing folder * I always set the "leave files" flag * I use either the timestamp or filename tracker to eliminate repeated processing if I'm not moving the files * OR - I use Move File flag to the archive folder destination. * And I advise new users to always spec a small test folder to start, and to double-check that the remove files is turned off. In some cases, like when I'm processing text files in place in secure repo, I can't move the files so I use the timestamp eval method. In others, like log files where I definitely want to archive them out of that processing folder, I use the move model. Don't get discouraged about this twist in the road - you'll find Nifi to be a truly exceptional product for pipeline automation, wildly more powerful/flexible/stable than any other product out there (I've used most). I've used it IoT to DB to ML processing, document processing, metrology data processing, you name it. In particular, the built data provenance and auditability will be valuable for your situation at Optum. All the best, Mike From: Ruth, Thomas <[email protected]> Sent: Friday, June 04, 2021 12:26 PM To: [email protected] Subject: RE: Problem with the GetFile processor deleting my entire installation Is it recommended that after installing NiFi, that I then proceed to remove read permissions from all installation files and directories in order to protect them from removal by users? Will this present a problem running the software if it's unable to read any files? So for fun, I loaded up a quick nifi container: docker run -name nifi -p 8080:8080 -d apache/nifi:latest Connected to localhost:8080/nifi Created a GetFile processor, with the directory /opt/nifi. Connected the success to a LogAttributes. Hit Run.. Now I get this: HTTP ERROR 404 /nifi/canvas.jsp URI: /nifi/ STATUS: 404 MESSAGE: /nifi/canvas.jsp SERVLET: jsp This behavior shouldn't be possible, in my opinion. It's putting security in the hands of my developers. I really am looking for a solution to this issue. The help text says this: Creates FlowFiles from files in a directory. NiFi will ignore files it doesn't have at least read permissions for. So as you suggested, I removed the read permission recursively from all files in /opt/nifi. After doing this, nifi no longer starts. find /opt/nifi -print > /tmp/files.txt for I in `cat /tmp/files.txt`; do chmod a-r $i; done I also went to https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator and attempted to calculate a CVSS score for this vulnerability. I ended up calculating a score of 8.0. Tom From: Russell Bateman <[email protected] <mailto:[email protected]> > Sent: Friday, June 4, 2021 11:20 AM To: [email protected] <mailto:[email protected]> Subject: Re: Problem with the GetFile processor deleting my entire installation Oh, sorry, to finish the answer, yes, you do need to be very careful how you specify the Input Directory and File Filter properties; the last one is a regular expression. It's true that the documentation is less than flag-waving or hair-lighting-on-fire as it presents its help on filling those in. Russ On 6/4/21 11:16 AM, Russell Bateman wrote: Sorry for this behavior of GetFile which is purposeful. If you configure to keep the files instead of removing them, you'll keep getting the same files ingested over and over again as flow files. It's just how it is. The secret was to read the help blurb when configuring this processor. Hope this helps, Russ On 6/4/21 10:44 AM, Ruth, Thomas wrote: Hello, I recently built a 3-node NiFi cluster in my organization as a proof-of-concept for some work we are doing. I used version 1.13.2 and installed it onto 3 CentOS 7.9 systems. In my organization, I don't have root access to the system, so I used a different user called "nfadm" to install and run the product. I don't remember seeing anything in the documentation that stated that this would be an issue. I am also new to NiFi, and was relying heavily on the Admin documentation on the web site for instructions to set up the OS and NiFi installations. I configured certificate-based security and distributed them to my users. I also configured policies for groups that I thought were OK for them from a development standpoint. I had an incident occur yesterday in which a user, who is also new to NiFi, ran a component called "GetFile" for the filesystem "/" with the default settings (Recurse=true, KeepSourceFile=false). Well, this essentially ran "rm -rf /" as the user that owns all the installation files and files in the various repositories, nfadm, the same user running the NiFi processes. This deleted all the installation and configuration files for the entire cluster, making it completely useless now. I am surprised to find out that NiFi allowed a user to basically wipe out all the files the user running the NiFi server had access to. I would expect much higher security to be present in a default system. I have some questions that hopefully you can help me with: Is this a known issue in NiFi? Am I doing something wrong when configuring or installing NiFi? Is there a section in the documentation that warns me of this type of scenario? Thanks in advance for your help with this, Tom Ruth Sr. Data Engineer Optum, Inc. E: [email protected] <mailto:[email protected]> This e-mail, including attachments, may include confidential and/or proprietary information, and may be used only by the person or entity to which it is addressed. If the reader of this e-mail is not the intended recipient or his or her authorized agent, the reader is hereby notified that any dissemination, distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify the sender by replying to this message and delete this e-mail immediately. This e-mail, including attachments, may include confidential and/or proprietary information, and may be used only by the person or entity to which it is addressed. If the reader of this e-mail is not the intended recipient or his or her authorized agent, the reader is hereby notified that any dissemination, distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify the sender by replying to this message and delete this e-mail immediately.
