Lost in Translation: Unifying Cloud and App Permissions with a Single Language

Share

Managing security for a modern enterprise is a daunting task. Today’s businesses aren't just "in the cloud"—they run on a heavily fragmented ecosystem of dozens, sometimes hundreds, of applications. In addition to managing cloud providers like AWS or Azure, security teams typically juggle platforms like Salesforce, GitHub, Workday, and a host of custom on-prem applications.

To secure these environments, administrators are expected to become fluent in the unique permission model of every single application and stay on top of them as they evolve. When they inevitably fall behind, the result is widespread overprivilege—a massive vulnerability that leads to data leakage, compliance violations, and the accidental deletion of key resources.

The "Language Barrier" of Access Control

The core job of Identity and Access Management (IAM) teams is translating user tasks into the specific permissions that enable them. Unfortunately, every application speaks a different access control language.

While most platforms share foundational concepts like resource-based access controls, they rarely use the same terms. The lack of standardized terminology makes it incredibly difficult to ensure the "right" level of access is being granted:

  • The "Read" Translation Gap: In a SaaS app like Workday, an admin might look for a "Read" permission to allow a user to see employee records, but the actual permission is View Worker Data. In GitHub, the equivalent read is Contents:Read. In Salesforce, it is called Read, but if an admin accidentally grants View All on a record type instead, they have inadvertently enabled a "God-mode" override that bypasses Private Sharing settings and exposes protected PII.
  • Accidental Universal Access: A single injudiciously granted permission can dismantle your entire security posture. In Azure, granting the Microsoft.Authorization/roleAssignments/write permission to a team lead sounds reasonable. In reality, it allows that user to assign the Owner role to themselves, granting them full control of the environment.
  • Persistent Backdoors: Workday’s Proxy permission is often granted to support staff to troubleshoot issues by "seeing what the user sees." If granted without strict scoping, an admin can log in as anyone in the company. Similarly, a departing employee with Okta’s Manage API Tokens permission can generate a long-lived bearer token for a secondary service account, maintaining administrative access long after their personal login is revoked.

Furthermore, permission "hierarchies" vary wildly. In Microsoft Azure, access is granted not just directly to a resource, but through a hierarchy of subscriptions, management folders, and the organization. In Elastic, the permissions themselves are hierarchical (e.g., a single "write" permission encompasses "create," "index," and "delete").

Because of these idiosyncrasies, an admin's expertise in one platform can easily become a dangerous liability in another due to false familiarity.

Andromeda’s Common Language for Cloud and App Access

No single administrator can understand 100 different access languages, and at Andromeda, we don’t think they should have to.

Administrators are already comfortable with the CRUD access model: Create, Read, Update, and Delete. Andromeda normalizes the permission models of cloud providers, natively integrated SaaS platforms, and custom apps into a single, common language built on this familiar foundation.

This enables security teams to understand access and risk at a glance—whether they are looking at an AWS S3 bucket or a Salesforce Customer Object. In our taxonomy, we separate Auth Management from CRUD, and further distinguish between Data and Metadata:

Access Level Risk Level Description SaaS / Cloud Examples
Auth Management High User/group management and permission grants. Okta: okta.users.manage
AWS: iam:CreateUser
Data Create High Creating a new data object or record (INSERT, POST). Salesforce: Create Accounts
GitHub: Contents: Write
Data Read Medium Reading a data object or record (SELECT, Read). Workday: View Worker Data
AWS: s3:GetObject
Data Update High Updating existing data objects or records (UPDATE, PUT). Zendesk: Update Tickets
GCP: bigquery.data.update
Data Delete High Deleting an existing data object or record (DELETE). HubSpot: Delete Contacts
Azure: storage.containers.delete
Metadata Create High Creating a metadata object (CREATE, Create Tag). GitHub: Metadata: Write
AWS: ec2:CreateTags
Metadata Read Medium Reading the metadata of an object (DESCRIBE, Read Tag). Slack: groups:read
GCP: compute.images.list
Metadata Update High Updating metadata of an existing object (ALTER, Update Tag). Elastic: manage_index_templates
Salesforce: Customize Application
Metadata Delete High Deleting a metadata object (DROP). Elastic: delete_index
AWS: ec2:DeleteKeyPair
System Operations Medium OS/System tasks (Restart VM, Refresh data). Salesforce: Refresh Sandbox
Ping Identity: Restart Gateway
Execute Medium Executing tasks (Execute Lambda, Run a Job). Snowflake: EXECUTE TASK
AWS: lambda:Invoke
Miscellaneous Low Uncategorized or low-impact permissions. Ping Identity: Update User Language
Slack: Manage Notification Sounds

