Go to file
Mate Szalay-Beko 451a4b06b1 HBASE-25263 Various improvements of column family encryption
This PR is a follow-up of HBASE-25181 (#2539), where several issues were
discussed on the PR:

1. Currently we use PBKDF2WithHmacSHA1 key generation algorithm to generate a
secret key for HFile / WalFile encryption, when the user is defining a string
encryption key in the hbase shell. This algorithm is not secure enough and
not allowed in certain environments (e.g. on FIPS compliant clusters). We are
changing it to PBKDF2WithHmacSHA384. It will not break backward-compatibility,
as even the tables created by the shell using the new algorithm will be able
to load (e.g. during bulkload / replication) the HFiles serialized with the
key generated by an old algorithm, as the HFiles themselves already contain
the key necessary for their decryption.

Smaller issues fixed by this commit:

2. Improve the documentation e.g. with the changes introduced by HBASE-25181
and also by some points discussed on the Jira ticket of HBASE-25263.

3. In EncryptionUtil.createEncryptionContext the various encryption config
checks should throw IllegalStateExceptions instead of RuntimeExceptions.

4. Test cases in TestEncryptionTest.java should be broken down into smaller
tests.

5. TestEncryptionDisabled.java should use ExpectedException JUnit rule to
validate exceptions.

closes #2676

Signed-off-by: Peter Somogyi <psomogyi@apache.org>
2020-11-26 16:44:34 +01:00
.idea HBASE-23707 Add IntelliJ check style plugin configuration (#1064) 2020-01-27 10:40:24 -08:00
bin HBASE-14067 bundle ruby files for hbase shell into a jar. 2020-10-13 11:12:07 -05:00
conf HBASE-24343 Document how to configure the http request log 2020-05-29 16:50:16 -07:00
dev-support HBASE-25284 Check-in "Enable memstore replication..." design (#2680) 2020-11-21 08:45:44 -08:00
hbase-annotations HBASE-23253 Rewrite rsgroup related UTs with the new methods introduced in HBASE-22932 (#813) 2020-03-02 15:43:40 +08:00
hbase-archetypes HBAE-24507 Remove HTableDescriptor and HColumnDescriptor (#2186) 2020-08-04 10:31:42 +08:00
hbase-assembly HBASE-14067 bundle ruby files for hbase shell into a jar. 2020-10-13 11:12:07 -05:00
hbase-asyncfs HBASE-24912 Enlarge MemstoreFlusherChore/CompactionChecker period for unit test (#2285) 2020-08-21 12:41:20 +08:00
hbase-backup HBASE-24640 Purge use of VisibleForTesting (#2695) 2020-11-25 14:10:12 -08:00
hbase-balancer HBASE-24640 Purge use of VisibleForTesting (#2695) 2020-11-25 14:10:12 -08:00
hbase-build-configuration HBASE-23675 Move to Apache parent POM version 22 2020-01-11 11:18:30 +01:00
hbase-checkstyle HBASE-22749 Distributed MOB compactions 2020-02-19 16:06:38 -06:00
hbase-client HBASE-25263 Various improvements of column family encryption 2020-11-26 16:44:34 +01:00
hbase-common HBASE-25263 Various improvements of column family encryption 2020-11-26 16:44:34 +01:00
hbase-endpoint HBASE-24640 Purge use of VisibleForTesting (#2695) 2020-11-25 14:10:12 -08:00
hbase-examples HBASE-25037 Lots of thread pool are changed to non daemon after HBASE-24750 which causes trouble when shutting down (#2407) 2020-09-16 21:11:47 +08:00
hbase-external-blockcache HBASE-24170 Remove hadoop-2.0 profile (#1495) 2020-04-16 18:57:40 +08:00
hbase-hadoop-compat HBASE-24640 Purge use of VisibleForTesting (#2695) 2020-11-25 14:10:12 -08:00
hbase-hbtop HBASE-24776 [hbtop] Support Batch mode (#2291) 2020-09-10 17:04:57 +09:00
hbase-http HBASE-24640 Purge use of VisibleForTesting (#2695) 2020-11-25 14:10:12 -08:00
hbase-it HBASE-25164 Make ModifyTableProcedure support changing meta replica count (#2513) 2020-10-13 09:43:56 +08:00
hbase-logging HBASE-24309 Avoid introducing log4j and slf4j-log4j dependencies for modules other than hbase-assembly (#1640) 2020-05-12 12:03:30 +08:00
hbase-mapreduce HBASE-24640 Purge use of VisibleForTesting (#2695) 2020-11-25 14:10:12 -08:00
hbase-metrics HBASE-24663 Add procedure process time statistics UI (#2035) 2020-07-10 15:03:52 +08:00
hbase-metrics-api HBASE-24640 Purge use of VisibleForTesting (#2695) 2020-11-25 14:10:12 -08:00
hbase-procedure HBASE-24640 Purge use of VisibleForTesting (#2695) 2020-11-25 14:10:12 -08:00
hbase-protocol-shaded HBASE-25181 Add options for disabling column family encryption and choosing hash algorithm for wrapped encryption keys. 2020-11-09 13:53:50 -06:00
hbase-replication HBASE-24640 Purge use of VisibleForTesting (#2695) 2020-11-25 14:10:12 -08:00
hbase-resource-bundle HBASE-23834 HBase fails to run on Hadoop 3.3.0/3.2.2/3.1.4 due to jetty version mismatch (#2222) 2020-08-25 12:05:52 +08:00
hbase-rest HBASE-25242 Add Increment/Append support to RowMutations (#2630) 2020-11-26 13:31:43 +09:00
hbase-server HBASE-25263 Various improvements of column family encryption 2020-11-26 16:44:34 +01:00
hbase-shaded HBASE-23834 HBase fails to run on Hadoop 3.3.0/3.2.2/3.1.4 due to jetty version mismatch (#2222) 2020-08-25 12:05:52 +08:00
hbase-shell HBASE-25263 Various improvements of column family encryption 2020-11-26 16:44:34 +01:00
hbase-testing-util HBASE-24309 Avoid introducing log4j and slf4j-log4j dependencies for modules other than hbase-assembly (#1640) 2020-05-12 12:03:30 +08:00
hbase-thrift HBASE-25242 Add Increment/Append support to RowMutations (#2630) 2020-11-26 13:31:43 +09:00
hbase-zookeeper HBASE-24640 Purge use of VisibleForTesting (#2695) 2020-11-25 14:10:12 -08:00
src HBASE-25263 Various improvements of column family encryption 2020-11-26 16:44:34 +01:00
.asf.yaml HBASE-24261: (Addendum) Make notifications a toplevel object 2020-05-04 16:19:58 -07:00
.editorconfig HBASE-23767 Add JDK11 compilation and unit test support to Github precommit 2020-03-05 11:46:15 -08:00
.gitattributes HBASE-6816. [WINDOWS] line endings on checkout for .sh files 2013-01-23 19:30:14 +00:00
.gitignore HBASE-24271 Set values in `conf/hbase-site.xml` that enable running on `LocalFileSystem` out of the box 2020-05-14 13:18:43 -07:00
.pylintrc HBASE-21712 : Make submit-patch.py python3 compatible 2019-01-14 14:50:50 -08:00
.rubocop.yml HBASE-23943 Updated Rubocop configuration to current version 2020-03-18 11:09:36 +01:00
CHANGES.txt HBASE-18548 Move sources of website gen and check jobs into source control 2017-08-10 14:48:14 -07:00
LICENSE.txt HBASE-18548 Move sources of website gen and check jobs into source control 2017-08-10 14:48:14 -07:00
NOTICE.txt HBASE-24417 update copyright notices year to 2020 (#1760) 2020-05-25 12:58:29 +08:00
README.txt HBASE-14348 Update download mirror link 2018-04-04 14:30:06 -07:00
pom.xml HBASE-25275 Upgrade asciidoctor (#2647) 2020-11-12 15:37:12 +01:00

README.txt

Apache HBase [1] is an open-source, distributed, versioned, column-oriented
store modeled after Google' Bigtable: A Distributed Storage System for
Structured Data by Chang et al.[2]  Just as Bigtable leverages the distributed
data storage provided by the Google File System, HBase provides Bigtable-like
capabilities on top of Apache Hadoop [3].

To get started using HBase, the full documentation for this release can be
found under the doc/ directory that accompanies this README.  Using a browser,
open the docs/index.html to view the project home page (or browse to [1]).
The hbase 'book' at http://hbase.apache.org/book.html has a 'quick start'
section and is where you should being your exploration of the hbase project.

The latest HBase can be downloaded from an Apache Mirror [4].

The source code can be found at [5]

The HBase issue tracker is at [6]

Apache HBase is made available under the Apache License, version 2.0 [7]

The HBase mailing lists and archives are listed here [8].

The HBase distribution includes cryptographic software. See the export control
notice here [9].

1. http://hbase.apache.org
2. http://research.google.com/archive/bigtable.html
3. http://hadoop.apache.org
4. http://www.apache.org/dyn/closer.lua/hbase/
5. https://hbase.apache.org/source-repository.html
6. https://hbase.apache.org/issue-tracking.html
7. http://hbase.apache.org/license.html
8. http://hbase.apache.org/mail-lists.html
9. https://hbase.apache.org/export_control.html