← Back to Home

Google Workspace Context-Aware Access: Granular Access Control

Topic: Technical Deep Dive

Audience: Google Workspace Administrators

Version: N/A | Last Updated: 2025-06-10

Google Workspace Context-Aware Access: Granular Access Control

Introduction

In today's dynamic work environment, ensuring secure access to corporate resources is paramount. Google Workspace Context-Aware Access (CAA) provides administrators with robust control over how and when users can access Google Workspace applications and data. This guide provides a comprehensive overview of Context-Aware Access, detailing its functionalities, deployment strategies, configuration steps, and troubleshooting tips for Google Workspace administrators.

Context-Aware Access allows you to create granular security policies based on various contextual attributes such as user identity, geographic location, device security status, and IP address. This enables organizations to protect sensitive data by enforcing access only from trusted environments and compliant devices. For instance, you can allow access to apps exclusively from company-issued devices, ensure Google Drive is only accessible if a user's storage device is encrypted, or restrict access from outside the corporate network.

Understanding Context-Aware Access

Context-Aware Access is a security feature that empowers administrators to define and enforce access policies for Google Workspace applications based on the user's context.

How Context-Aware Access Works

The evaluation of Context-Aware Access policies differs slightly based on the application type:

Supported Editions, Apps, and Platforms

Context-Aware Access policies are applicable to users holding licenses for specific Google Workspace editions, including Frontline Standard, Frontline Plus, Enterprise Standard, Enterprise Plus, Education Standard, Education Plus, and Cloud Identity Premium. Users with other editions will not be subject to these policies, even if they belong to an organizational unit or group where a CAA policy is applied.

CAA supports a wide range of applications and platforms:

Platform Support by Policy Type:

Admin Privileges Required

To set Context-Aware Access policies, an administrator must be a Super Administrator or have the following specific privileges:

Planning and Deployment

A well-planned deployment of Context-Aware Access is crucial to protect sensitive data while minimizing user disruption.

Deployment Recommendations

Preparing for Deployment

Before creating or implementing new access policies, follow these steps:

Turning On/Off Context-Aware Access

You can enable or disable Context-Aware Access at different stages of your deployment.

To Turn On Context-Aware Access:

  1. Sign in to the Google Admin console with an administrator account.
  2. Navigate to Menu > Security > Access and data control > Context-Aware Access.
  3. Verify that Context-Aware Access is ON. If not, click Turn On.

To Turn Off Context-Aware Access:

  1. Sign in to the Google Admin console with an administrator account.
  2. Navigate to Menu > Security > Access and data control > Context-Aware Access.
  3. Click Turn Off.
    • Note: It can take up to 24 hours for Context-Aware Access to be fully disabled, during which users might still be affected by previous access levels. Deleted access levels cease to apply immediately.

Creating Context-Aware Access Levels

Context-Aware Access levels define the conditions users must meet to access apps. They combine one or more conditions and attributes to define a user's or device's context.

Basic Mode

Basic mode provides a user-friendly interface with predefined attributes.

To Create an Access Level in Basic Mode:

  1. Sign in to the Google Admin console with an administrator account.
  2. Navigate to Security > Access and data control > Context-Aware Access > Access levels.
  3. Click Create access level. Basic mode is selected by default.
  4. Enter an Access level name and an optional description.
  5. For each condition, specify whether users must Meet attributes (satisfy all attributes) or Don't meet attributes (don't meet any of the attributes). The "Don't meet attributes" option is often used for IP subnets (e.g., blocking access from a specific IP range).
  6. Click Add Attribute and select one or more attributes:
    • IP subnet: IPv4 or IPv6 address/routing prefix in CIDR block notation. Private IP addresses and dynamic IPs are not supported, though a static IP subnet can define a dynamic IP range.
    • Location: Countries/regions where the user is accessing services.
    • Device policy:
      • Admin approval is required.
      • Company-owned device is required.
      • Screen password protected.
      • Device encryption (Not supported, Not encrypted, Encrypted).
    • Device OS: Specify allowed operating systems and minimum versions (major.minor.patch format).
      • macOS, Windows, Linux, Chrome OS, iOS, Android.
    • Access level: Requires the user to meet the requirements of an existing access level.
  7. To add another condition, click Add condition and specify whether to join with And (users must meet both conditions) or Or (users must meet only one condition).
  8. Click Save.

Example Basic Mode Access Level: An access level named "corp_access" could require users to access Gmail only from an encrypted and company-owned device located in the US or Canada.

