T05 · Unauthorized Access and Privilege Escalation
- Location
references/ram-policies.md:9- Finding
Account-Wide RAM Resource Scope Exceeds Least Privilege
- Content
View full analysis
Vulnerability Details
File Location:
references/ram-policies.md:9-39andreferences/ram-policies.md:49-83
Vulnerability Type: Overly broad cloud access policy
Risk Level: MediumVulnerable Code
Policy A grants read access across every applicable resource:
json { "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "dataworks:ListCrawlerTypes", "dataworks:ListCatalogs", "dataworks:GetCatalog", "dataworks:GetDatabase", "dataworks:GetTable", "dataworks:ListColumns", "dataworks:GetColumn", "dataworks:ListPartitions", "dataworks:GetPartition", "dataworks:ListLineages", "dataworks:ListLineageRelationships", "dataworks:GetLineageRelationship", "dataworks:ListDatasets", "dataworks:GetDataset", "dataworks:ListDatasetVersions", "dataworks:GetDatasetVersion", "dataworks:PreviewDatasetVersion", "dataworks:ListMetaCollections", "dataworks:GetMetaCollection", "dataworks:ListEntitiesInMetaCollection" ], "Resource": "*" } ] }Policy B grants read and mutation access across every applicable resource:
json { "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "dataworks:ListCrawlerTypes", "dataworks:ListCatalogs", "dataworks:GetCatalog", "dataworks:GetDatabase", "dataworks:GetTable", "dataworks:UpdateTableBusinessMetadata", "dataworks:ListColumns", "dataworks:GetColumn", "dataworks:UpdateColumnBusinessMetadata", "dataworks:ListPartitions", "dataworks:GetPartition", "dataworks:ListLineages", "dataworks:ListLineageRelationships", "dataworks:GetLineageRelationship", "dataworks:CreateLineageRelationship", "dataworks:CreateDataset", "dataworks:ListDatasets", "dataworks ...[truncated 3121 chars]- Remediation
View remediation
Remediation Suggestions
- Replace
"Resource": "*"with explicit resource identifiers for the approved projects, workspaces, datasets, and metadata objects wherever the corresponding DataWorks API supports resource-level authorization. - Separate read-only and write identities. Use the read-only policy by default and activate a narrowly scoped write identity only for confirmed write operations.
- Separate permissions by workflow rather than granting all non-destructive writes together. For example, dataset maintenance should not automatically grant lineage and metadata-collection mutation rights.
- If particular list operations or APIs require
"Resource": "*", isolate those actions into a separate statement and document the Alibaba Cloud authorization limitation. Keep all resource-scopable actions restricted. - Use a dedicated low-privilege RAM user or role for the Skill instead of a broadly privileged human or administrative profile.
- Add conditions supported by RAM, such as project, workspace, region, source identity, or session constraints, where applicable.
- Retain the existing user-confirmation, idempotency, timeout, and no-deletion safeguards as defense in depth, but do not rely on them as substitutes for IAM enforcement.
- Periodically audit CloudTrail or equivalent Alibaba Cloud action logs for unexpected metadata reads and writes performed by the Skill identity.
- Replace
