Control: Web app should use the latest 'Net Framework' version
Description
Periodically, newer versions are released for Net Framework software either due to security flaws or to include additional functionality. Using the latest Net Framework for web apps is recommended in order to take advantage of security fixes, if any, and/or new functionalities of the latest version.
Usage
Run the control in your terminal:
powerpipe control run azure_compliance.control.appservice_web_app_latest_dotnet_framework_versionSnapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run azure_compliance.control.appservice_web_app_latest_dotnet_framework_version --shareSQL
This control uses a named query:
with all_linux_web_app as (  select    id  from    azure_app_service_web_app  where    exists (      select      from        unnest(regexp_split_to_array(kind, ',')) elem      where        elem = 'linux'    ))select  a.id as resource,  case    when b.id is null and configuration -> 'properties' ->> 'netFrameworkVersion' in ('v6.0', 'v7.0') then 'ok'    when b.id is not null and configuration -> 'properties' ->> 'linuxFxVersion' not like 'DOTNETCORE|%' then 'ok'    when b.id is not null and configuration -> 'properties' ->> 'linuxFxVersion' in ('DOTNETCORE|6.0', 'DOTNETCORE|7.0') then 'ok'    else 'alarm'  end as status,  case    when b.id is null and configuration -> 'properties' ->> 'netFrameworkVersion' in ('v6.0', 'v7.0') then a.name || ' using latest dotnet framework version.'    when b.id is not null and configuration -> 'properties' ->> 'linuxFxVersion' not like 'DOTNETCORE|%' then a.name || ' not using dotnet framework.'    when b.id is not null and configuration -> 'properties' ->> 'linuxFxVersion' in ('DOTNETCORE|6.0', 'DOTNETCORE|7.0') then a.name || ' using latest dotnet vframework ersion.'    else a.name || ' not using latest dotnet framework version.'  end as reason    , a.resource_group as resource_group  , sub.display_name as subscriptionfrom  azure_app_service_web_app as a  left join all_linux_web_app as b on a.id = b.id  left join azure_subscription as sub on sub.subscription_id = a.subscription_id;