Skip to content

Commit 1aefaa4

Browse files
fix(terraform): Update FunctionAppsAccessibleOverHttps (#7084)
* fix_CKV_AZURE_70 * add test * add test * add test
1 parent 8c51b80 commit 1aefaa4

File tree

3 files changed

+59
-1
lines changed

3 files changed

+59
-1
lines changed

checkov/terraform/checks/resource/azure/FunctionAppsAccessibleOverHttps.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def scan_resource_conf(self, conf: dict[str, list[Any]]) -> CheckResult:
3232
auth_settings_v2 = conf['auth_settings_v2'][0]
3333

3434
# default=true for require_https
35-
if 'require_https' not in auth_settings_v2.keys():
35+
if 'require_https' not in auth_settings_v2:
3636
return CheckResult.PASSED
3737

3838
require_https = auth_settings_v2.get('require_https')[0]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
provider "azurerm" {
2+
features {}
3+
}
4+
5+
variable "resource_group_name" {
6+
description = "resource_group_name"
7+
type = string
8+
default = "rg-wwe-ictd-cyselab"
9+
}
10+
11+
variable "location" {
12+
description = "Azure location name"
13+
type = string
14+
default = "westeurope"
15+
}
16+
17+
resource "azurerm_storage_account" "example" {
18+
name = "examplestorageacc"
19+
resource_group_name = var.resource_group_name
20+
location = var.location
21+
account_tier = "Standard"
22+
account_replication_type = "LRS"
23+
}
24+
25+
resource "azurerm_app_service_plan" "example" {
26+
name = "example-appserviceplan"
27+
location = var.location
28+
resource_group_name = var.resource_group_name
29+
sku {
30+
tier = "Dynamic"
31+
size = "Y1"
32+
}
33+
}
34+
35+
resource "azurerm_linux_function_app" "example" {
36+
name = "example-linux-functionapp"
37+
location = var.location
38+
resource_group_name = var.resource_group_name
39+
service_plan_id = azurerm_app_service_plan.example.id
40+
storage_account_name = azurerm_storage_account.example.name
41+
storage_account_access_key = azurerm_storage_account.example.primary_access_key
42+
site_config {
43+
https_only = true
44+
45+
}
46+
}
47+
48+
output "function_app_endpoint" {
49+
value = azurerm_linux_function_app.example.default_hostname
50+
}

tests/terraform/checks/resource/azure/test_FunctionAppsAccessibleOverHttps.py

+8
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,14 @@ def test(self):
4545
self.assertEqual(passing_resources, passed_check_resources)
4646
self.assertEqual(failing_resources, failed_check_resources)
4747

48+
def test_tf_plan(self):
49+
test_files_dir = Path(__file__).parent / "example_FunctionAppAccessibleOverHttps_tfplan"
50+
51+
report = Runner().run(root_folder=str(test_files_dir), runner_filter=RunnerFilter(checks=[check.id]))
52+
summary = report.get_summary()
53+
54+
self.assertEqual(summary["failed"], 1)
55+
self.assertEqual(report.failed_checks[0].check_id, 'CKV_AZURE_70')
4856

4957

5058
if __name__ == '__main__':

0 commit comments

Comments
 (0)