### Jira - [X] My PR addresses the following [Airflow Jira](https://issues.apache.org/jira/browse/AIRFLOW/) issues and references them in the PR title. - https://issues.apache.org/jira/browse/AIRFLOW-2062
### Description - [X] Here are some details about my PR, including screenshots of any UI changes: - For an in-depth explanation of these changes, please see this [design doc](https://docs.google.com/document/d/1qaucGw52aoR96swHQqIYN9nQXn2QKSOWvw6-KyI6Wwc/edit?usp=sharing). - Connections can now be encrypted using a local key that is encrypted using a KMS before being stored, instead of the global fernet key. Enabling this behavior requires creating a connection through the CLI (web UI in a coming PR) with the new KMS fields specified. - `Connection` and `BaseHook` were also refactored to support loading connections from the `Connection` class (instead of `BaseHook`). ### Tests - [X] My PR adds the following unit tests: - `tests/contrib/hooks/test_gcp_kms_hook.py` - `test_encrypt_conn` - `test_encrypt_conn` - `tests/models.py` - `FernetTest` - `test_connection_kms_encryption` - `test_connection_from_uri_kms_encryption` - `test_get_kms_hook_missing` - `test_update_kms` ### Commits - [X] My commits all reference Jira issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "[How to write a good git commit message](http://chris.beams.io/posts/git-commit/)": 1. Subject is separated from body by a blank line 1. Subject is limited to 50 characters (not including Jira issue reference) 1. Subject does not end with a period 1. Subject uses the imperative mood ("add", not "adding") 1. Body wraps at 72 characters 1. Body explains "what" and "why", not "how" ### Documentation - [X] In case of new functionality, my PR adds documentation that describes how to use it. ### Code Quality - [X] Passes `git diff upstream/master -u -- "*.py" | flake8 --diff` [ Full content available at: https://github.com/apache/incubator-airflow/pull/3805 ] This message was relayed via gitbox.apache.org for [email protected]
