Skip to content

Commit e094736

Browse files
author
Chris Cho
authored
DOCSP-13089: Divide steps in CSFLE KMS guide (#701)
* DOCSP-13089: add substeps and list AWS params
1 parent 1ff5520 commit e094736

File tree

3 files changed

+486
-427
lines changed

3 files changed

+486
-427
lines changed

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

Lines changed: 82 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11
title: Create an AWS IAM User
22
ref: create-an-aws-iam-user
33
content: |
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
7-
full ``List`` and ``Read`` permissions for the KMS service.
4+
1. Create a new programmatic IAM user in the AWS management console by
5+
following the official AWS documentation on `Adding a User <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html>`__.
6+
CSFLE-enabled clients authenticate with AWS KMS using the IAM user to
7+
encrypt and decrypt the remote master key. Take note of the following
8+
credentials needed to authenticate with the KMS:
9+
10+
- **access key ID**
11+
- **secret access key**
12+
13+
2. Grant the IAM user full ``List`` and ``Read`` permissions for the KMS
14+
service. See Amazon's official documentation on
15+
`Adding permissions to a user <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html>`__
16+
to set these permissions.
817
918
.. note:: Client IAM User Credentials
1019
@@ -15,26 +24,28 @@ content: |
1524
title: Create the Master Key
1625
ref: create-the-master-key
1726
content: |
18-
19-
The following diagram shows how the **master key** is created and stored
20-
when using a KMS provider:
27+
The following diagram shows the steps required to create a new
28+
**master key** on a KMS provider.
2129
2230
.. image:: /figures/CSFLE_Master_Key_KMS.png
2331
:alt: Diagram that describes creating a master key when using a KMS provider
2432
25-
In AWS management console, create a new symmetric master key in the KMS
26-
section. Choose a name and description that helps you identify it; these
27-
fields do not affect the functionality or configuration.
33+
1. To create a master key, log into your AWS management console and create
34+
a new symmetric master key in the KMS section. Choose a name and
35+
description that helps you identify it; these fields do not affect the
36+
functionality or configuration.
2837
29-
In the :guilabel:`Usage Permissions` step of the key generation
30-
process, add the full KMS ``List`` and ``Read`` permissions to the IAM
31-
user you created in the previous step. This authorizes the user to encrypt
32-
and decrypt the new master key.
38+
2. In the :guilabel:`Usage Permissions` step of the key generation
39+
process, add the full KMS ``List`` and ``Read`` permissions to the IAM
40+
user you created in the previous step. This authorizes the user to
41+
encrypt and decrypt the new master key.
3342
3443
.. important::
3544
3645
The new client IAM User *should not* have administrative permissions
37-
for the master key.
46+
for the master key. We recommend that you follow the
47+
`principle of least privilege <https://en.wikipedia.org/wiki/Principle_of_least_privilege>`__
48+
to keep your data secure.
3849
---
3950
title: Specify the AWS KMS Provider Credentials
4051
ref: specify-the-aws-kms-provider-credentials
@@ -44,10 +55,30 @@ content: |
4455
it accepts the :guilabel:`Access Key ID` and :guilabel:`Secret Access
4556
Key` configurations that point to the master key. The IAM user must have
4657
the permissions set up in the previous step in order for the client to
47-
use the KMS to encrypt and decrypt data encryption keys.
58+
use the KMS to encrypt and decrypt data encryption keys. Follow the steps
59+
below to specify your credentials:
60+
61+
1. First, identify the following authentication credentials on AWS KMS:
62+
63+
.. list-table::
64+
:header-rows: 1
65+
:stub-columns: 1
66+
67+
* - Field
68+
- Required
69+
- Description
70+
71+
* - Access Key ID
72+
- Yes
73+
- Identifies the account user
4874
49-
Update the KMS Provider configuration in your CSFLE-enabled client
50-
creation code:
75+
* - Secret Access Key
76+
- Yes
77+
- Contains the authentication credentials of the account user
78+
79+
80+
2. Next, add your authentication credentials to your CSFLE-enabled client
81+
code:
5182
5283
.. tabs-drivers::
5384
@@ -113,22 +144,39 @@ content: |
113144
title: Create a New Data Encryption Key
114145
ref: create-a-new-data-key
115146
content: |
116-
The following diagram shows how the **customer master key** is created and
117-
stored when using a KMS provider:
147+
To encrypt your data, you need a data encryption key generated from your
148+
KMS-hosted **master key**. The following diagram shows the requests you need
149+
to make from the client application to create and store a new **data
150+
encryption key**:
118151
119152
.. image:: /figures/CSFLE_Data_Key_KMS.png
120153
:alt: Diagram that describes creating a data encryption key when using a KMS provider
121154
122-
You must generate a new **data encryption key** using the **master key**
123-
in the remote KMS. The original data encryption key was encrypted by
124-
your locally-managed master key.
155+
1. First, specify the following information to access the master key:
156+
157+
.. list-table::
158+
:header-rows: 1
159+
:stub-columns: 1
160+
161+
* - Field
162+
- Required
163+
- Description
125164
126-
Specify the `Amazon Resource Number <https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn>`_
127-
(ARN) of the new CMK in the CSFLE-enabled client settings. Use the client
128-
to create a new data encryption key as follows:
165+
* - key
166+
- Yes
167+
- `Amazon Resource Number (ARN) <https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn>`__
168+
of the master key.
129169
130-
Once you have the required information, run the following code to
131-
generate the new data encryption key:
170+
* - region
171+
- No
172+
- AWS region of your master key, e.g. "us-west-2"; required only if not specified in your ARN.
173+
174+
* - endpoint
175+
- No
176+
- Custom hostname for the AWS endpoint if configured for your account.
177+
178+
2. Once you have the required information, update and run the following code
179+
to generate the new data encryption key:
132180
133181
.. tabs-drivers::
134182
@@ -255,6 +303,9 @@ content: |
255303
title: Update the Automatic Encryption JSON Schema
256304
ref: update-the-json-schema
257305
content: |
258-
If you embedded the key id of your data encryption key in your
259-
automatic encryption rules, you will need to update the :ref:`JSON
260-
Schema <fle-define-a-json-schema>` with the new data encryption key id.
306+
If you previously embedded the key ID of your data encryption key in your
307+
automatic encryption rules, update the :ref:`JSON Schema <fle-define-a-json-schema>`
308+
with your new data encryption key ID.
309+
310+
Your client application is now ready to automatically encrypt your data
311+
using the master key on your KMS provider.

0 commit comments

Comments
 (0)