AWS permissions and trusts
Below is a list of examples illustrating various ways in which you can effectively query you AWS-related data relating to both permissions and trusts.
note
If you have over 10,000 AWS resources in multiple AWS accounts, some query execution may take a long time or occasionally time out. Try limiting the query by adding and tag.AccountName='account-name' as part of the WITH entity property filter. Or use LIMIT 100 at the end of the query for a smaller sample set of the results.
IAM Policy Permissions
Which policies allow access to production data?
find AccessPolicy as policy
  that allows as permission
    (aws_s3|aws_dynamodb|aws_rds|DataStore) with tag.Production=true as resource
return
  policy._type, policy.name,
  resource._type, resource.name, resource.tag.AccountName,
  permission.actions, permission.resources
Who has admin access to production resources?
find (aws_iam_group|aws_iam_user|aws_iam_role) as principal
  that assigned AccessPolicy as policy
  that allows as permission
    * with tag.Production=true as resource
where permission.admin=true
  return
    principal._type, principal.name, principal.tag.AccountName,
    policy._type, policy.name,
    permission.actions, permission.resources,
    resource._type, resource.name, resource.tag.AccountName
IAM Assume Role Trusts
What are the cross-account trusts?
Find aws_iam_role as a
  that trusts (aws_account|aws_iam_role) as b
where a.tag.AccountName!=b.tag.AccountName
  return tree
Are there assume role trusts to external entities?
Find aws_account as aws
  that HAS aws_iam
  that HAS aws_iam_role as role
  that TRUSTS (aws_iam_role|aws_iam_user|aws_iam_group|aws_account)
    with _source='system-mapper' as ext
  return
    aws.name, aws.accountId,
    role.roleName,
    ext.displayName, ext._type
IAM Roles and Policies assigned to Okta SSO Users
Find okta_user as user
  that assigned aws_iam_role as role
  that assigned aws_iam_policy as policy
return
  role.name, policy.name, count(user) as userCount
order by userCount desc
What IAM roles can active public facing EC2 instances assume?
find Internet
  that allows aws_security_group
  that protects aws_instance with active=true
  that uses aws_iam_role
  that assigned AccessPolicy
  return tree
OR
find (Network|Host) with _source='system-mapper'
  that allows aws_security_group
  that protects aws_instance with active=true
  that uses aws_iam_role
  that assigned AccessPolicy
  return tree
note
As seen above, the (Network|Host) with _source='system-mapper' portion of the query looks for Network or Host entities created by the system-mapper —- meaning those are networks and hosts “external” to your environment, not ingested by the integration.
S3 Bucket permissions
Are there non-public S3 buckets configured with public access to everyone?
Find aws_s3_bucket
  with classification!='public' or classification=undefined
  that ALLOWS everyone
What are the cross account access to non-public S3 buckets?
Find aws_s3_bucket with classification != 'public' as a
  that allows * as b
where a.tag.AccountName != b.tag.AccountName
  return tree
Who can read non-public S3 buckets in production?
Find (User|UserGroup|AccessRole)
  that assigned AccessPolicy
  that allows as permission
    (aws_s3|aws_s3_bucket) with
      classification!='public' and tag.Production=true
where permission.read=true
  return tree
Which EC2 instances can read data from S3 via an IAM role?
find aws_instance
  that uses aws_iam_role
  that assigned AccessPolicy
  that allows as permission (aws_s3|aws_s3_bucket)
where permission.read=true
  return tree
Other
What are the Inline Policies in use?
Find (aws_iam_user|aws_iam_group|aws_iam_role) as u
  that (has|assigned)
    (aws_iam_user_policy|aws_iam_group_policy|aws_iam_role_policy) as p
return
  u.tag.AccountName, u._type, u.name, p.name
order by u.tag.AccountName