def get_orphaned_policies()

in cfn_policy_validator/parsers/identity.py [0:0]


	def get_orphaned_policies(cls):
		"""
		Orphaned policies are policies that are not attached to any principal
		"""
		role_policies = [policy for role in RoleParser.roles.values() for policy in role.Policies]
		user_policies = [policy for user in UserParser.users.values() for policy in user.Policies]
		group_policies = [policy for group in GroupParser.groups.values() for policy in group.Policies]
		permission_set_policies = [policy for permission_set in PermissionSetParser.permission_sets.values()
								   for policy in permission_set.Policies]

		all_attached_policies = list(set(role_policies) | set(user_policies) | set(group_policies) | set(permission_set_policies))
		all_managed_policies = list(ManagedPolicyParser.managed_policies.values())

		return [managed_policy for managed_policy in all_managed_policies if
				managed_policy not in all_attached_policies]