Acquia Cloud Platform manages access through organization-level roles and application-level permissions layered on top of Drupal's own role system. Understanding both layers is critical for secure analytics deployment.
Acquia Cloud Platform Roles
Acquia uses a hierarchical permission model: Organization > Team > Application > Environment.
Organization Roles
| Role | Description |
|---|---|
| Owner | Full control over the organization, billing, and all applications |
| Administrator | Manage teams, applications, and users across the organization |
| Member | Access only to assigned teams and applications |
Team Roles
Teams grant application-level access. Each team member gets one of these roles:
| Role | Manage Apps | Deploy | Configure Environments | Access Logs | Manage Team |
|---|---|---|---|---|---|
| Admin | Yes | Yes | Yes | Yes | Yes |
| Senior Developer | No | Yes | Yes | Yes | No |
| Developer | No | Yes | No | Yes | No |
Drupal Site Roles (Application Layer)
Since Acquia hosts Drupal, the CMS itself has its own role system:
| Role | Administer Users | Administer Modules | Edit Content | Administer Themes |
|---|---|---|---|---|
| Administrator | Yes | Yes | Yes | Yes |
| Content Editor | No | No | Yes | No |
| Content Author | No | No | Own only | No |
| Authenticated User | No | No | No | No |
| Anonymous | No | No | No | No |
Analytics-Relevant Permissions
Who Can Install Tracking Scripts
On Acquia-hosted Drupal sites, analytics script installation requires:
- Acquia Cloud Admin/Senior Developer to deploy module changes
- Drupal Administrator to enable and configure analytics modules
- Drupal user with
administer google analyticspermission for GA configuration
# Check which Drupal roles have analytics permissions via Drush
drush role:list --format=json | python3 -c "
import json, sys
roles = json.load(sys.stdin)
for role_id, role in roles.items():
perms = role.get('permissions', [])
analytics_perms = [p for p in perms if 'analytics' in p or 'tag' in p or 'script' in p]
if analytics_perms:
print(f'{role_id}: {analytics_perms}')
"
Environment-Specific Permissions
Acquia separates Dev, Stage, and Production environments. Analytics scripts should only be configured for Production:
# Example: Drupal config split for analytics (config/prod/google_analytics.settings.yml)
account: "G-XXXXXXXXXX"
visibility:
request_path_mode: 0
request_path_pages: "/admin\n/admin/*"
Custom Roles in Drupal on Acquia
Create custom roles via Drupal's admin UI or Drush:
# Create a custom "Analytics Manager" role via Drush
drush role:create analytics_manager "Analytics Manager"
# Grant analytics-specific permissions
drush role:perm:add analytics_manager "administer google analytics"
drush role:perm:add analytics_manager "access site reports"
drush role:perm:add analytics_manager "view any webform submission"
Navigate to People > Roles (/admin/people/roles) in Drupal to manage roles through the UI.
Acquia Cloud API Token Scopes
Acquia Cloud API v2 uses OAuth2 tokens for programmatic access:
# Generate an API token at https://cloud.acquia.com/a/profile/tokens
# Authenticate and list applications
curl -s -X POST "https://accounts.acquia.com/api/auth/oauth/token" \
-d "client_id=YOUR_KEY&client_secret=YOUR_SECRET&grant_type=client_credentials" \
| jq '.access_token'
# List team members for an organization
curl -s -H "Authorization: Bearer $TOKEN" \
"https://cloud.acquia.com/api/organizations/{org_uuid}/members" \
| jq '.[] | {email: .mail, roles: .roles}'
API tokens inherit the permissions of the user who created them. There are no granular scopes -- tokens get full access for that user's role level.
Permission Audit
| Check | How to Verify |
|---|---|
| Acquia Cloud users | Acquia Cloud UI > Organization > Members |
| Drupal admin accounts | drush user:list --roles=administrator |
| Analytics module access | Drupal Admin > People > Permissions > Filter "analytics" |
| API tokens | Acquia Cloud > Profile > API Tokens (each user manages their own) |
| Environment access | Acquia Cloud > Application > Teams |
Best Practices
- Use Acquia teams to limit environment access -- developers should not have Production deploy rights
- Create a dedicated Drupal "Analytics Manager" role rather than granting full admin access
- Use config splits to keep analytics configuration separate per environment
- Audit Acquia Cloud API tokens quarterly since they inherit full user permissions
- Leverage Acquia Shield (IP whitelisting) to restrict admin access on non-production environments