Advanced Mode

Advanced mode allows for more complex access levels using Common Expression Language (CEL). This is useful for conditions not available in basic mode, such as vendor conditions for third-party integrations or certificate-based authentication.

To Define Access Levels in Advanced Mode:

  1. Follow steps 1-3 from Basic Mode, then select Advanced Mode.
  2. Enter an Access level name and optional description.
  3. Build your custom access level using a CEL expression in the editor. Google provides guidance and examples in their Custom access level specification.
  4. Click Save. The expression is compiled, and syntax errors are reported for correction.

Example Advanced Mode Access Level: An access level that requires the originating device to be encrypted, AND either the request originated in the United States OR the device is administrator-approved:

device.encryption_status == DeviceEncryptionStatus.ENCRYPTED && (origin.region_code in ["US"] || device.is_admin_approved_device)

Assigning Context-Aware Access Levels to Apps

After creating access levels, you assign them to specific applications to enforce the desired access controls.

To Assign Context-Aware Access Levels to an App:

  1. Sign in to the Google Admin console with an administrator account.
  2. Navigate to Menu > Security > Access and data control > Context-Aware Access.
  3. Click Assign access levels. You will see a list of applications.
  4. (Optional) To apply settings to a specific organizational unit or configuration group, select it from the side panel.
  5. Hover over an app and click Assign, or select multiple apps and click Assign at the top.
  6. Select one or more access levels (up to 10) from the left.
    • Selected access levels default to Monitor mode. This is recommended for testing without blocking users. Change to Active when ready to enforce.
    • If users need to meet conditions of multiple access levels, create a nested access level that combines them with a logical AND operation.
  7. Click Continue.
  8. (Recommended) Check Block users from accessing Google desktop and mobile apps if access levels aren't met to apply policies to native desktop, Android, iOS, and web apps.
  9. (Optional) Check Block other apps from accessing the selected apps via APIs, if access levels aren't met to restrict API access to Workspace data.
  10. (Optional) To exempt trusted apps from API blocking, check Exempt allowlisted apps so that they can always access APIs for specific Google services, regardless of access levels. You may need to configure app access control to trust the app first. Google apps cannot be exempted.
  11. Click Continue, review the settings, and click Assign.

App Behavior Based on Access Level Settings: The behavior of apps (mobile native, mobile web, desktop web, desktop native) depends on whether "Block users from accessing Google desktop and mobile apps if access levels aren't met" is checked and if Endpoint Verification is deployed. Generally, if device attributes are used in an access level, Endpoint Verification must be deployed for full enforcement across all app types.

Review or Modify Assigned Access Levels

  1. Hover over the app and click Assign.
  2. To unassign, click Remove next to the access level.
  3. To change mode, toggle between Monitor and Active status.
  4. To assign more levels, select them from the left.
  5. Click Continue to modify policy settings and then Save.

Viewing Logged Events for Access Levels

Access levels in both monitor and active modes generate events in the Context-Aware Access log.

  1. Click Assign access levels.
  2. Select the OU or group to review.
  3. Hover over an app and click View report.
  4. Click Link to Security Investigation Tool to view relevant log events.
    • Access denied (Monitor mode) events show who would have been blocked.
    • Logs indicate access levels applied, satisfied, and unsatisfied.

Using Context-Aware Access with Configuration Groups

Configuration groups offer a flexible way to apply Context-Aware Access levels to specific user groups, irrespective of their organizational unit. This is particularly useful for managing access for contractors or IT staff.

How Configuration Groups Work

Designing Configuration Groups for CAA

Setting Up and Managing Configuration Groups

  1. Apply a Configuration Group:
    • Sign in to the Admin console.
    • Navigate to Menu > Security > Access and data control > Context-Aware Access.
    • Click Assign access levels, then Groups.
    • Select an app or search for a group.
    • Click the group, then select one or more apps, and click Assign.
    • Select the access levels for the app within that group and click Save.
    • New groups are added at the lowest priority by default.
  2. Check Access Levels for a User:
    • Navigate to Menu > Security > Access and data control > Context-Aware Access.
    • In the Admin console, go to the app's settings page, click Users, then Select a user and enter their email address.
    • The "Inherited from" column shows which group or OU determined the user's settings.
  3. Remove a Configuration Group:
    • Navigate to Menu > Security > Access and data control > Context-Aware Access.
    • Click Assign access levels, then Groups.
    • Select the group to remove. First, unassign all access levels from all apps within that group.
    • The group will no longer appear in the list.
  4. Edit a Configuration Group:
    • Navigate to Menu > Security > Access and data control > Context-Aware Access.
    • Click Assign access levels, then Groups.
    • Search and select the group to edit.
    • Update the access level assignments for the group's apps.
    • Click Save.

