turbot/alicloud_insights

Query: ram_user_manage_policies_sankey

Usage

powerpipe query alicloud_insights.query.ram_user_manage_policies_sankey

SQL

with args as (
select $1 as ram_user_arn
)
-- User
select
null as from_id,
name as id,
title,
0 as depth,
'alicloud_ram_user' as category
from
alicloud_ram_user
where
arn in (select ram_user_arn from args)
-- Groups
union select
u.name as from_id,
g.name as id,
user_groups ->> 'GroupName' as title,
1 as depth,
'alicloud_ram_group' as category
from
alicloud_ram_user as u,
jsonb_array_elements(u.groups) as user_groups
inner join alicloud_ram_group g on g.name = user_groups ->> 'GroupName'
where
u.arn in (select ram_user_arn from args)
-- Policies (attached to groups)
union select
g.name as from_id,
p.title as id,
p.title as title,
2 as depth,
'alicloud_ram_policy' as category
from
alicloud_ram_user as u,
alicloud_ram_policy as p,
jsonb_array_elements(u.groups) as user_groups
inner join alicloud_ram_group g on g.name = user_groups ->> 'GroupName',
jsonb_array_elements(g.attached_policy) as user_policy
where
user_policy ->> 'PolicyName' = p.title
and u.arn in (select ram_user_arn from args)
-- Policies (attached to user)
union select
u.name as from_id,
p.title as id,
p.title as title,
2 as depth,
'alicloud_ram_policy' as category
from
alicloud_ram_user as u,
jsonb_array_elements(u.attached_policy) as pol_arn,
alicloud_ram_policy as p
where
pol_arn ->> 'PolicyName' = p.title
and u.arn in (select ram_user_arn from args);

Dashboards

The query is used in the dashboards: