This is an automated email from the ASF dual-hosted git repository.
joewitt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new b719e8728e NIFI-13893 Removed Outdated Encryption Configuration from
Admin Guide This closes #9414
b719e8728e is described below
commit b719e8728eef2e00d10315eb597216c5e1e65018
Author: exceptionfactory <[email protected]>
AuthorDate: Thu Oct 17 14:25:09 2024 -0500
NIFI-13893 Removed Outdated Encryption Configuration from Admin Guide
This closes #9414
- Removed unsupported sensitive properties algorithms
- Removed historical sensitive property provider configuration for
bootstrap.conf
Signed-off-by: Joseph Witt <[email protected]>
---
.../src/main/asciidoc/administration-guide.adoc | 218 +--------------------
1 file changed, 1 insertion(+), 217 deletions(-)
diff --git a/nifi-docs/src/main/asciidoc/administration-guide.adoc
b/nifi-docs/src/main/asciidoc/administration-guide.adoc
index 0e24278b7c..104166a46a 100644
--- a/nifi-docs/src/main/asciidoc/administration-guide.adoc
+++ b/nifi-docs/src/main/asciidoc/administration-guide.adoc
@@ -1815,14 +1815,8 @@ Each Key Derivation Function also uses default iteration
and cost parameters as
=== Property Encryption Algorithms
The following strong encryption methods can be configured in the
`nifi.sensitive.props.algorithm` property:
-* `NIFI_ARGON2_AES_GCM_128`
* `NIFI_ARGON2_AES_GCM_256`
-* `NIFI_BCRYPT_AES_GCM_128`
-* `NIFI_BCRYPT_AES_GCM_256`
-* `NIFI_PBKDF2_AES_GCM_128`
* `NIFI_PBKDF2_AES_GCM_256`
-* `NIFI_SCRYPT_AES_GCM_128`
-* `NIFI_SCRYPT_AES_GCM_256`
Each Key Derivation Function uses the following default parameters:
@@ -1831,19 +1825,10 @@ Each Key Derivation Function uses the following default
parameters:
** Memory: 65536 KB
** Parallelism: 8
-* Bcrypt
-** Cost: 12
-** Derived Key Digest Algorithm: SHA-512
-
* PBKDF2
** Iterations: 160,000
** Pseudorandom Function Family: SHA-512
-* Scrypt
-** Cost Factor (N): 16384
-** Block Size Factor (r): 8
-** Parallelization Factor (p): 1
-
All options require a password (`nifi.sensitive.props.key` value) of *at least
12 characters*.
In new standalone installations of 1.14.0 or later, NiFi generates a random
value when `nifi.sensitive.props.key` is
@@ -1851,206 +1836,6 @@ empty. NiFi writes the generated value to
`nifi.properties` and logs a warning.
Clustered installations of NiFi require the same value to be configured on all
nodes.
-[[hashicorp-vault-providers]]
-=== HashiCorp Vault providers
-Two encryption providers are currently configurable in the
`bootstrap-hashicorp-vault.conf` file:
-
-[options="header,footer"]
-|===
-|Provider|Provider Identifier|Description
-|HashiCorp Vault Transit
provider|`hashicorp/vault/kv/{vault.transit.path}`|Uses HashiCorp Vault's
Transit Secrets Engine to decrypt sensitive properties.
-|HashiCorp Vault Key/Value
provider|`hashicorp/vault/kv/{vault.kv.path}`|Retrieves sensitive values from
Secrets stored in a HashiCorp Vault Key/Value (unversioned) Secrets Engine.
-|===
-
-Note that all HashiCorp Vault encryption providers require a running Vault
instance in order to decrypt these values at NiFi's startup.
-
-Following are the configuration properties available inside the
`bootstrap-hashicorp-vault.conf` file:
-
-==== Required properties
-
-[options="header,footer"]
-|===
-|Property Name|Description|Default
-|`vault.uri`|The HashiCorp Vault URI (e.g., `https://vault-server:8200`). If
not set, all HashiCorp Vault providers will be disabled.|_none_
-|`vault.authentication.properties.file`|Filename of a properties file
containing Vault authentication properties. See the `Authentication-specific
property keys` section of
https://docs.spring.io/spring-vault/docs/2.3.x/reference/html/#vault.core.environment-vault-configuration
for all authentication property keys. If not set, all Spring Vault
authentication properties must be configured directly in
bootstrap-hashicorp-vault.conf.|_none_
-|`vault.transit.path`|If set, enables the HashiCorp Vault Transit provider.
The value should be the Vault `path` of a Transit Secrets Engine (e.g.,
`nifi-transit`). Valid characters include alphanumeric, dash, and
underscore.|_none_
-|`vault.kv.path`|If set, enables the HashiCorp Vault Key/Value provider. The
value should be the Vault `path` of a K/V (v1) Secrets Engine (e.g.,
`nifi-kv`). Valid characters include alphanumeric, dash, and underscore.|_none_
-|===
-
-==== Optional properties
-[options="header,footer"]
-|===
-|Property Name|Description|Default
-|`vault.kv.version`|The Key/Value Secrets Engine version: `1` for unversioned,
and `2` for versioned. This must match the versioned enabled in Vault.|`1`
-|`vault.connection.timeout`|The connection timeout of the Vault client|`5 secs`
-|`vault.read.timeout`|The read timeout of the Vault client|`15 secs`
-|`vault.ssl.enabledCipherSuites`|A comma-separated list of the enabled TLS
cipher suites|_none_
-|`vault.ssl.enabledProtocols`|A comma-separated list of the enabled TLS
protocols|_none_
-|`vault.ssl.key-store`|Path to a keystore. Required if the Vault server is
TLS-enabled|_none_
-|`vault.ssl.key-store-type`|Keystore type (JKS, BCFKS or PKCS12). Required if
the Vault server is TLS-enabled|_none_
-|`vault.ssl.key-store-password`|Keystore password. Required if the Vault
server is TLS-enabled|_none_
-|`vault.ssl.trust-store`|Path to a truststore. Required if the Vault server
is TLS-enabled|_none_
-|`vault.ssl.trust-store-type`|Truststore type (JKS, BCFKS or PKCS12).
Required if the Vault server is TLS-enabled|_none_
-|`vault.ssl.trust-store-password`|Truststore password. Required if the Vault
server is TLS-enabled|_none_
-|===
-
-[[aws-kms-provider]]
-=== AWS KMS provider
-This provider uses https://aws.amazon.com/kms/[AWS Key Management Service] for
decryption. AWS KMS configuration properties can be stored in the
`bootstrap-aws.conf` file, as referenced in `bootstrap.conf`. If the
configuration properties are not specified in `bootstrap-aws.conf`, then the
provider will attempt to use the AWS default credentials provider, which checks
standard environment variables and system properties.
-
-==== Required properties
-[options="header,footer"]
-|===
-|Property Name|Description|Default
-|`aws.kms.key.id`|The identifier or ARN that the AWS KMS client uses for
encryption and decryption.|_none_
-|===
-
-==== Optional properties
-===== All of the following must be configured, or will be ignored entirely.
-[options="header,footer"]
-|===
-|Property Name|Description|Default
-|`aws.region`|The AWS region used to configure the AWS KMS Client.|_none_
-|`aws.access.key.id`|The access key ID credential used to access AWS
KMS.|_none_
-|`aws.secret.access.key`|The secret access key used to access AWS KMS.|_none_
-|===
-
-[[aws-secrets-manager-provider]]
-=== AWS Secrets Manager provider
-This provider uses https://aws.amazon.com/secrets-manager/[AWS Secrets Manager
Service] to store and retrieve AWS Secrets. AWS Secrets Manager configuration
properties can be stored in the `bootstrap-aws.conf` file, as referenced in
`bootstrap.conf`. If the configuration properties are not specified in
`bootstrap-aws.conf`, then the provider will attempt to use the AWS default
credentials provider, which checks standard environment variables and system
properties.
-
-==== Optional properties
-===== All of the following must be configured, or will be ignored entirely.
-[options="header,footer"]
-|===
-|Property Name|Description|Default
-|`aws.region`|The AWS region used to configure the AWS Secrets Manager
Client.|_none_
-|`aws.access.key.id`|The access key ID credential used to access AWS Secrets
Manager.|_none_
-|`aws.secret.access.key`|The secret access key used to access AWS Secrets
Manager.|_none_
-|===
-
-[[azure-key-vault-key-provider]]
-=== Azure Key Vault Key Provider
-This protection scheme uses keys managed by
-https://docs.microsoft.com/en-us/azure/key-vault/keys/about-keys[Azure Key
Vault Keys] for encryption and decryption.
-
-Azure Key Vault configuration properties can be stored in the
`bootstrap-azure.conf` file, as referenced in the
-`bootstrap.conf` of NiFi or NiFi Registry.
-The provider will use the
-https://docs.microsoft.com/en-us/java/api/com.azure.identity.defaultazurecredential[DefaultAzureCredential]
-for authentication.
-The
https://docs.microsoft.com/en-us/java/api/overview/azure/identity-readme#key-concepts[Azure
Identity] client library
-describes the process for credentials resolution, which leverages environment
variables, system properties, and falls
-back to
-https://docs.microsoft.com/en-us/java/api/overview/azure/identity-readme#managed-identity-support[Managed
Identity]
-authentication.
-
-==== Required properties
-[options="header,footer"]
-|===
-|Property Name|Description|Default
-|`azure.keyvault.key.id`|The identifier of the key that the Azure Key Vault
client uses for encryption and decryption.|_none_
-|`azure.keyvault.encryption.algorithm`|The encryption algorithm that the Azure
Key Vault client uses for encryption and decryption.|_none_
-|===
-
-[[azure-key-vault-secret-provider]]
-=== Azure Key Vault Secret Provider
-This protection scheme uses secrets managed by
-https://docs.microsoft.com/en-us/azure/key-vault/secrets/about-secrets[Azure
Key Vault Secrets] for storing and
-retrieving protected properties.
-
-Azure Key Vault configuration properties can be stored in the
`bootstrap-azure.conf` file, as referenced in the
-`bootstrap.conf` of NiFi or NiFi Registry.
-The provider will use the
-https://docs.microsoft.com/en-us/java/api/com.azure.identity.defaultazurecredential[DefaultAzureCredential]
-for authentication.
-The
https://docs.microsoft.com/en-us/java/api/overview/azure/identity-readme#key-concepts[Azure
Identity] client library
-describes the process for credentials resolution, which leverages environment
variables, system properties, and falls
-back to
-https://docs.microsoft.com/en-us/java/api/overview/azure/identity-readme#managed-identity-support[Managed
Identity]
-authentication.
-
-Names of secrets stored in Azure Key Vault support alphanumeric and dash
characters, but do not support characters such as `/` or `.`.
-For this reason, NiFi replaces these characters with `-` when storing and
retrieving secrets. The following table provides an example property name
mapping:
-
-[options="header,footer"]
-|===
-|Property Context|Property Name|Secret Name
-|`default`|`nifi.security.keystorePasswd`|`default-nifi-security-keystorePasswd`
-|===
-
-==== Required properties
-[options="header,footer"]
-|===
-|Property Name|Description|Default
-|`azure.keyvault.uri`|URI for the Azure Key Vault service such as
`https://{value-name}.vault.azure.net/` |_none_
-|===
-
-=== Google Cloud KMS provider
-This protection scheme uses Google Cloud Key Management Service
(https://cloud.google.com/security-key-management[Google Cloud Key Management
Service]) for encryption and decryption. Google Cloud KMS configuration
properties are to be stored in the `bootstrap-gcp.conf` file, as referenced in
the `bootstrap.conf` of NiFi or NiFi Registry. Credentials must be configured
as per the following documentation:
https://cloud.google.com/kms/docs/reference/libraries[Google Cloud KMS
documentation]
-
-==== Required properties
-[options="header,footer"]
-|===
-|Property Name|Description|Default
-|`gcp.kms.project`|The project containing the key that the Google Cloud KMS
client uses for encryption and decryption.|_none_
-|`gcp.kms.location`|The geographic region of the project containing the key
that the Google Cloud KMS client uses for encryption and decryption.|_none_
-|`gcp.kms.keyring`|The keyring containing the key that the Google Cloud KMS
client uses for encryption and decryption.|_none_
-|`gcp.kms.key`|The key identifier that the Google Cloud KMS client uses for
encryption and decryption.|_none_
-|===
-
-=== Property Context Mapping
-Some encryption providers store protected values in an external service
instead of persisting the encrypted values directly in the configuration file.
To support this use case, a property context is defined for each protected
property in NiFi's configuration files, in the format:
`{context-name}/{property-name}`
-
-* `context-name` - represents a namespace for properties in order to
disambiguate properties with the same name. Without additional configuration,
all protected properties are assigned the `default` context.
-* `property-name` - contains the name of the property.
-
-In order to support logical context names, mapping properties may be provided
in `bootstrap.conf`, as follows:
-
-```
-nifi.bootstrap.protection.context.mapping.<context-name>=<identifier matching
regex>
-```
-
-Here, `context-name` would determine the context name above, and `<identifier
matching regex>` would map any property whose *group identifier* matched the
provided Regular Expression. *Group identifiers* are defined per configuration
file type, and are described as follows:
-[options="header,footer"]
-|===
-|Configuration File|Group Identifier Description|Assigned Context
-|`nifi.properties`|There is no concept of a group identifier here, since all
property names should be unique.|_default_
-|`authorizers.xml`|The `<identifier>` value of the XML block surrounding the
property.|The mapped context name if RegEx matches the identifier, otherwise
_default_
-|`login-identity-providers.xml`|The `<identifier>` value of the XML block
surrounding the property.|The mapped context name if RegEx matches the
identifier, otherwise _default_
-|===
-
-==== Example
-In the NiFi binary distribution, the `login-identity-providers.xml` file comes
with a provider with the identifier `ldap-provider` and a property called
`Manager Password`:
-
-```
- <provider>
- <identifier>ldap-provider</identifier>
- <class>org.apache.nifi.ldap.LdapProvider</class>
- ...
- <property name="Manager Password"/>
- ...
- </provider>
-```
-Similarly, the `authorizers.xml` file comes with a `ldap-user-group-provider`
and a property also called `Manager Password`:
-
-```
- <userGroupProvider>
- <identifier>ldap-user-group-provider</identifier>
- <class>org.apache.nifi.ldap.tenants.LdapUserGroupProvider</class>
- ...
- <property name="Manager Password"/>
- ...
- </userGroupProvider>
-```
-
-If the Manager Password is desired to reference the same exact property (e.g.,
the same Secret in the HashiCorp Vault K/V provider) but still be distinguished
from any other `Manager Password` property unrelated to LDAP, the following
mapping could be added:
-
-```
-nifi.bootstrap.protection.context.mapping.ldap=ldap-.*
-```
-
-This would cause both of the above to be assigned a context of `"ldap/Manager
Password"` instead of `"default/Manager Password"`.
[[admin-toolkit]]
== NiFi Toolkit Administrative Tools
The NiFi Toolkit also contains command line utilities for administrators to
support NiFi maintenance in standalone and clustered environments.
@@ -3012,7 +2797,6 @@ This cleanup mechanism takes into account only
automatically created archived _f
|`nifi.authorizer.configuration.file`*|This is the location of the file that
specifies how authorizers are defined. The default value is
`./conf/authorizers.xml`.
|`nifi.login.identity.provider.configuration.file`*|This is the location of
the file that specifies how username/password authentication is performed. This
file is
only considered if `nifi.security.user.login.identity.provider` is configured
with a provider identifier. The default value is
`./conf/login-identity-providers.xml`.
-|`nifi.ui.banner.text`|This is banner text that may be configured to display
at the top of the User Interface. It is blank by default.
|`nifi.nar.library.directory`|The location of the nar library. The default
value is `./lib` and probably should be left as is.
|`nifi.restore.directory`|The location that certain providers (e.g.
UserGroupProviders) will look for previous configurations to restore from.
There is no default value.
+
@@ -3053,7 +2837,7 @@ The Database Settings section defines the settings for
the internal database, wh
|====
|*Property*|*Description*
-|`nifi.database.directory`*|The location of the H2 database directory. The
default value is `./database_repository`.
+|`nifi.database.directory`*|The location of the Flow Configuration History
database directory. The default value is `./database_repository`.
|====
=== FlowFile Repository