Skip to content

Commit a061faf

Browse files
author
Chris Cho
authored
DOCSP-7798: CSFLE diagrams and other tweaks (#594)
* DOCSP-7798: CSFLE diagrams and other tweaks
1 parent bc721be commit a061faf

4 files changed

+187
-99
lines changed

source/includes/steps-fle-convert-to-a-remote-master-key.yaml

Lines changed: 45 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,36 @@
11
title: Create an AWS IAM User
22
ref: create-an-aws-iam-user
33
content: |
4-
Create a new programmatic IAM user to use in CSFLE-enabled clients.
5-
The user will encrypt and decrypt the remote master key and must have
4+
Create a new programmatic IAM user in the AWS management console.
5+
CSFLE-enabled clients authenticate with AWS KMS using the IAM user to
6+
encrypt and decrypt the remote master key. The IAM user must be granted
67
full ``List`` and ``Read`` permissions for the KMS service.
78
89
.. admonition:: Client IAM User Credentials
910
:class: note
1011
11-
The CSFLE-enabled client takes the IAM User's :guilabel:`Access Key
12-
ID` and :guilabel:`Secret Access Key` as configuration values. Note
13-
these down for later when we reconfigure the client.
12+
The CSFLE-enabled client uses the IAM User's :guilabel:`Access Key
13+
ID` and :guilabel:`Secret Access Key` as configuration values. Take
14+
note of these and reference them when we update the client.
1415
---
1516
title: Create the Master Key
1617
ref: create-the-master-key
1718
content: |
18-
In AWS KMS, generate a new master key. The key's name and description
19-
don't affect the functionality of CSFLE but should describe that it's
20-
for the CSFLE-enabled client.
19+
20+
The following diagram shows how the **master key** is created and stored
21+
when using a KMS provider:
22+
23+
.. image:: /figures/CSFLE_Master_Key_KMS.png
24+
:alt: Diagram that describes creating a master key when using a KMS provider
25+
26+
In AWS management console, create a new symmetric master key in the KMS
27+
section. Choose a name and description that helps you identify it; these
28+
fields do not affect the functionality or configuration.
2129
2230
In the :guilabel:`Usage Permissions` step of the key generation
23-
process, select the newly created IAM User with full KMS ``List`` and
24-
``Read`` permissions. This allows the user to encrypt and decrypt the
25-
new master key.
31+
process, add the full KMS ``List`` and ``Read`` permissions to the IAM
32+
user you created in the previous step. This authorizes the user to encrypt
33+
and decrypt the new master key.
2634
2735
.. important::
2836
@@ -32,13 +40,15 @@ content: |
3240
title: Specify the AWS KMS Provider Credentials
3341
ref: specify-the-aws-kms-provider-credentials
3442
content: |
35-
Unlike the local KMS provider, the AWS KMS provider does not accept
36-
the master key directly from the client configuration code. Instead,
43+
Unlike the local key provider, the AWS KMS provider does not read
44+
the master key directly from the client application. Instead,
3745
it accepts the :guilabel:`Access Key ID` and :guilabel:`Secret Access
38-
Key` of the IAM user with permission to encrypt and decrypt the master
39-
key.
46+
Key` configurations that point to the master key. The IAM user must have
47+
the permissions set up in the previous step in order for the client to
48+
use the KMS to encrypt and decrypt data encryption keys.
4049
41-
Update the KMS Provider configuration in CSFLE-enabled client creation code:
50+
Update the KMS Provider configuration in your CSFLE-enabled client
51+
creation code:
4252
4353
.. tabs-drivers::
4454
@@ -82,18 +92,26 @@ content: |
8292
}
8393
}
8494
---
85-
title: Create a New Data Key
95+
title: Create a New Data Encryption Key
8696
ref: create-a-new-data-key
8797
content: |
88-
The development data key was generated from a local master key, so you
89-
need to generate a new data key from the remote master key. To
90-
generate the key from an AWS KMS master key, you will need to know the
91-
key's AWS region and `Amazon Resource Number
98+
The following diagram shows how the **customer master key** is created and
99+
stored when using a KMS provider:
100+
101+
.. image:: /figures/CSFLE_Data_Key_KMS.png
102+
:alt: Diagram that describes creating a data encryption key when using a KMS provider
103+
104+
You must generate a new **data encryption key** using the **master key**
105+
in the remote KMS. The original data encryption key was encrypted by
106+
your locally-managed master key.
107+
108+
Specify the AWS region and `Amazon Resource Number
92109
<https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn>`_
93-
(ARN).
110+
(ARN) of the new CMK in the CSFLE-enabled client settings. Use the client
111+
to create a new data encryption key as follows:
94112
95113
Once you have the required information, run the following code to
96-
generate the new data key:
114+
generate the new data encryption key:
97115
98116
.. tabs-drivers::
99117
@@ -173,10 +191,9 @@ content: |
173191
data_key_id = client_encryption.create_data_key("aws")
174192
175193
---
176-
title: Update the JSON Schema
194+
title: Update the Automatic Encryption JSON Schema
177195
ref: update-the-json-schema
178196
content: |
179-
If you have embedded the key id for your data encryption key in your JSON
180-
Schema by hardcoding the string value, you will need to update your
181-
:ref:`JSON Schema <fle-define-a-json-schema>` with the new key id of your data
182-
encryption key.
197+
If you embedded the key id of your data encryption key in your
198+
automatic encryption rules, you will need to update the :ref:`JSON
199+
Schema <fle-define-a-json-schema>` with the new data encryption key id.

source/includes/steps-fle-create-data-encryption-key.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ title: Read the Locally-Managed Master Key from a File
22
ref: read-local-master-key-from-file
33
level: 4
44
content: |
5-
First, retrieve the contents of the local master key file that you generated
5+
First, retrieve the contents of the master key file that you generated
66
in the :ref:`Create a Master Key <fle-create-a-master-key>` section
77
with the following **code snippet**:
88
@@ -387,7 +387,7 @@ content: |
387387
388388
This retrieved document contains the following data:
389389
390-
* Data encryption key UUID.
391-
* Data encryption key, in encrypted form.
390+
* Data encryption key id (stored as a UUID).
391+
* Data encryption key in encrypted form.
392392
* KMS provider information for the master key.
393393
* Other metadata such as creation and last modified date.

0 commit comments

Comments
 (0)