security-policies/bundle/compliance/policy/aws_iam/data_adapter.rego (48 lines of code) (raw):

package compliance.policy.aws_iam.data_adapter import future.keywords.contains import future.keywords.if is_server_certificate if { input.subType == "aws-iam-server-certificate" } is_pwd_policy if { input.subType == "aws-password-policy" } is_iam_user if { input.subType == "aws-iam-user" input.resource.name != "<root_account>" } is_root_user if { input.subType == "aws-iam-user" input.resource.name == "<root_account>" } is_iam_policy if { input.subType == "aws-policy" } is_aws_support_access if { is_iam_policy input.resource.Arn == "arn:aws:iam::aws:policy/AWSSupportAccess" } is_access_analyzers if { input.subType == "aws-access-analyzers" } pwd_policy := policy if { is_pwd_policy policy := input.resource } iam_user := input.resource policy_document := input.resource.document roles := input.resource.roles server_certificates := input.resource.certificates analyzers := input.resource.Analyzers analyzer_regions := input.resource.Regions used_active_access_keys contains access_key if { access_key := iam_user.access_keys[_] access_key.active access_key.has_used } unused_active_access_keys contains access_key if { access_key := iam_user.access_keys[_] access_key.active not access_key.has_used } active_access_keys := used_active_access_keys | unused_active_access_keys