Combining Context-Aware Access with Data Loss Prevention (DLP)

For enhanced security, you can combine Data Loss Prevention (DLP) rules with Context-Aware Access conditions. This means a DLP rule is only enforced if specific contextual conditions are met, providing finer control over sensitive content.

Benefits

Requirements

Setting Up Combined Rules

You can create an access level either before or during DLP rule creation. A single access level can be assigned to a DLP rule, and complex conditions can be built using Advanced mode.

Example: Block download of sensitive content on a device outside the corporate network (Chrome):

  1. In the Admin console, go to Rules > Create rule > Data protection.
  2. Name and describe the rule. Define the Scope (e.g., All in your domain or specific OUs/groups).
  3. In Apps, under Chrome, check File downloaded.
  4. In Conditions, add a condition for Content type to scan (e.g., All content) and What to scan for (your DLP scan type and attributes).
  5. In Context conditions, click Select an access level > Create new access level.
  6. Name and describe the new access level. In Context conditions, click Add condition.
  7. Select Doesn't meet 1 or more attributes, then Select attribute > IP subnet, and enter your corporate network's IP address in CIDR notation.
  8. Click Create, then Continue on the Create Rule page.
  9. On the Actions page, for ChromeOS action, choose Block.
  10. Review details, choose a status (Active/Inactive), and click Create.

Important Notes for DLP with CAA: * Rules are only triggered when both content conditions and context conditions are met. * Context conditions are ignored in older Chrome versions. * Rules do not apply in Chrome incognito mode. * If an assigned access level is deleted, context conditions default to true, potentially widening the rule's application. * Context-Aware Access itself does not need to be enabled for access level evaluation in DLP rules; it's independent.

Managing Admin Console Access with CAA

You can apply Context-Aware Access levels to the Google Admin console itself, providing an extra layer of security for administrator access. This helps define the context (e.g., device, location) from which other administrators can access the console.

Caution: Do not assign access levels to the Admin console unless explicitly needed to limit admin access. Always ensure at least one super administrator can access the Customer Care Portal in case of lockout.

Assigning and Updating Access Levels

  1. Sign in to the Admin console with an administrator account.
  2. Navigate to Security > Access and data control > Context-Aware Access.
  3. Find Admin console at the top of the application list and click Assign.
  4. Select one or more access levels. Access is granted if an admin meets conditions in any selected access level (logical OR). To require meeting multiple access levels, create a nested access level with a logical AND.
  5. Click Save. The system verifies that the access level conditions do not lock out any admins.

Avoiding and Responding to Lockout Scenarios

Editing and Deleting Access Levels for Admin Console

Troubleshooting Common Context-Aware Access Issues

When users encounter blocked access, Context-Aware Access provides remediation messages and detailed logs to help administrators troubleshoot.

Remediation Messages

Remediation messages replace default "access denied" messages and provide system-generated guidance corresponding to the policy violation. You can also add custom messages with specific help or links.

To Turn On Remediation Messages:

  1. Sign in to the Admin console.
  2. Navigate to Security > Access and data control > Context-Aware Access.
  3. Select User message.
  4. Under Remediation messages, slide the toggle to ON.
  5. Click Save.

Common Remediation Messages and Actions: The system generates messages based on the violated attribute. Examples include:

Common Errors Before Remediation Messages Display:

Understanding Context-Aware Access Log Events

The Context-Aware Access log events provide valuable data for troubleshooting access issues.

To Run a Search for Log Events:

  1. Sign in to the Admin console.
  2. Navigate to Reporting > Audit and investigation > Context Aware Access log events.
  3. Click Add a filter and select an attribute (e.g., Access level applied, Access level satisfied, Access level unsatisfied, Actor, Application, Event, IP address, Device state).
  4. Select an operator and value, then click Apply.
  5. Click Search.

Key Attributes in Logs:

For more advanced search and investigation, use the Security Investigation Tool if your Google Workspace edition supports it. This tool allows for more complex queries and actions based on log data.

Frequently Asked Questions (FAQs)

References