# Detailed Setup Guide

### I. Set up KMS KACLS Service for Google Workspace

* Emails utilizing the wrap/unwrap mechanism must ensure they share the same Key service (KMS KACLS Service URL) in order to successfully send and receive emails to one another.

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FGeLqlBRT8xgLPUVwHUqD%2Funknown.png?alt=media&#x26;token=30934df1-7e6c-4f1d-a923-e9b0019cc5b1" alt=""><figcaption></figcaption></figure>

* In addition, in the [admin.google.com](http://admin.google.com), the admin must also ensure that this correct Key service has been added and assigned in order to use the feature.

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FWiunQDGtxyxzLfcpbTJS%2Funknown.png?alt=media&#x26;token=92eae402-32ce-4f21-9bdd-967224be0bd0" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FrJgtmGj9cHhfylwh5FKK%2Funknown.png?alt=media&#x26;token=b26cd014-d208-4135-ac9a-9f15cdb7f15a" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FGtruLuEUQmrnzrWsX1Kq%2Funknown.png?alt=media&#x26;token=6f52cef1-d24e-48f8-88fe-9e543477a8d7" alt=""><figcaption></figcaption></figure>

### II. How to get your credentials (Service account & CA certificated)

1. **Open Google Cloud Console**

* Access to [console.cloud.google.com](http://console.cloud.google.com) and Sign in.

2. **Navigate to Service Accounts**

* Go to IAM & Admin -> Service Accounts
* If you don’t have a project yet, create a new project before proceeding:

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2Fu5pVG5EHdwmoXMrFvbm3%2Funknown.png?alt=media&#x26;token=7dff3d02-04a5-471b-80aa-cbda9c4a24a1" alt=""><figcaption></figcaption></figure>

* Input Project name and select Organization:

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FV3aFuduKB3gB0Q3irgpL%2Funknown.png?alt=media&#x26;token=88855550-dbf3-4fcd-a9d8-f9d5a7210244" alt=""><figcaption></figcaption></figure>

* New project is created:

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FBpiZqer1VP2saQN2uh9D%2Fimage.png?alt=media&#x26;token=5c4bd6d4-c32b-4039-818b-8cbb4e0f1c5e" alt=""><figcaption></figcaption></figure>

3. **Create a Service Account**

* Click Create service account -> Enter Service account name -> Click Done

  <figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2Ff1JVoW7OjQ31SWGdyEWK%2Funknown.png?alt=media&#x26;token=25f3857f-62b1-4f2a-84ef-266a00347333" alt=""><figcaption></figcaption></figure>
* Skip optional steps:
  * Permissions
  * Principals with access Key

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FesGwWWx7crC0YaeVOSEP%2Funknown.png?alt=media&#x26;token=d83ea3d3-9313-44e8-b149-faf0140689d4" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FuMRNNUZ8WdguH6GCGZXE%2Funknown.png?alt=media&#x26;token=23e656ff-6b8a-4e34-a540-caa308b98bb9" alt=""><figcaption></figcaption></figure>

* New service account is created

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2F3FZBL8WMYmM6RQaIQTgn%2Funknown.png?alt=media&#x26;token=e2dfb0fc-1f20-4bef-b69e-6c35b0e81bcb" alt=""><figcaption></figcaption></figure>

4. **Generate service account key**

* Click on created service account -> **Keys -> Add key ->  Create new key -> Choose JSON -> Create -> Download and Save file**

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FBpVL9VgzwgBRczjqwNSI%2Funknown.png?alt=media&#x26;token=ed5dd3f9-51fe-4dd1-aa26-a66f5379271e" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FPAOcQgvYAQpC9t09fXWx%2Funknown.png?alt=media&#x26;token=27f91669-e966-42db-841d-9df50180f6f4" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FXigwlfNDASFYUG9PUAdx%2Funknown.png?alt=media&#x26;token=93ea49ff-c996-47b7-9797-edd3f5cbf545" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FlbnKFG47B6lTE9iIK7Ok%2Funknown.png?alt=media&#x26;token=a9452d23-f0ce-4a20-b5d4-1b60d703a3b9" alt=""><figcaption></figcaption></figure>

**Note**: you must have role **Organization Policy Administrator** (roles/orgpolicy.policyAdmin) to get Service account key.

5. **Enable Gmail API**

* Search for **Gmail API**

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FE1H1eq4izsojSKcjGEFY%2Funknown.png?alt=media&#x26;token=59cb8ade-b69a-4833-9cb9-7dc98b8f9e9a" alt=""><figcaption></figcaption></figure>

* Click on **Enable** for Gmail API

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FN2Eg7uM8IIaQ9GldcKJc%2Funknown.png?alt=media&#x26;token=5909323f-ae36-4878-b1a1-188415c2c1f7" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FmIrBRhqkXZSBxI0W8XSC%2Funknown.png?alt=media&#x26;token=da9e4fdd-cc71-4311-9e4d-9110a772892e" alt=""><figcaption></figcaption></figure>

6. **Upload service account key at KMS system**

* Admin go to Organization Admin -> Gmail Provisioning feature
* Click on Start verification
* Upload the **downloaded JSON file** to the required system below

![](https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FROdAA41ODrS48WgPRhNg%2Funknown.png?alt=media\&token=c8c98c0f-855b-405a-b655-1d3b563b4146)

* Click **Verify** and waiting verification process

![](https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FsxRHSRnRTRdJKaotvr1o%2Funknown.png?alt=media\&token=aecd069b-dda8-4584-9cda-91949a0f3a15)<br>

7. **Download CA Certificate**

* After service account is verified -> **CA file will be auto generate by system**
* Admin need to **download file** and go to next step

![](https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FbpglOapa3moQWWGYw5hu%2Funknown.png?alt=media\&token=3e9ebcb3-00ea-4e78-babf-8a3933a6780b)

* Download file to local

![](https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2F6Kc8CDqXfWvOeeBfBmTc%2Funknown.png?alt=media\&token=dd07b874-667a-45ec-afb1-368d8d1560be)

8. **Upload to Google Admin Console**

* Open Google workspace admin console: [admin.google.com](http://admin.google.com)

  <figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FqDjsWkHeh7gQbO41fsYh%2Funknown.png?alt=media&#x26;token=b61f27d6-534d-4258-9a82-2fa63d58c647" alt=""><figcaption></figcaption></figure>
* Navigate to Apps -> Google Workspace -> Gmail -> User setting

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FXPkSUOBOUzy94JYLx6FE%2Fimage.png?alt=media&#x26;token=252e6326-f74e-47e2-b7ef-b513a81e1f7c" alt=""><figcaption></figcaption></figure>

* At S/MIME section, enable **S/MIME encryption for sending and receiving emails**
* Then, enable **Allow users to upload their own certificates**

  <figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2Fx1bAhTOKeA9rFnlN6De8%2Funknown.png?alt=media&#x26;token=c2776f57-ff26-4995-a421-cb8ea7e6e1e5" alt=""><figcaption></figcaption></figure>
* Then, click **ADD** button -> **UPLOAD ROOT CERTIFICATE**

  <figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FjuZwzU3c8aiZ3LP2mZBn%2Funknown.png?alt=media&#x26;token=5d40bb1e-8821-4ccd-962b-e3a16455ea95" alt=""><figcaption></figcaption></figure>
* Upload CA file with .pem formatformat
* Input Org domain
* Click **Done** and waiting for Google approve (around 24 hours)

<div align="left"><figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FxBE5z0s82ub9bZ5BJKWG%2Funknown.png?alt=media&#x26;token=c70ac3df-7abf-4115-8c65-1f0907418d77" alt="" width="375"><figcaption></figcaption></figure></div>

* Approval process maybe take upto 24 hours, refer doc [link](https://knowledge.workspace.google.com/admin/support/troubleshooting/how-changes-propagate-to-google-services?visit_id=639099359861759319-1195085483\&rd=1)

  <figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2Fb3GGGt2QUiaS4rnxBmvt%2Funknown.png?alt=media&#x26;token=731c130d-2c6c-4ea0-93bb-3afa1115a3c0" alt=""><figcaption></figcaption></figure>

### III. Setup provisioning job for email & send/receive mail

1. **Setup provisioning job**

* Click on Provisioning setup

<figure><img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2F9c4Ae30QFYXqsGi90JZU%2Funknown.png?alt=media&#x26;token=bf942eb1-caca-43f3-a2e1-e477e0478ba0" alt=""><figcaption></figcaption></figure>

* Select Manual input or Upload file with provided template
  * **Note:** The emails being used must share the same key service (KACLS) in order to be authorized to use the key for Wrap/Unwrap operations.

![](https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FXj5B12LsDInbnbILEcPU%2Funknown.png?alt=media\&token=859325e5-ef7a-4a28-8ae2-b00940fed906)

* Select a workspace

![](https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FYbJP8P2mFlBJ2jt6lbCS%2Funknown.png?alt=media\&token=27409d63-6168-4f53-88f3-da1fd39e0926)

* Select a key **(Symmetric AES or CHACHA20 256bits)**

![](https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FiyW04wD9KLzcO6iOStpU%2Funknown.png?alt=media\&token=daf503ee-a3cc-43d7-aeaf-8a27bb9aa848)

* Click on **Start provisioning** and waiting until job completed

2. **Send/Receive mail with encryption/decryption method**

* After provisioning job is completed
* User can compose new email
* Turn on Additional encryption

![](https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2Fz6lDjCgiDRd9mYjcPovP%2Funknown.png?alt=media\&token=1ec05ead-bec4-4a1a-a0b3-4363da10f5da)

* Mail is encrypted

![](https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2Fsfw6jOn5RocM72ac3Aoz%2Funknown.png?alt=media\&token=0208cceb-dbd3-40d0-8903-6ab66aa1394f)

* When sending mail, user need to sign in to verify account

![](https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2FHvXoGUDQMixMCRaeaJUa%2Funknown.png?alt=media\&token=95f8a170-38f9-46bb-a875-f74b5b45676b)

* Receiver received mail with encryption

&#x20;<img src="https://3096769065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmutUsLoRLJp8ctxALgCG%2Fuploads%2F3xTYyQVKLVvYlC5WpYVg%2Funknown.png?alt=media&#x26;token=29fab5fb-2a17-4e40-8c9d-f91a54e607cd" alt="" data-size="original">

* Then, receiver must sign in to verify account to view the content email body