The foundation of our taxonomy is CRUD, supplemented by "Auth Management" (the keys to the kingdom), and categories like "System Operations" and "Execute" for permissions that don't map cleanly to CRUD.

Crucially, we draw a hard line between Metadata and Data access. CRUD access to Metadata is generally less dangerous because it involves system descriptors. CRUD access to Data is high-risk, as it often contains PII and sensitive company information.

How We Solve the Mapping Problem

Manually mapping 50,000+ permissions to a single taxonomy would be impossible, especially since cloud providers and SaaS vendors add, deprecate, and change permissions weekly.

To solve this, Andromeda utilizes a custom AI agent equipped with targeted sub-agents to discover permissions and categorize them (Create vs. Read, Data vs. Metadata). We employ a "user-teacher" model: human security experts guide and correct the AI’s initial assumptions, continuously updating its mappings to seamlessly incorporate new and changing permissions.

Conclusion and Next Steps

By translating fragmented permissions into a familiar CRUD-based taxonomy, Andromeda empowers administrators to grant appropriate access levels without needing a Rosetta Stone for 100+ platforms.

Understanding your baseline access is the first step toward proactive security. The next step is Andromeda’s Just-in-Time (JIT) Access. For any role that includes elevated permissions, Andromeda's AI models review every access request in real-time. Access is approved only when it’s needed, strictly for the duration it's required, and only when the request aligns with expected behavioral baselines.

Stop wrestling with permission languages and start securing your ecosystem.

Managing security for a modern enterprise is a daunting task. Today’s businesses aren't just "in the cloud"—they run on a heavily fragmented ecosystem of dozens, sometimes hundreds, of applications. In addition to managing cloud providers like AWS or Azure, security teams typically juggle platforms like Salesforce, GitHub, Workday, and a host of custom on-prem applications.

To secure these environments, administrators are expected to become fluent in the unique permission model of every single application and stay on top of them as they evolve. When they inevitably fall behind, the result is widespread overprivilege—a massive vulnerability that leads to data leakage, compliance violations, and the accidental deletion of key resources.

The "Language Barrier" of Access Control

The core job of Identity and Access Management (IAM) teams is translating user tasks into the specific permissions that enable them. Unfortunately, every application speaks a different access control language.

While most platforms share foundational concepts like resource-based access controls, they rarely use the same terms. The lack of standardized terminology makes it incredibly difficult to ensure the "right" level of access is being granted:

  • The "Read" Translation Gap: In a SaaS app like Workday, an admin might look for a "Read" permission to allow a user to see employee records, but the actual permission is View Worker Data. In GitHub, the equivalent read is Contents:Read. In Salesforce, it is called Read, but if an admin accidentally grants View All on a record type instead, they have inadvertently enabled a "God-mode" override that bypasses Private Sharing settings and exposes protected PII.
  • Accidental Universal Access: A single injudiciously granted permission can dismantle your entire security posture. In Azure, granting the Microsoft.Authorization/roleAssignments/write permission to a team lead sounds reasonable. In reality, it allows that user to assign the Owner role to themselves, granting them full control of the environment.
  • Persistent Backdoors: Workday’s Proxy permission is often granted to support staff to troubleshoot issues by "seeing what the user sees." If granted without strict scoping, an admin can log in as anyone in the company. Similarly, a departing employee with Okta’s Manage API Tokens permission can generate a long-lived bearer token for a secondary service account, maintaining administrative access long after their personal login is revoked.

