Github user andrewmlim commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/1713#discussion_r114130770
  
    --- Diff: nifi-docs/src/main/asciidoc/user-guide.adoc ---
    @@ -1799,6 +1799,70 @@ Once "Expand" is selected, the graph is re-drawn to 
show the children and their
     
     image:expanded-events.png["Expanded Events"]
     
    +[[encrypted-provenance]]
    +=== Encrypted Provenance Repository
    +While OS-level access control can offer some security over the provenance 
data written to the disk in a repository, there are scenarios where the data 
may be sensitive, compliance and regulatory requirements, or NiFi is running on 
hardware not under the direct control of the organization (cloud, etc.). In 
this case, the provenance repository allows for all data to be encrypted before 
being persisted to the disk.
    +
    +[WARNING]
    +.Performance
    +============
    +The current implementation of the encrypted provenance repository 
intercepts the record writer and reader of `WriteAheadProvenanceRepository`, 
which offers significant performance improvements over the legacy 
`PersistentProvenanceRepository` and uses the `AES/GCM` algorithm, which is 
fairly performant on commodity hardware. In most scenarios, the added cost will 
not be significant (unnoticable on a flow with hundreds of provenance events 
per second, moderately noticable on a flow with thousands - tens of thousands 
of events per second). However, administrators should perform their own risk 
assessment and performance analysis and decide how to move forward. Switching 
back and forth between encrypted/unencrypted implementations is not recommended 
at this time.
    +============
    +
    +==== What is it?
    +
    +The `EncryptedWriteAheadProvenanceRepository` is a new implementation of 
the provenance repository which encrypts all event record information before it 
is written to the repository. This allows for storage on systems where OS-level 
access controls are not sufficient to protect the data while still allowing 
querying and access to the data through the NiFi UI/API.
    +
    +==== How does it work?
    +
    +The `WriteAheadProvenanceRepository` was introduced in NiFi 1.2.0 and 
provided a refactored and much faster provenance repository implementation than 
the previous `PersistentProvenanceRepository`. The encrypted version wraps that 
implementation with a record writer and reader which encrypt and decrypt the 
serialized bytes respectively.
    +
    +The fully qualified class 
`org.apache.nifi.provenance.EncryptedWriteAheadProvenanceRepository` is 
specified as the provenance repository implementation in `nifi.properties` as 
the value of `nifi.provenance.repository.implementation`. In addition, 
<<administration-guide.adoc#encrypted-write-ahead-provenance-repository-properties,new
 properties>> must be populated to allow successful initialization.
    +
    +===== StaticKeyProvider
    +The `StaticKeyProvider` implementation defines keys directly in 
`nifi.properties`. Individual keys are provided in hexadecimal encoding (can 
also be encrypted like any other sensitive property in `nifi.properties` using 
the <<administration-guide.adoc#encrypt-config_tool,`./encrypt-config.sh`>> 
tool in the NiFi Toolkit).
    --- End diff --
    
    Suggest break up second sentence into two:  Individual keys are provided in 
hexadecimal encoding.  The keys can also be encrypted like any other sensitive 
property in `nifi.properties` using the 
<<administration-guide.adoc#encrypt-config_tool,`./encrypt-config.sh`>> tool in 
the NiFi Toolkit.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to