Control: Function apps should restrict public network access
Description
This control checks whether Function apps are not publicly accessible.
Usage
Run the control in your terminal:
powerpipe control run terraform_azure_compliance.control.appservice_function_app_public_access_disabled
Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run terraform_azure_compliance.control.appservice_function_app_public_access_disabled --share
SQL
This control uses a named query:
select address as resource, case when (attributes_std -> 'public_network_access_enabled') is null or (attributes_std ->> 'public_network_access_enabled')::bool then 'alarm' else 'ok' end status, split_part(address, '.', 2) || case when (attributes_std -> 'public_network_access_enabled') is null or (attributes_std ->> 'public_network_access_enabled')::bool then ' publicly accessible' else ' not publicly accessible' end || '.' reason , path || ':' || start_linefrom terraform_resourcewhere type in ('azurerm_linux_function_app', 'azurerm_linux_function_app_slot', 'azurerm_windows_function_app', 'azurerm_windows_function_app_slot');