AWS_PARENT
Summary
Forestall ACL Alias
AWS_PARENT
Affected Object Types
Org → OU/Account, OU → child OU/Account, Account → IAM entity
Exploitation Certainty
Medium
Description
AWS_PARENT is a single structural edge directed parent → child that models the entire AWS containment hierarchy. One relation covers all levels. The target node label tells you what kind of containment it is.
Edge semantics (parent → child):
(AWSOrganization)-[AWS_PARENT]->(AWSAccount | AWSOrganizationalUnit): the organization root directly contains a root-level account or top-level OU.(AWSOrganizationalUnit)-[AWS_PARENT]->(AWSOrganizationalUnit | AWSAccount): a parent OU contains a nested child OU or a member account.(AWSAccount)-[AWS_PARENT]->(AWSIAMUser | AWSIAMRole | AWSIAMGroup | AWSIAMPolicy): an account contains the IAM identities scoped to it.
The hierarchy flows top-down: Organization → OU → (nested OU) → Account → IAM entity. Nested OUs chain through AWS_PARENT to arbitrary depth (AWS allows up to 5 levels). Only root-level accounts and OUs link directly to the organization; nested entities reach back up through their immediate parent.
OUs are how SCPs get applied at scale. An attacker who can move accounts or OUs, or tamper with SCP attachments, affects the effective permissions of everything beneath that point in the hierarchy.
Identification
Look up the parent or children of any account or OU:
# List the parent of an account or OU
aws organizations list-parents --child-id <account-id-or-ou-id>
# List direct children (accounts and nested OUs) of a parent
aws organizations list-children --parent-id <ou-id-or-root-id> --child-type ACCOUNT
aws organizations list-children --parent-id <ou-id-or-root-id> --child-type ORGANIZATIONAL_UNIT
# Identify the account an IAM entity belongs to (from its ARN)
aws iam get-user --user-name TargetUser --query 'User.Arn' --output text | cut -d: -f5Forestall ISPM creates this edge during org/OU/account collection by matching each child to its parent ID via ListRoots, ListOrganizationalUnitsForParent, and ListChildren. IAM collection adds the account-to-entity level by grouping identities by account ID.
Mitigation
Apply least-privilege SCPs at the OU level and avoid permissive policies on the root.
Keep the OU structure as shallow as workloads allow. Deeper hierarchies amplify the blast radius of a single misconfiguration.
Separate workload accounts from security and audit accounts at the OU level.
Lock down who can call
organizations:MoveAccount,organizations:AttachPolicy, andorganizations:DetachPolicy.
Detection
Watch CloudTrail for
MoveAccount,CreateOrganizationalUnit,DeleteOrganizationalUnit,CreateAccount, andRemoveAccountFromOrganization.Alert on
AttachPolicyandDetachPolicyevents on any OU, especially the root.Regularly reconcile the org hierarchy against your expected structure to catch accounts that have drifted.
References
Last updated
Was this helpful?