Control: Ensure that 'Java version' is the latest, if used as a part of the Function 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 Function 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_function_app_latest_java_versionSnapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run azure_compliance.control.appservice_function_app_latest_java_version --shareSQL
This control uses a named query:
select  a.id as resource,  case    when configuration -> 'properties' ->> 'linuxFxVersion' not like 'Java%' and configuration -> 'properties' ->> 'javaVersion' is null then 'ok'    when configuration -> 'properties' ->> 'linuxFxVersion' like '%' || $1 or  configuration -> 'properties' ->>  'javaVersion' = $1 then 'ok'    else 'alarm'  end as status,  case    when configuration -> 'properties' ->> 'linuxFxVersion' not like 'Java%' and configuration -> 'properties' ->> 'javaVersion' is null then a.name || ' not using JAVA version.'    when configuration -> 'properties' ->> 'linuxFxVersion' like '%' || $1 or  configuration -> 'properties' ->>  'javaVersion' = $1 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_function_app as a  left join azure_subscription as sub on sub.subscription_id = a.subscription_id;
Params
| Args | Name | Default | Description | Variable | 
|---|---|---|---|---|
| $1 | appservice_function_app_latest_java_version |  | AppService function app latest java version. |