Control: Ensure that 'Java version' is the latest, if used as a part of the Web app
Description
Periodically, newer versions are released for Java software either due to security flaws or to include additional functionality. Using the latest Java version for web apps is recommended in order to take advantage of security fixes, if any, and/or new functionalities of the latest version. Currently, this policy only applies to Linux web apps.
Usage
Run the control in your terminal:
powerpipe control run azure_compliance.control.appservice_web_app_latest_java_version
Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run azure_compliance.control.appservice_web_app_latest_java_version --share
SQL
This control uses a named query:
with all_web_app as ( select id from azure_app_service_web_app where exists ( select from unnest(regexp_split_to_array(kind, ',')) elem where elem like 'app%' ) and exists ( select from unnest(regexp_split_to_array(kind, ',')) elem where elem = 'linux' ))select a.id as resource, case when b.id is null then 'skip' when configuration -> 'properties' ->> 'linuxFxVersion' not like 'JAVA%' then 'ok' when configuration -> 'properties' ->> 'linuxFxVersion' like '%11' then 'ok' else 'alarm' end as status, case when b.id is null then a.title || ' is ' || a.kind || ' kind.' when configuration -> 'properties' ->> 'linuxFxVersion' not like 'JAVA%' then a.name || ' not using JAVA version.' when configuration -> 'properties' ->> 'linuxFxVersion' like '%11' then a.name || ' using the latest JAVA version.' else a.name || ' not using latest JAVA 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_web_app as b on a.id = b.id, azure_subscription as subwhere sub.subscription_id = a.subscription_id;