bridgecrewio / checkov

Prevent cloud misconfigurations and find vulnerabilities during build-time in infrastructure as code, container images and open source packages with Checkov by Bridgecrew.
https://www.checkov.io/
Apache License 2.0
6.75k stars 1.08k forks source link

feat(arm): MySQLPublicAccessDisabled-Azure MySQL: Restrict Public Access #6263

Closed channy-katz closed 1 month ago

channy-katz commented 2 months ago

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

[//]: # "

PR Title

Be aware that we use the title to create changelog automatically and therefore only allow specific prefixes
- break:    to indicate a breaking change, this supersedes any of the types
- feat:     to indicate new features or checks
- fix:      to indicate a bugfix or handling of edge cases of existing checks
- docs:     to indicate an update to our documentation
- chore:    to indicate adjustments to workflow files or dependency updates
- platform: to indicate a change needed for the platform
Additionally a scope is needs to be added to the prefix, which indicates the targeted framework, in doubt choose 'general'.
#    
Allowed prefixs:
ansible|argo|arm|azure|bicep|bitbucket|circleci|cloudformation|dockerfile|github|gha|gitlab|helm|kubernetes|kustomize|openapi|sast|sca|secrets|serverless|terraform|general|graph|terraform_plan|terraform_json
#
ex.
feat(terraform): add CKV_AWS_123 to ensure that VPC Endpoint Service is configured for Manual Acceptance

"

Description

This code defines a check named MySQLPublicAccessDisabled for Azure MySQL servers. It ensures that the 'publicNetworkAccess' property is set to 'False', preventing public access to the servers. The check extends BaseResourceValueCheck, specifying the inspected key ('properties/publicNetworkAccess') and the expected value ('False').

Fixes # (issue)

New/Edited policies (Delete if not relevant)

Description

Include a description of what makes it a violation and any relevant external links.

Fix

The fix for CKV_AZURE_53 error is to ensure that the 'publicNetworkAccess' property is set to 'False' for MySQL servers in the public Azure region.

Checklist:

ChanochShayner commented 1 month ago

This shouldn't be a bool value but [enabled, disabled] https://learn.microsoft.com/en-us/azure/templates/microsoft.storage/storageaccounts?pivots=deployment-language-arm-template