Stay organized with collections
Save and categorize content based on your preferences.
Your Key Access Control List Service (KACLS) is configured without Google's
involvement. Below are details about common settings and best practices for
configuring your service.
Operational settings
The API should only be available over HTTPS with TLS 1.2 or later with a valid
X.509 certificate.
The API server should handle CORS
to access Google's authorized end-point: https://client-side-encryption.google.com.
We recommend a maximum latency of 200 ms for 99% of requests.
Authorization provider settings
Use the settings below to validate the Google-issued
authorization tokens during
client-side encryption (CSE):
Google Workspace application context
JWKS endpoint URL
Authorization token issuer
Authorization token audience
Google Drive and collaborative content creation tools, like Docs and Sheets
The settings below are required for each non-Google Identity Provider (IdP) your
service works with:
Method to validate tokens. Tokens are typically validated by the URL to a
JSON Web Key Set (JWKS) file, but could also be the public keys themselves.
Issuer and audience values: The iss (issuer) and aud (audience) field
values used by each Identity Provider.
Perimeter settings
The perimeter concept in Google Workspace Client-side encryption (CSE) is used
to provide access control to the encryption keys via the KACLS. The perimeters
are optional additional checks performed on the authentication and authorization
tokens within the KACLS.
Perimeters can be used to:
Only allow users in allowlisted domains to decrypt keys.
Blocklist users, such as Google Workspace administrators.
Provide advanced restrictions. For example:
Time-based restrictions for on-call employees or people on vacation
Geolocation restrictions to prevent access from specific locations or
networks
User role- or type-based access, as asserted by an Identity Provider
Verify your KACLS configuration
To check whether your KACLS is active and configured correctly, send a
status request. Internal self checks,
like KMS accessibility or logging system health, can also be performed.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-04 UTC."],[[["\u003cp\u003eYour Key Access Control List Service (KACLS) is configured independently by you, allowing you to control access to encryption keys for Google Workspace Client-side encryption (CSE).\u003c/p\u003e\n"],["\u003cp\u003eKACLS requires specific operational settings like HTTPS with TLS 1.2 or later, CORS handling for Google's authorized endpoint, and a recommended latency of under 200ms for most requests.\u003c/p\u003e\n"],["\u003cp\u003eAuthorization settings need to be configured for Google Workspace applications like Drive, Meet, Calendar, and Gmail, enabling validation of Google-issued authorization tokens during CSE.\u003c/p\u003e\n"],["\u003cp\u003ePerimeter settings offer optional but powerful access control by allowing or blocking users based on criteria like domains, user roles, time, and location, enhancing security for encryption keys.\u003c/p\u003e\n"],["\u003cp\u003eIdentity Provider settings are crucial for non-Google Identity Providers, requiring you to specify methods for validating tokens and the issuer and audience values used by each provider.\u003c/p\u003e\n"]]],["KACLS configuration requires the API to use HTTPS with TLS 1.2 or later, handle CORS for `https://client-side-encryption.google.com`, and maintain a maximum 200ms latency. It uses Google-issued authorization tokens, validated via JWKS endpoints specific to Google Workspace applications. Non-Google Identity Provider settings require token validation methods, issuer, and audience values. Perimeters, an optional access control, can allow or block access based on domain, user, time, or location. Verification is done via a status request.\n"],null,["Your Key Access Control List Service (KACLS) is configured without Google's\ninvolvement. Below are details about common settings and best practices for\nconfiguring your service.\n\nOperational settings\n\n- The API should only be available over HTTPS with TLS 1.2 or later with a valid\n X.509 certificate.\n\n- The API server should handle [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)\n to access Google's authorized end-point: `https://client-side-encryption.google.com`.\n\n- We recommend a maximum latency of 200 ms for 99% of requests.\n\nAuthorization provider settings\n\nUse the settings below to validate the Google-issued\n[authorization tokens](/workspace/cse/reference/authorization-tokens) during\nclient-side encryption (CSE):\n\n| Google Workspace application context | JWKS endpoint URL | Authorization token issuer | Authorization token audience |\n|---------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|------------------------------|\n| **Google Drive and collaborative content creation tools, like Docs and Sheets** | `https://www.googleapis.com/service_accounts/v1/jwk/gsuitecse-tokenissuer-drive@system.gserviceaccount.com` | `gsuitecse-tokenissuer-drive@system.gserviceaccount.com` | `cse-authorization` |\n| **Meet CSE** | `https://www.googleapis.com/service_accounts/v1/jwk/gsuitecse-tokenissuer-meet@system.gserviceaccount.com` | `gsuitecse-tokenissuer-meet@system.gserviceaccount.com` | `cse-authorization` |\n| **Calendar CSE** | `https://www.googleapis.com/service_accounts/v1/jwk/gsuitecse-tokenissuer-calendar@system.gserviceaccount.com` | `gsuitecse-tokenissuer-calendar@system.gserviceaccount.com` | `cse-authorization` |\n| **Gmail CSE** | `https://www.googleapis.com/service_accounts/v1/jwk/gsuitecse-tokenissuer-gmail@system.gserviceaccount.com` | `gsuitecse-tokenissuer-gmail@system.gserviceaccount.com` | `cse-authorization` |\n| **KACLS migration** | `https://www.googleapis.com/service_accounts/v1/jwk/apps-security-cse-kaclscommunication@system.gserviceaccount.com` | `apps-security-cse-kaclscommunication@system.gserviceaccount.com` | `cse-authorization` |\n\nIdentity Provider settings\n\nThe settings below are required for each non-Google Identity Provider (IdP) your\nservice works with:\n\n- **Method to validate tokens.** Tokens are typically validated by the URL to a JSON Web Key Set (JWKS) file, but could also be the public keys themselves.\n- **Issuer and audience values:** The `iss` (issuer) and `aud` (audience) field values used by each Identity Provider.\n\nPerimeter settings\n\nThe perimeter concept in Google Workspace Client-side encryption (CSE) is used\nto provide access control to the encryption keys via the KACLS. The perimeters\nare optional additional checks performed on the authentication and authorization\ntokens within the KACLS.\n\nPerimeters can be used to:\n\n- Only allow users in allowlisted domains to decrypt keys.\n- Blocklist users, such as Google Workspace administrators.\n- Provide advanced restrictions. For example:\n - Time-based restrictions for on-call employees or people on vacation\n - Geolocation restrictions to prevent access from specific locations or networks\n - User role- or type-based access, as asserted by an Identity Provider\n\n| **Note:** The takeout perimeter is used when a Google Workspace customer sends a [Google Takeout](https://support.google.com/a/answer/100458) request with [`takeout_unwrap`](/workspace/cse/reference/takeout_unwrap). The takeout perimeter enables KACLS unwrapping, bypassing the normal Google Workspace ACL, so membership should be restricted to trusted individuals. We recommend that the takeout perimeter use an IdP requiring two-factor authentication (2FA).\n\nVerify your KACLS configuration\n\nTo check whether your KACLS is active and configured correctly, send a\n[`status`](/workspace/cse/reference/status) request. Internal self checks,\nlike KMS accessibility or logging system health, can also be performed."]]