# Why automate Quick custom permissions
Amazon Quick offers custom permissions so administrators can toggle features per user and enforce least-privilege access. As Quick deployments scale and features expand, manually assigning or changing profiles becomes error-prone and slow. The blog post presents four concrete patterns you can adopt depending on where users are in the lifecycle and how granular your policies need to be.
# Four actionable patterns
1) Apply permissions at user creation (RegisterUser API)
If you control onboarding through a portal or script, include the --custom-permissions-name parameter when you call RegisterUser. This applies the desired profile the moment the Quick user is created and avoids follow-up automation.
When to use: you provision users directly (for example, SaaS integrations or custom onboarding flows) and want no gap between provisioning and enforcement.
Example CLI snippet (illustrative):
--custom-permissions-name "Restricted-Author-Profile"
2) Set account- or role-level defaults (UpdateAccountCustomPermission, UpdateRoleCustomPermission)
Quick supports a three-level permissions hierarchy: account, role, and user. Defaults at account or role level apply automatically to users who lack explicit user-level profiles. Use the UpdateAccountCustomPermission API to set a fallback profile for all users without an explicit assignment. Use UpdateRoleCustomPermission to set defaults by Quick role (READER, AUTHOR, ADMIN, PRO).
When to use: you want a low-maintenance, organization-wide baseline policy that covers both existing and future users without per-user automation. This is the simplest path for broad controls such as blocking new features until a security review completes.
Example CLI options described in the post illustrate how to set account or role defaults with the corresponding APIs.
3) Event-driven conditional logic (EventBridge + Lambda)
If your permission logic depends on attributes that the built-in defaults can't express—such as group membership, external identity attributes, or dynamic business rules—use Amazon EventBridge to capture relevant events and invoke AWS Lambda to apply the correct custom-permissions profile.
Supported triggers include Quick-native group changes and AWS IAM Identity Center (IDC) group events. The event-driven pattern handles new users and membership changes in near real time and lets you centralize conditional rules in code.
When to use: you need group-based logic, differential profiles for federated users, or automation that reacts to identity lifecycle events.
4) Retroactive bulk updates (Python script)
For users already provisioned before automation existed, the post provides a Python script pattern that enumerates users in specified Quick groups and applies a chosen custom-permissions profile. This approach brings historical accounts into compliance in a single operation.
When to use: you're onboarding automation for an existing deployment and need to ensure all current users receive the intended profile.
# How to choose
Start with defaults (Scenario 2) where they fit: they require the least operational effort and cover new and existing users who don't have explicit profiles. Use RegisterUser (Scenario 1) when you control provisioning and want immediate enforcement. Move to the event-driven pattern (Scenario 3) when you need conditional or group-based rules that defaults cannot express. Use the retroactive script (Scenario 4) to bring legacy users under the same policies.
# Practical next steps
- Audit where and how users are provisioned in your environment (manual portal, SSO, just-in-time provisioning).
- If you control onboarding, add the custom-permissions parameter to RegisterUser calls.
- Choose account- or role-level defaults for broad policies you want applied immediately.
- Implement an EventBridge + Lambda workflow if you require conditional, dynamic assignments tied to identity or group events.
- Run the provided Python batch script to update existing users when you deploy automation.