Furthermore, permission "hierarchies" vary wildly. In Microsoft Azure, access is granted not just directly to a resource, but through a hierarchy of subscriptions, management folders, and the organization. In Elastic, the permissions themselves are hierarchical (e.g., a single "write" permission encompasses "create," "index," and "delete").

Because of these idiosyncrasies, an admin's expertise in one platform can easily become a dangerous liability in another due to false familiarity.

Andromeda’s Common Language for Cloud and App Access

No single administrator can understand 100 different access languages, and at Andromeda, we don’t think they should have to.

Administrators are already comfortable with the CRUD access model: Create, Read, Update, and Delete. Andromeda normalizes the permission models of cloud providers, natively integrated SaaS platforms, and custom apps into a single, common language built on this familiar foundation.

This enables security teams to understand access and risk at a glance—whether they are looking at an AWS S3 bucket or a Salesforce Customer Object. In our taxonomy, we separate Auth Management from CRUD, and further distinguish between Data and Metadata:

Access Level Risk Level Description SaaS / Cloud Examples
Auth Management High User/group management and permission grants. Okta: okta.users.manage
AWS: iam:CreateUser
Data Create High Creating a new data object or record (INSERT, POST). Salesforce: Create Accounts
GitHub: Contents: Write
Data Read Medium Reading a data object or record (SELECT, Read). Workday: View Worker Data
AWS: s3:GetObject
Data Update High Updating existing data objects or records (UPDATE, PUT). Zendesk: Update Tickets
GCP: bigquery.data.update
Data Delete High Deleting an existing data object or record (DELETE). HubSpot: Delete Contacts
Azure: storage.containers.delete
Metadata Create High Creating a metadata object (CREATE, Create Tag). GitHub: Metadata: Write
AWS: ec2:CreateTags
Metadata Read Medium Reading the metadata of an object (DESCRIBE, Read Tag). Slack: groups:read
GCP: compute.images.list
Metadata Update High Updating metadata of an existing object (ALTER, Update Tag). Elastic: manage_index_templates
Salesforce: Customize Application
Metadata Delete High Deleting a metadata object (DROP). Elastic: delete_index
AWS: ec2:DeleteKeyPair
System Operations Medium OS/System tasks (Restart VM, Refresh data). Salesforce: Refresh Sandbox
Ping Identity: Restart Gateway
Execute Medium Executing tasks (Execute Lambda, Run a Job). Snowflake: EXECUTE TASK
AWS: lambda:Invoke
Miscellaneous Low Uncategorized or low-impact permissions. Ping Identity: Update User Language
Slack: Manage Notification Sounds

The foundation of our taxonomy is CRUD, supplemented by "Auth Management" (the keys to the kingdom), and categories like "System Operations" and "Execute" for permissions that don't map cleanly to CRUD.

Crucially, we draw a hard line between Metadata and Data access. CRUD access to Metadata is generally less dangerous because it involves system descriptors. CRUD access to Data is high-risk, as it often contains PII and sensitive company information.

How We Solve the Mapping Problem

Manually mapping 50,000+ permissions to a single taxonomy would be impossible, especially since cloud providers and SaaS vendors add, deprecate, and change permissions weekly.

To solve this, Andromeda utilizes a custom AI agent equipped with targeted sub-agents to discover permissions and categorize them (Create vs. Read, Data vs. Metadata). We employ a "user-teacher" model: human security experts guide and correct the AI’s initial assumptions, continuously updating its mappings to seamlessly incorporate new and changing permissions.

Conclusion and Next Steps

By translating fragmented permissions into a familiar CRUD-based taxonomy, Andromeda empowers administrators to grant appropriate access levels without needing a Rosetta Stone for 100+ platforms.

Understanding your baseline access is the first step toward proactive security. The next step is Andromeda’s Just-in-Time (JIT) Access. For any role that includes elevated permissions, Andromeda's AI models review every access request in real-time. Access is approved only when it’s needed, strictly for the duration it's required, and only when the request aligns with expected behavioral baselines.

Stop wrestling with permission languages and start securing your ecosystem.