11title : Create an AWS IAM User 
22ref : create-an-aws-iam-user 
33content : | 
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: |
1524title : Create the Master Key 
1625ref : create-the-master-key 
1726content : | 
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
3950title : Specify the AWS KMS Provider Credentials 
4051ref : 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: |
113144title : Create a New Data Encryption Key 
114145ref : create-a-new-data-key 
115146content : | 
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: |
255303title : Update the Automatic Encryption JSON Schema 
256304ref : update-the-json-schema 
257305content : | 
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