Skip to main content

AWS: Node & Edge Schema

The AWS connection collects IAM and cloud infrastructure data from individual AWS accounts and from entire AWS Organizations, transforming them into a graph structure of nodes and relationships for analysis.


Node Types

Node TypeDescription
AWSIAMUserRepresents an IAM user
AWSIAMRoleRepresents an IAM role
AWSPolicyIAM policy document attached to identities
AWSAccountThe root account entity
AWSGroupRepresents IAM groups
AWSServiceLogical representation of AWS services (e.g., EC2, Lambda)
ResourceAbstract node for services or infrastructure

AWS Organization

If you connected your entire AWS Organization, you will have some additional nodes:

Node TypeDescription
AWSOrganizationRootThe top-level root node of the AWS Organization
AWSAccountAn individual AWS account (either management or member)

Edge Relationships

These describe how entities relate or are allowed to interact.

Edge TypeFrom NodeTo NodeDescription
CAN_ASSUMEAWSIAMUser or AWSIAMRoleAWSIAMRoleIndicates ability to assume a role
CAN_BE_ASSUMED_BYAWSIAMRoleAWSIAMUser or AWSIAMRoleReverse of CAN_ASSUME
HAS_PERMISSIONAWSIAMUser, AWSIAMRole, or AWSGroupAWSPolicyShows which identities have a policy
IS_MEMBER_OFAWSIAMUserAWSGroupIndicates that a user belongs to a group
HAS_MEMBERAWSGroupAWSIAMUserInverse of IS_MEMBER_OF
CAN_ACCESSAWSIAMUser or AWSIAMRoleResourceRepresents access allowed to a resource or service

AWS Organization

Edge TypeFrom NodeTo NodeDescription
IS_MEMBER_OFAWSAccountAWSOrganizationRootIndicates that an account belongs to the organization root
HAS_MEMBERAWSOrganizationRootAWSAccountInverse of IS_MEMBER_OF
IS_MEMBER_OFAWSAccountAWSAccount (OU/parent)An account is nested under another OU or account

These relationships capture both flat membership under the root and nested relationships via parent/child links within the AWS Organization hierarchy.


Examples

Example graph relationships constructed by the AWS Account adapter:

(AWSIAMUser)-[:IS_MEMBER_OF]->(AWSGroup)
(AWSIAMUser)-[:HAS_PERMISSION]->(AWSPolicy)
(AWSIAMRole)-[:CAN_ASSUME]->(AWSIAMRole)
(AWSIAMRole)-[:CAN_ACCESS]->(Resource)

AWS Organization

(AWSAccount)-[:IS_MEMBER_OF]->(AWSOrganizationRoot)
(AWSOrganizationRoot)-[:HAS_MEMBER]->(AWSAccount)
(AWSAccount)-[:IS_MEMBER_OF]->(AWSAccount) // Nested under parent org/account

Notes

  • Policies may be shared across users, roles, and groups, and are modeled as separate nodes for visibility.
  • Resource nodes generalize access targets such as S3 buckets, Lambda functions, or EC2 instances.