andrewmlim commented on a change in pull request #3968: NIFI-3833 Implemented 
encrypted flowfile repository
URL: https://github.com/apache/nifi/pull/3968#discussion_r364816410
 
 

 ##########
 File path: nifi-docs/src/main/asciidoc/administration-guide.adoc
 ##########
 @@ -2530,6 +2530,32 @@ implementation.
 |`nifi.flowfile.repository.always.sync`|If set to `true`, any change to the 
repository will be synchronized to the disk, meaning that NiFi will ask the 
operating system not to cache the information. This is very expensive and can 
significantly reduce NiFi performance. However, if it is `false`, there could 
be the potential for data loss if either there is a sudden power loss or the 
operating system crashes. The default value is `false`.
 |====
 
+[[encrypted-write-ahead-flowfile-repository-properties]]
+=== Encrypted Write Ahead FlowFile Repository Properties
+
+All of the properties defined above (see 
<<write-ahead-flowfile-repository,Write Ahead FlowFile Repository>>) still 
apply. Only encryption-specific properties are listed here. See 
<<user-guide.adoc#encrypted-flowfile,Encrypted FlowFile Repository in the User 
Guide>> for more information.
+
+NOTE: Unlike the encrypted content and provenance repositories, the repository 
implementation does not change here, only the _underlying write-ahead log 
implementation_. This allows for cleaner separation and more flexibility in 
implementation selection. The property that should be changed to enable 
encryption is `nifi.flowfile.repository.wal.implementation`.
+
+|====
+|*Property*|*Description*
+|`nifi.flowfile.repository.encryption.key.provider.implementation`|This is the 
fully-qualified class name of the **key provider**. A key provider is the 
datastore interface for accessing the encryption key to protect the content 
claims. There are currently two implementations -- `StaticKeyProvider` which 
reads a key directly from _nifi.properties_, and `FileBasedKeyProvider` which 
reads *n* many keys from an encrypted file. The interface is extensible, and 
HSM-backed or other providers are expected in the future.
+|`nifi.flowfile.repository.encryption.key.provider.location`|The path to the 
key definition resource (empty for `StaticKeyProvider`, `./keys.nkp` or similar 
path for `FileBasedKeyProvider`). For future providers like an HSM, this may be 
a connection string or URL.
+|`nifi.flowfile.repository.encryption.key.id`|The active key ID to use for 
encryption (e.g. `Key1`).
+|`nifi.flowfile.repository.encryption.key`|The key to use for 
`StaticKeyProvider`. The key format is hex-encoded 
(`0123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA9876543210`) but can 
also be encrypted using the `./encrypt-config.sh` tool in NiFi Toolkit (see the 
<<toolkit-guide.adoc#encrypt_config_tool,Encrypt-Config Tool>> section in the 
link:toolkit-guide.html[NiFi Toolkit Guide] for more information).
+|`nifi.flowfile.repository.encryption.key.id.`*|Allows for additional keys to 
be specified for the `StaticKeyProvider`. For example, the line 
`nifi.flowfile.repository.encryption.key.id.Key2=012...210` would provide an 
available key `Key2`.
+|====
+
+The simplest configuration is below:
+
+....
+nifi.flowfile.repository.implementation=org.apache.nifi.controller.repository.WriteAheadFlowFileRepository
+nifi.flowfile.repository.wal.implementation=org.apache.nifi.wali.EncryptedSequentialAccessWriteAheadLog
+nifi.flowfile.repository.encryption.key.provider.implementation=org.apache.nifi.security.kms.StaticKeyProvider
+nifi.flowfile.repository.encryption.key.provider.location=
+nifi.flowfile.repository.encryption.key.id=K1
 
 Review comment:
   The example provided earlier is "Key1", but here is it is "K1".  Perhaps 
change this to "Key1" to be consistent.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to