s1-shift-left-cli 0.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2207) hide show
  1. s1_cns_cli/__init__.py +0 -0
  2. s1_cns_cli/cli/__init__.py +0 -0
  3. s1_cns_cli/cli/command_line_arguments.py +683 -0
  4. s1_cns_cli/cli/config/__init__.py +1 -0
  5. s1_cns_cli/cli/config/config.py +64 -0
  6. s1_cns_cli/cli/config/config_manager.py +30 -0
  7. s1_cns_cli/cli/main.py +167 -0
  8. s1_cns_cli/cli/registry.py +361 -0
  9. s1_cns_cli/cli/scan/__init__.py +0 -0
  10. s1_cns_cli/cli/scan/code_scanner.py +62 -0
  11. s1_cns_cli/cli/scan/iac.py +798 -0
  12. s1_cns_cli/cli/scan/secret.py +423 -0
  13. s1_cns_cli/cli/scan/vulnerability.py +396 -0
  14. s1_cns_cli/cli/utils.py +545 -0
  15. s1_cns_cli/s1graph/__init__.py +0 -0
  16. s1_cns_cli/s1graph/ansible/__init__.py +1 -0
  17. s1_cns_cli/s1graph/ansible/checks/__init__.py +1 -0
  18. s1_cns_cli/s1graph/ansible/checks/base_ansible_task_check.py +76 -0
  19. s1_cns_cli/s1graph/ansible/checks/base_ansible_task_value_check.py +79 -0
  20. s1_cns_cli/s1graph/ansible/checks/graph_checks/BlockErrorHandling.yaml +10 -0
  21. s1_cns_cli/s1graph/ansible/checks/graph_checks/DnfDisableGpgCheck.yaml +12 -0
  22. s1_cns_cli/s1graph/ansible/checks/graph_checks/DnfSslVerify.yaml +12 -0
  23. s1_cns_cli/s1graph/ansible/checks/graph_checks/DnfValidateCerts.yaml +12 -0
  24. s1_cns_cli/s1graph/ansible/checks/graph_checks/GetUrlHttpsOnly.yaml +12 -0
  25. s1_cns_cli/s1graph/ansible/checks/graph_checks/PanosInterfaceMgmtProfileNoHTTP.yaml +17 -0
  26. s1_cns_cli/s1graph/ansible/checks/graph_checks/PanosInterfaceMgmtProfileNoTelnet.yaml +17 -0
  27. s1_cns_cli/s1graph/ansible/checks/graph_checks/PanosPolicyDescription.yaml +16 -0
  28. s1_cns_cli/s1graph/ansible/checks/graph_checks/PanosPolicyLogForwarding.yaml +16 -0
  29. s1_cns_cli/s1graph/ansible/checks/graph_checks/PanosPolicyLoggingEnabled.yaml +12 -0
  30. s1_cns_cli/s1graph/ansible/checks/graph_checks/PanosPolicyNoApplicationAny.yaml +22 -0
  31. s1_cns_cli/s1graph/ansible/checks/graph_checks/PanosPolicyNoDSRI.yaml +17 -0
  32. s1_cns_cli/s1graph/ansible/checks/graph_checks/PanosPolicyNoServiceAny.yaml +22 -0
  33. s1_cns_cli/s1graph/ansible/checks/graph_checks/PanosPolicyNoSrcAnyDstAny.yaml +40 -0
  34. s1_cns_cli/s1graph/ansible/checks/graph_checks/PanosZoneProtectionProfile.yaml +16 -0
  35. s1_cns_cli/s1graph/ansible/checks/graph_checks/PanosZoneUserIDIncludeACL.yaml +31 -0
  36. s1_cns_cli/s1graph/ansible/checks/graph_checks/UriHttpsOnly.yaml +12 -0
  37. s1_cns_cli/s1graph/ansible/checks/graph_checks/__init__.py +0 -0
  38. s1_cns_cli/s1graph/ansible/checks/registry.py +4 -0
  39. s1_cns_cli/s1graph/ansible/checks/task/__init__.py +2 -0
  40. s1_cns_cli/s1graph/ansible/checks/task/aws/EC2EBSOptimized.py +31 -0
  41. s1_cns_cli/s1graph/ansible/checks/task/aws/EC2PublicIP.py +34 -0
  42. s1_cns_cli/s1graph/ansible/checks/task/aws/__init__.py +4 -0
  43. s1_cns_cli/s1graph/ansible/checks/task/builtin/AptAllowUnauthenticated.py +28 -0
  44. s1_cns_cli/s1graph/ansible/checks/task/builtin/AptForce.py +28 -0
  45. s1_cns_cli/s1graph/ansible/checks/task/builtin/GetUrlValidateCerts.py +23 -0
  46. s1_cns_cli/s1graph/ansible/checks/task/builtin/UriValidateCerts.py +23 -0
  47. s1_cns_cli/s1graph/ansible/checks/task/builtin/YumSslVerify.py +23 -0
  48. s1_cns_cli/s1graph/ansible/checks/task/builtin/YumValidateCerts.py +23 -0
  49. s1_cns_cli/s1graph/ansible/checks/task/builtin/__init__.py +4 -0
  50. s1_cns_cli/s1graph/ansible/graph_builder/__init__.py +0 -0
  51. s1_cns_cli/s1graph/ansible/graph_builder/graph_components/__init__.py +0 -0
  52. s1_cns_cli/s1graph/ansible/graph_builder/graph_components/resource_types.py +10 -0
  53. s1_cns_cli/s1graph/ansible/graph_builder/local_graph.py +145 -0
  54. s1_cns_cli/s1graph/ansible/runner.py +132 -0
  55. s1_cns_cli/s1graph/ansible/utils.py +91 -0
  56. s1_cns_cli/s1graph/argo_workflows/__init__.py +1 -0
  57. s1_cns_cli/s1graph/argo_workflows/checks/__init__.py +1 -0
  58. s1_cns_cli/s1graph/argo_workflows/checks/base_argo_workflows_check.py +41 -0
  59. s1_cns_cli/s1graph/argo_workflows/checks/registry.py +4 -0
  60. s1_cns_cli/s1graph/argo_workflows/checks/template/DefaultServiceAccount.py +29 -0
  61. s1_cns_cli/s1graph/argo_workflows/checks/template/RunAsNonRoot.py +31 -0
  62. s1_cns_cli/s1graph/argo_workflows/checks/template/__init__.py +4 -0
  63. s1_cns_cli/s1graph/argo_workflows/common/__init__.py +0 -0
  64. s1_cns_cli/s1graph/argo_workflows/runner.py +142 -0
  65. s1_cns_cli/s1graph/arm/__init__.py +1 -0
  66. s1_cns_cli/s1graph/arm/base_parameter_check.py +44 -0
  67. s1_cns_cli/s1graph/arm/base_registry.py +16 -0
  68. s1_cns_cli/s1graph/arm/base_resource_check.py +66 -0
  69. s1_cns_cli/s1graph/arm/base_resource_negative_value_check.py +70 -0
  70. s1_cns_cli/s1graph/arm/base_resource_value_check.py +72 -0
  71. s1_cns_cli/s1graph/arm/checks/__init__.py +2 -0
  72. s1_cns_cli/s1graph/arm/checks/graph_checks/AzureSpringCloudConfigWithVnet.yaml +15 -0
  73. s1_cns_cli/s1graph/arm/checks/graph_checks/__init__.py +0 -0
  74. s1_cns_cli/s1graph/arm/checks/parameter/SecureStringParameterNoHardcodedValue.py +23 -0
  75. s1_cns_cli/s1graph/arm/checks/parameter/__init__.py +5 -0
  76. s1_cns_cli/s1graph/arm/checks/resource/AKSApiServerAuthorizedIpRanges.py +45 -0
  77. s1_cns_cli/s1graph/arm/checks/resource/AKSDashboardDisabled.py +39 -0
  78. s1_cns_cli/s1graph/arm/checks/resource/AKSLoggingEnabled.py +39 -0
  79. s1_cns_cli/s1graph/arm/checks/resource/AKSNetworkPolicy.py +36 -0
  80. s1_cns_cli/s1graph/arm/checks/resource/AKSRbacEnabled.py +33 -0
  81. s1_cns_cli/s1graph/arm/checks/resource/AppServiceAuthentication.py +39 -0
  82. s1_cns_cli/s1graph/arm/checks/resource/AppServiceClientCertificate.py +27 -0
  83. s1_cns_cli/s1graph/arm/checks/resource/AppServiceHTTPSOnly.py +26 -0
  84. s1_cns_cli/s1graph/arm/checks/resource/AppServiceHttps20Enabled.py +24 -0
  85. s1_cns_cli/s1graph/arm/checks/resource/AppServiceIdentity.py +32 -0
  86. s1_cns_cli/s1graph/arm/checks/resource/AppServiceMinTLSVersion.py +24 -0
  87. s1_cns_cli/s1graph/arm/checks/resource/AzureInstancePassword.py +37 -0
  88. s1_cns_cli/s1graph/arm/checks/resource/AzureManagedDiscEncryption.py +30 -0
  89. s1_cns_cli/s1graph/arm/checks/resource/AzureScaleSetPassword.py +38 -0
  90. s1_cns_cli/s1graph/arm/checks/resource/CosmosDBDisableAccessKeyWrite.py +24 -0
  91. s1_cns_cli/s1graph/arm/checks/resource/CustomRoleDefinitionSubscriptionOwner.py +39 -0
  92. s1_cns_cli/s1graph/arm/checks/resource/KeyvaultRecoveryEnabled.py +28 -0
  93. s1_cns_cli/s1graph/arm/checks/resource/MariaDBSSLEnforcementEnabled.py +22 -0
  94. s1_cns_cli/s1graph/arm/checks/resource/MonitorLogProfileCategories.py +27 -0
  95. s1_cns_cli/s1graph/arm/checks/resource/MonitorLogProfileRetentionDays.py +31 -0
  96. s1_cns_cli/s1graph/arm/checks/resource/MySQLServerSSLEnforcementEnabled.py +22 -0
  97. s1_cns_cli/s1graph/arm/checks/resource/NSGRulePortAccessRestricted.py +65 -0
  98. s1_cns_cli/s1graph/arm/checks/resource/NSGRuleRDPAccessRestricted.py +11 -0
  99. s1_cns_cli/s1graph/arm/checks/resource/NSGRuleSSHAccessRestricted.py +9 -0
  100. s1_cns_cli/s1graph/arm/checks/resource/NetworkWatcherFlowLogPeriod.py +38 -0
  101. s1_cns_cli/s1graph/arm/checks/resource/PostgreSQLServerConnectionThrottlingEnabled.py +43 -0
  102. s1_cns_cli/s1graph/arm/checks/resource/PostgreSQLServerLogCheckpointsEnabled.py +44 -0
  103. s1_cns_cli/s1graph/arm/checks/resource/PostgreSQLServerLogConnectionsEnabled.py +44 -0
  104. s1_cns_cli/s1graph/arm/checks/resource/PostgreSQLServerSSLEnforcementEnabled.py +22 -0
  105. s1_cns_cli/s1graph/arm/checks/resource/SQLServerAuditingEnabled.py +42 -0
  106. s1_cns_cli/s1graph/arm/checks/resource/SQLServerAuditingRetention90Days.py +43 -0
  107. s1_cns_cli/s1graph/arm/checks/resource/SQLServerEmailAlertsEnabled.py +42 -0
  108. s1_cns_cli/s1graph/arm/checks/resource/SQLServerEmailAlertsToAdminsEnabled.py +43 -0
  109. s1_cns_cli/s1graph/arm/checks/resource/SQLServerNoPublicAccess.py +38 -0
  110. s1_cns_cli/s1graph/arm/checks/resource/SQLServerThreatDetectionTypes.py +37 -0
  111. s1_cns_cli/s1graph/arm/checks/resource/SecretExpirationDate.py +27 -0
  112. s1_cns_cli/s1graph/arm/checks/resource/SecurityCenterContactEmailAlert.py +26 -0
  113. s1_cns_cli/s1graph/arm/checks/resource/SecurityCenterContactEmailAlertAdmins.py +26 -0
  114. s1_cns_cli/s1graph/arm/checks/resource/SecurityCenterContactPhone.py +26 -0
  115. s1_cns_cli/s1graph/arm/checks/resource/SecurityCenterStandardPricing.py +26 -0
  116. s1_cns_cli/s1graph/arm/checks/resource/StorageAccountAzureServicesAccessEnabled.py +40 -0
  117. s1_cns_cli/s1graph/arm/checks/resource/StorageAccountDefaultNetworkAccessDeny.py +38 -0
  118. s1_cns_cli/s1graph/arm/checks/resource/StorageAccountDisablePublicAccess.py +24 -0
  119. s1_cns_cli/s1graph/arm/checks/resource/StorageAccountLoggingQueueServiceEnabled.py +41 -0
  120. s1_cns_cli/s1graph/arm/checks/resource/StorageAccountsTransportEncryption.py +40 -0
  121. s1_cns_cli/s1graph/arm/checks/resource/StorageBlobServiceContainerPrivateAccess.py +32 -0
  122. s1_cns_cli/s1graph/arm/checks/resource/__init__.py +5 -0
  123. s1_cns_cli/s1graph/arm/context_parser.py +229 -0
  124. s1_cns_cli/s1graph/arm/graph_builder/__init__.py +0 -0
  125. s1_cns_cli/s1graph/arm/graph_builder/graph_components/__init__.py +0 -0
  126. s1_cns_cli/s1graph/arm/graph_builder/graph_components/block_types.py +12 -0
  127. s1_cns_cli/s1graph/arm/graph_builder/graph_components/blocks.py +19 -0
  128. s1_cns_cli/s1graph/arm/graph_builder/local_graph.py +109 -0
  129. s1_cns_cli/s1graph/arm/graph_manager.py +42 -0
  130. s1_cns_cli/s1graph/arm/parser/__init__.py +0 -0
  131. s1_cns_cli/s1graph/arm/parser/parser.py +79 -0
  132. s1_cns_cli/s1graph/arm/registry.py +4 -0
  133. s1_cns_cli/s1graph/arm/runner.py +291 -0
  134. s1_cns_cli/s1graph/arm/utils.py +59 -0
  135. s1_cns_cli/s1graph/azure_pipelines/__init__.py +1 -0
  136. s1_cns_cli/s1graph/azure_pipelines/checks/__init__.py +1 -0
  137. s1_cns_cli/s1graph/azure_pipelines/checks/base_azure_pipelines_check.py +41 -0
  138. s1_cns_cli/s1graph/azure_pipelines/checks/job/ContainerDigest.py +33 -0
  139. s1_cns_cli/s1graph/azure_pipelines/checks/job/ContainerLatestTag.py +42 -0
  140. s1_cns_cli/s1graph/azure_pipelines/checks/job/DetectImagesUsage.py +26 -0
  141. s1_cns_cli/s1graph/azure_pipelines/checks/job/SetSecretVariable.py +41 -0
  142. s1_cns_cli/s1graph/azure_pipelines/checks/job/__init__.py +4 -0
  143. s1_cns_cli/s1graph/azure_pipelines/checks/registry.py +4 -0
  144. s1_cns_cli/s1graph/azure_pipelines/common/__init__.py +0 -0
  145. s1_cns_cli/s1graph/azure_pipelines/common/resource_id_utils.py +41 -0
  146. s1_cns_cli/s1graph/azure_pipelines/image_referencer/__init__.py +0 -0
  147. s1_cns_cli/s1graph/azure_pipelines/image_referencer/manager.py +13 -0
  148. s1_cns_cli/s1graph/azure_pipelines/image_referencer/provider.py +71 -0
  149. s1_cns_cli/s1graph/azure_pipelines/runner.py +97 -0
  150. s1_cns_cli/s1graph/bicep/__init__.py +1 -0
  151. s1_cns_cli/s1graph/bicep/checks/__init__.py +0 -0
  152. s1_cns_cli/s1graph/bicep/checks/graph_checks/SQLServerAuditingEnabled.yaml +39 -0
  153. s1_cns_cli/s1graph/bicep/checks/graph_checks/__init__.py +0 -0
  154. s1_cns_cli/s1graph/bicep/checks/param/__init__.py +1 -0
  155. s1_cns_cli/s1graph/bicep/checks/param/azure/SecureStringParameterNoHardcodedValue.py +27 -0
  156. s1_cns_cli/s1graph/bicep/checks/param/azure/__init__.py +4 -0
  157. s1_cns_cli/s1graph/bicep/checks/param/base_param_check.py +48 -0
  158. s1_cns_cli/s1graph/bicep/checks/param/base_registry.py +36 -0
  159. s1_cns_cli/s1graph/bicep/checks/param/registry.py +3 -0
  160. s1_cns_cli/s1graph/bicep/checks/resource/__init__.py +1 -0
  161. s1_cns_cli/s1graph/bicep/checks/resource/azure/StorageAccountAzureServicesAccessEnabled.py +36 -0
  162. s1_cns_cli/s1graph/bicep/checks/resource/azure/StorageAccountDefaultNetworkAccessDeny.py +24 -0
  163. s1_cns_cli/s1graph/bicep/checks/resource/azure/StorageAccountsTransportEncryption.py +40 -0
  164. s1_cns_cli/s1graph/bicep/checks/resource/azure/__init__.py +4 -0
  165. s1_cns_cli/s1graph/bicep/checks/resource/base_registry.py +58 -0
  166. s1_cns_cli/s1graph/bicep/checks/resource/base_resource_check.py +47 -0
  167. s1_cns_cli/s1graph/bicep/checks/resource/base_resource_value_check.py +68 -0
  168. s1_cns_cli/s1graph/bicep/checks/resource/registry.py +3 -0
  169. s1_cns_cli/s1graph/bicep/graph_builder/__init__.py +0 -0
  170. s1_cns_cli/s1graph/bicep/graph_builder/context_definitions.py +57 -0
  171. s1_cns_cli/s1graph/bicep/graph_builder/graph_components/__init__.py +0 -0
  172. s1_cns_cli/s1graph/bicep/graph_builder/graph_components/block_types.py +16 -0
  173. s1_cns_cli/s1graph/bicep/graph_builder/graph_components/blocks.py +19 -0
  174. s1_cns_cli/s1graph/bicep/graph_builder/graph_to_tf_definitions.py +48 -0
  175. s1_cns_cli/s1graph/bicep/graph_builder/local_graph.py +337 -0
  176. s1_cns_cli/s1graph/bicep/graph_builder/variable_rendering/__init__.py +0 -0
  177. s1_cns_cli/s1graph/bicep/graph_builder/variable_rendering/renderer.py +57 -0
  178. s1_cns_cli/s1graph/bicep/graph_manager.py +41 -0
  179. s1_cns_cli/s1graph/bicep/image_referencer/__init__.py +0 -0
  180. s1_cns_cli/s1graph/bicep/image_referencer/base_provider.py +38 -0
  181. s1_cns_cli/s1graph/bicep/image_referencer/manager.py +19 -0
  182. s1_cns_cli/s1graph/bicep/image_referencer/provider/__init__.py +0 -0
  183. s1_cns_cli/s1graph/bicep/image_referencer/provider/azure.py +74 -0
  184. s1_cns_cli/s1graph/bicep/parser.py +50 -0
  185. s1_cns_cli/s1graph/bicep/runner.py +281 -0
  186. s1_cns_cli/s1graph/bicep/utils.py +113 -0
  187. s1_cns_cli/s1graph/bitbucket/__init__.py +1 -0
  188. s1_cns_cli/s1graph/bitbucket/base_bitbucket_configuration_check.py +43 -0
  189. s1_cns_cli/s1graph/bitbucket/checks/__init__.py +4 -0
  190. s1_cns_cli/s1graph/bitbucket/checks/merge_requests_approvals.py +35 -0
  191. s1_cns_cli/s1graph/bitbucket/dal.py +78 -0
  192. s1_cns_cli/s1graph/bitbucket/registry.py +4 -0
  193. s1_cns_cli/s1graph/bitbucket/runner.py +55 -0
  194. s1_cns_cli/s1graph/bitbucket/schemas/__init__.py +0 -0
  195. s1_cns_cli/s1graph/bitbucket/schemas/branch_restrictions.py +210 -0
  196. s1_cns_cli/s1graph/bitbucket_pipelines/__init__.py +1 -0
  197. s1_cns_cli/s1graph/bitbucket_pipelines/base_bitbucket_pipelines_check.py +39 -0
  198. s1_cns_cli/s1graph/bitbucket_pipelines/checks/__init__.py +4 -0
  199. s1_cns_cli/s1graph/bitbucket_pipelines/checks/latest_image.py +38 -0
  200. s1_cns_cli/s1graph/bitbucket_pipelines/registry.py +4 -0
  201. s1_cns_cli/s1graph/bitbucket_pipelines/runner.py +141 -0
  202. s1_cns_cli/s1graph/circleci_pipelines/__init__.py +1 -0
  203. s1_cns_cli/s1graph/circleci_pipelines/base_circleci_pipelines_check.py +42 -0
  204. s1_cns_cli/s1graph/circleci_pipelines/checks/DetectImagesUsage.py +27 -0
  205. s1_cns_cli/s1graph/circleci_pipelines/checks/ReverseShellNetcat.py +38 -0
  206. s1_cns_cli/s1graph/circleci_pipelines/checks/ShellInjection.py +42 -0
  207. s1_cns_cli/s1graph/circleci_pipelines/checks/SuspectCurlInScript.py +37 -0
  208. s1_cns_cli/s1graph/circleci_pipelines/checks/__init__.py +4 -0
  209. s1_cns_cli/s1graph/circleci_pipelines/checks/image_version_not_hash.py +37 -0
  210. s1_cns_cli/s1graph/circleci_pipelines/checks/latest_image.py +33 -0
  211. s1_cns_cli/s1graph/circleci_pipelines/checks/prevent_development_orbs.py +32 -0
  212. s1_cns_cli/s1graph/circleci_pipelines/checks/prevent_volatile_orbs.py +32 -0
  213. s1_cns_cli/s1graph/circleci_pipelines/common/__init__.py +0 -0
  214. s1_cns_cli/s1graph/circleci_pipelines/common/shell_injection_list.py +8 -0
  215. s1_cns_cli/s1graph/circleci_pipelines/image_referencer/__init__.py +0 -0
  216. s1_cns_cli/s1graph/circleci_pipelines/image_referencer/manager.py +12 -0
  217. s1_cns_cli/s1graph/circleci_pipelines/image_referencer/provider.py +50 -0
  218. s1_cns_cli/s1graph/circleci_pipelines/registry.py +4 -0
  219. s1_cns_cli/s1graph/circleci_pipelines/runner.py +123 -0
  220. s1_cns_cli/s1graph/cloudformation/__init__.py +1 -0
  221. s1_cns_cli/s1graph/cloudformation/cfn_utils.py +238 -0
  222. s1_cns_cli/s1graph/cloudformation/checks/__init__.py +0 -0
  223. s1_cns_cli/s1graph/cloudformation/checks/graph_checks/AppSyncProtectedByWAF.yaml +17 -0
  224. s1_cns_cli/s1graph/cloudformation/checks/graph_checks/__init__.py +0 -0
  225. s1_cns_cli/s1graph/cloudformation/checks/resource/BaseCloudsplainingIAMCheck.py +82 -0
  226. s1_cns_cli/s1graph/cloudformation/checks/resource/__init__.py +0 -0
  227. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ALBDropHttpHeaders.py +41 -0
  228. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ALBListenerHTTPS.py +49 -0
  229. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ALBListenerTLS12.py +57 -0
  230. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/APIGatewayAccessLogging.py +21 -0
  231. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/APIGatewayAuthorization.py +26 -0
  232. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/APIGatewayCacheEnable.py +17 -0
  233. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/APIGatewayV2AccessLogging.py +21 -0
  234. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/APIGatewayXray.py +20 -0
  235. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/AbsSecurityGroupUnrestrictedIngress.py +50 -0
  236. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/AmazonMQBrokerPublicAccess.py +33 -0
  237. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/AppSyncFieldLevelLogs.py +22 -0
  238. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/AppSyncLogging.py +23 -0
  239. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/AthenaWorkgroupConfiguration.py +17 -0
  240. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/AuroraEncryption.py +33 -0
  241. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/BackupVaultEncrypted.py +21 -0
  242. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/CloudFrontTLS12.py +25 -0
  243. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/CloudWatchLogGroupKMSKey.py +21 -0
  244. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/CloudWatchLogGroupRetention.py +21 -0
  245. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/CloudfrontDistributionEncryption.py +38 -0
  246. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/CloudfrontDistributionLogging.py +21 -0
  247. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/CloudtrailEncryption.py +23 -0
  248. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/CloudtrailLogValidation.py +17 -0
  249. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/CloudtrailMultiRegion.py +17 -0
  250. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/CodeBuildProjectEncryption.py +34 -0
  251. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/DAXEncryption.py +20 -0
  252. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/DMSReplicationInstancePubliclyAccessible.py +22 -0
  253. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/DocDBAuditLogs.py +22 -0
  254. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/DocDBEncryption.py +17 -0
  255. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/DocDBLogging.py +27 -0
  256. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/DocDBTLS.py +22 -0
  257. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/DynamoDBTablesEncrypted.py +30 -0
  258. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/DynamodbGlobalTableRecovery.py +17 -0
  259. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/DynamodbRecovery.py +17 -0
  260. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/EBSDefaultEncryption.py +8 -0
  261. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/EBSEncryption.py +17 -0
  262. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/EC2Credentials.py +42 -0
  263. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/EC2PublicIP.py +47 -0
  264. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ECRImageScanning.py +17 -0
  265. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ECRImmutableTags.py +22 -0
  266. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ECRPolicy.py +81 -0
  267. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ECRRepositoryEncrypted.py +22 -0
  268. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ECSClusterContainerInsights.py +34 -0
  269. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ECSTaskDefinitionEFSVolumeEncryption.py +33 -0
  270. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/EFSEncryptionEnabled.py +17 -0
  271. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/EKSControlPlaneLogging.py +7 -0
  272. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/EKSNodeGroupRemoteAccess.py +31 -0
  273. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/EKSPublicAccess.py +6 -0
  274. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/EKSPublicAccessCIDR.py +6 -0
  275. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/EKSSecretsEncryption.py +32 -0
  276. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ELBAccessLogs.py +17 -0
  277. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ELBv2AccessLogs.py +28 -0
  278. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ElasticacheReplicationGroupEncryptionAtRest.py +17 -0
  279. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ElasticacheReplicationGroupEncryptionAtTransit.py +17 -0
  280. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ElasticacheReplicationGroupEncryptionAtTransitAuthToken.py +32 -0
  281. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ElasticsearchDomainAuditLogging.py +17 -0
  282. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ElasticsearchDomainEnforceHTTPS.py +17 -0
  283. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ElasticsearchDomainLogging.py +28 -0
  284. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ElasticsearchEncryption.py +17 -0
  285. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/ElasticsearchNodeToNodeEncryption.py +17 -0
  286. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/GlobalAcceleratorAcceleratorFlowLogs.py +6 -0
  287. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/GlueDataCatalogEncryption.py +37 -0
  288. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/GlueSecurityConfiguration.py +49 -0
  289. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/GlueSecurityConfigurationEnabled.py +28 -0
  290. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/IAMAdminPolicyDocument.py +53 -0
  291. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/IAMCredentialsExposure.py +29 -0
  292. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/IAMDataExfiltration.py +15 -0
  293. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/IAMPermissionsManagement.py +15 -0
  294. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/IAMPolicyAttachedToGroupOrRoles.py +28 -0
  295. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/IAMPrivilegeEscalation.py +16 -0
  296. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/IAMRoleAllowAssumeFromAccount.py +53 -0
  297. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/IAMRoleAllowsPublicAssume.py +52 -0
  298. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/IAMStarActionPolicyDocument.py +56 -0
  299. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/IAMWriteAccess.py +15 -0
  300. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/IMDSv1Disabled.py +30 -0
  301. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/KMSKeyWildCardPrincipal.py +61 -0
  302. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/KMSRotation.py +27 -0
  303. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/KinesisStreamEncryptionType.py +20 -0
  304. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/LambdaDLQConfigured.py +28 -0
  305. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/LambdaEnvironmentCredentials.py +37 -0
  306. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/LambdaEnvironmentEncryptionSettings.py +30 -0
  307. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/LambdaFunctionLevelConcurrentExecutionLimit.py +23 -0
  308. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/LambdaFunctionURLAuth.py +21 -0
  309. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/LambdaInVPC.py +23 -0
  310. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/LaunchConfigurationEBSEncryption.py +38 -0
  311. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/MQBrokerAuditLogging.py +29 -0
  312. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/NeptuneClusterInstancePublic.py +6 -0
  313. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/NeptuneClusterLogging.py +28 -0
  314. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/NeptuneClusterStorageEncrypted.py +17 -0
  315. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/PasswordPolicyExpiration.py +6 -0
  316. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/PasswordPolicyLength.py +6 -0
  317. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/PasswordPolicyLowercaseLetter.py +6 -0
  318. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/PasswordPolicyNumber.py +6 -0
  319. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/PasswordPolicyReuse.py +6 -0
  320. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/PasswordPolicySymbol.py +6 -0
  321. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/PasswordPolicyUppercaseLetter.py +6 -0
  322. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/QLDBLedgerDeletionProtection.py +26 -0
  323. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/QLDBLedgerPermissionsMode.py +20 -0
  324. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/RDSClusterIAMAuthentication.py +17 -0
  325. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/RDSEncryption.py +27 -0
  326. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/RDSEnhancedMonitorEnabled.py +25 -0
  327. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/RDSIAMAuthentication.py +26 -0
  328. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/RDSMultiAZEnabled.py +27 -0
  329. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/RDSPubliclyAccessible.py +22 -0
  330. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/RedShiftSSL.py +28 -0
  331. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/RedshiftClusterEncryption.py +17 -0
  332. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/RedshiftClusterLogging.py +21 -0
  333. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/RedshiftClusterPubliclyAccessible.py +20 -0
  334. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/RedshiftInEc2ClassicMode.py +21 -0
  335. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/S3AccessLogs.py +23 -0
  336. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/S3BlockPublicACLs.py +18 -0
  337. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/S3BlockPublicPolicy.py +18 -0
  338. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/S3Encryption.py +25 -0
  339. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/S3IgnorePublicACLs.py +17 -0
  340. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/S3PublicACLRead.py +21 -0
  341. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/S3PublicACLWrite.py +22 -0
  342. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/S3RestrictPublicBuckets.py +18 -0
  343. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/S3Versioning.py +25 -0
  344. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/SNSTopicEncryption.py +21 -0
  345. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/SQSQueueEncryption.py +23 -0
  346. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/SecretManagerSecretEncrypted.py +29 -0
  347. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/SecurityGroupRuleDescription.py +46 -0
  348. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/SecurityGroupUnrestrictedIngress22.py +10 -0
  349. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/SecurityGroupUnrestrictedIngress3389.py +9 -0
  350. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/SecurityGroupUnrestrictedIngress80.py +10 -0
  351. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/TimestreamDatabaseKMSKey.py +23 -0
  352. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/TransferServerIsPublic.py +20 -0
  353. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/VPCEndpointAcceptanceConfigured.py +17 -0
  354. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/WAFACLCVE202144228.py +55 -0
  355. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/WAFEnabled.py +21 -0
  356. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/WorkspaceRootVolumeEncrypted.py +17 -0
  357. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/WorkspaceUserVolumeEncrypted.py +17 -0
  358. s1_cns_cli/s1graph/cloudformation/checks/resource/aws/__init__.py +5 -0
  359. s1_cns_cli/s1graph/cloudformation/checks/resource/base_registry.py +16 -0
  360. s1_cns_cli/s1graph/cloudformation/checks/resource/base_resource_check.py +48 -0
  361. s1_cns_cli/s1graph/cloudformation/checks/resource/base_resource_negative_value_check.py +76 -0
  362. s1_cns_cli/s1graph/cloudformation/checks/resource/base_resource_value_check.py +113 -0
  363. s1_cns_cli/s1graph/cloudformation/checks/resource/registry.py +3 -0
  364. s1_cns_cli/s1graph/cloudformation/checks/utils/__init__.py +0 -0
  365. s1_cns_cli/s1graph/cloudformation/checks/utils/iam_cloudformation_document_to_policy_converter.py +35 -0
  366. s1_cns_cli/s1graph/cloudformation/context_parser.py +193 -0
  367. s1_cns_cli/s1graph/cloudformation/graph_builder/__init__.py +0 -0
  368. s1_cns_cli/s1graph/cloudformation/graph_builder/graph_components/__init__.py +0 -0
  369. s1_cns_cli/s1graph/cloudformation/graph_builder/graph_components/block_types.py +15 -0
  370. s1_cns_cli/s1graph/cloudformation/graph_builder/graph_components/blocks.py +94 -0
  371. s1_cns_cli/s1graph/cloudformation/graph_builder/graph_components/generic_resource_encryption.py +100 -0
  372. s1_cns_cli/s1graph/cloudformation/graph_builder/graph_to_definitions.py +42 -0
  373. s1_cns_cli/s1graph/cloudformation/graph_builder/local_graph.py +402 -0
  374. s1_cns_cli/s1graph/cloudformation/graph_builder/utils.py +67 -0
  375. s1_cns_cli/s1graph/cloudformation/graph_builder/variable_rendering/__init__.py +0 -0
  376. s1_cns_cli/s1graph/cloudformation/graph_builder/variable_rendering/renderer.py +516 -0
  377. s1_cns_cli/s1graph/cloudformation/graph_builder/variable_rendering/vertex_reference.py +13 -0
  378. s1_cns_cli/s1graph/cloudformation/graph_manager.py +55 -0
  379. s1_cns_cli/s1graph/cloudformation/image_referencer/__init__.py +0 -0
  380. s1_cns_cli/s1graph/cloudformation/image_referencer/base_provider.py +38 -0
  381. s1_cns_cli/s1graph/cloudformation/image_referencer/manager.py +19 -0
  382. s1_cns_cli/s1graph/cloudformation/image_referencer/provider/__init__.py +0 -0
  383. s1_cns_cli/s1graph/cloudformation/image_referencer/provider/aws.py +98 -0
  384. s1_cns_cli/s1graph/cloudformation/parser/__init__.py +89 -0
  385. s1_cns_cli/s1graph/cloudformation/parser/cfn_keywords.py +50 -0
  386. s1_cns_cli/s1graph/cloudformation/parser/cfn_yaml.py +286 -0
  387. s1_cns_cli/s1graph/cloudformation/runner.py +283 -0
  388. s1_cns_cli/s1graph/common/__init__.py +1 -0
  389. s1_cns_cli/s1graph/common/checks/__init__.py +0 -0
  390. s1_cns_cli/s1graph/common/checks/base_check.py +121 -0
  391. s1_cns_cli/s1graph/common/checks/base_check_registry.py +213 -0
  392. s1_cns_cli/s1graph/common/checks/enums.py +8 -0
  393. s1_cns_cli/s1graph/common/checks/object_registry.py +222 -0
  394. s1_cns_cli/s1graph/common/checks_infra/__init__.py +0 -0
  395. s1_cns_cli/s1graph/common/checks_infra/checks_parser.py +319 -0
  396. s1_cns_cli/s1graph/common/checks_infra/registry.py +92 -0
  397. s1_cns_cli/s1graph/common/checks_infra/resources_types.py +1291 -0
  398. s1_cns_cli/s1graph/common/checks_infra/solvers/__init__.py +4 -0
  399. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/__init__.py +43 -0
  400. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/any_attribute_solver.py +12 -0
  401. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/base_attribute_solver.py +217 -0
  402. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/base_number_of_words_attribute_solver.py +27 -0
  403. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/contains_attribute_solver.py +24 -0
  404. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/ending_with_attribute_solver.py +12 -0
  405. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/equals_attribute_solver.py +19 -0
  406. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/equals_ignore_case_attribute_solver.py +17 -0
  407. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/exists_attribute_solver.py +12 -0
  408. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/greater_than_attribute_solver.py +21 -0
  409. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/greater_than_or_equal_attribute_solver.py +22 -0
  410. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/intersects_attribute_solver.py +19 -0
  411. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/is_empty_attribute_solver.py +16 -0
  412. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/is_false_attribute_solver.py +11 -0
  413. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/is_not_empty_attribute_solver.py +11 -0
  414. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/is_true_attribute_solver.py +15 -0
  415. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/length_equals_attribute_solver.py +23 -0
  416. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/length_greater_than_attribute_solver.py +27 -0
  417. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/length_greater_than_or_equal_attribute_solver.py +27 -0
  418. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/length_less_than_attribute_solver.py +27 -0
  419. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/length_less_than_or_equal_attribute_solver.py +27 -0
  420. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/length_not_equals_attribute_solver.py +11 -0
  421. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/less_than_attribute_solver.py +14 -0
  422. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/less_than_or_equal_attribute_solver.py +14 -0
  423. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/not_contains_attribute_solver.py +11 -0
  424. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/not_ending_with_attribute_solver.py +11 -0
  425. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/not_equals_attribute_solver.py +11 -0
  426. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/not_equals_ignore_case_attribute_solver.py +11 -0
  427. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/not_exists_attribute_solver.py +11 -0
  428. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/not_intersects_attribute_solver.py +11 -0
  429. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/not_regex_match_attribute_solver.py +11 -0
  430. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/not_starting_with_attribute_solver.py +11 -0
  431. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/not_subset_attribute_solver.py +11 -0
  432. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/not_within_attribute_solver.py +11 -0
  433. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/number_of_words_equals_attribute_solver.py +20 -0
  434. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/number_of_words_greater_than_attribute_solver.py +23 -0
  435. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/number_of_words_greater_than_or_equal_attribute_solver.py +23 -0
  436. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/number_of_words_less_than_attribute_solver.py +23 -0
  437. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/number_of_words_less_than_or_equal_attribute_solver.py +23 -0
  438. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/number_of_words_not_equals_attribute_solver.py +11 -0
  439. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/range_includes_attribute_solver.py +38 -0
  440. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/range_not_includes_attribute_solver.py +10 -0
  441. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/regex_match_attribute_solver.py +18 -0
  442. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/starting_with_attribute_solver.py +12 -0
  443. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/subset_attribute_solver.py +21 -0
  444. s1_cns_cli/s1graph/common/checks_infra/solvers/attribute_solvers/within_attribute_solver.py +12 -0
  445. s1_cns_cli/s1graph/common/checks_infra/solvers/complex_solvers/__init__.py +3 -0
  446. s1_cns_cli/s1graph/common/checks_infra/solvers/complex_solvers/and_solver.py +27 -0
  447. s1_cns_cli/s1graph/common/checks_infra/solvers/complex_solvers/base_complex_solver.py +48 -0
  448. s1_cns_cli/s1graph/common/checks_infra/solvers/complex_solvers/not_solver.py +23 -0
  449. s1_cns_cli/s1graph/common/checks_infra/solvers/complex_solvers/or_solver.py +27 -0
  450. s1_cns_cli/s1graph/common/checks_infra/solvers/connections_solvers/__init__.py +5 -0
  451. s1_cns_cli/s1graph/common/checks_infra/solvers/connections_solvers/and_connection_solver.py +44 -0
  452. s1_cns_cli/s1graph/common/checks_infra/solvers/connections_solvers/base_connection_solver.py +105 -0
  453. s1_cns_cli/s1graph/common/checks_infra/solvers/connections_solvers/complex_connection_solver.py +94 -0
  454. s1_cns_cli/s1graph/common/checks_infra/solvers/connections_solvers/connection_exists_solver.py +81 -0
  455. s1_cns_cli/s1graph/common/checks_infra/solvers/connections_solvers/connection_not_exists_solver.py +32 -0
  456. s1_cns_cli/s1graph/common/checks_infra/solvers/connections_solvers/connection_one_exists_solver.py +33 -0
  457. s1_cns_cli/s1graph/common/checks_infra/solvers/connections_solvers/or_connection_solver.py +36 -0
  458. s1_cns_cli/s1graph/common/checks_infra/solvers/filter_solvers/__init__.py +1 -0
  459. s1_cns_cli/s1graph/common/checks_infra/solvers/filter_solvers/base_filter_solver.py +27 -0
  460. s1_cns_cli/s1graph/common/checks_infra/solvers/filter_solvers/within_filter_solver.py +23 -0
  461. s1_cns_cli/s1graph/common/comment/__init__.py +0 -0
  462. s1_cns_cli/s1graph/common/comment/enum.py +3 -0
  463. s1_cns_cli/s1graph/common/goget/__init__.py +0 -0
  464. s1_cns_cli/s1graph/common/goget/base_getter.py +23 -0
  465. s1_cns_cli/s1graph/common/goget/github/__init__.py +0 -0
  466. s1_cns_cli/s1graph/common/goget/github/get_git.py +82 -0
  467. s1_cns_cli/s1graph/common/goget/registry/__init__.py +0 -0
  468. s1_cns_cli/s1graph/common/goget/registry/get_registry.py +31 -0
  469. s1_cns_cli/s1graph/common/graph/__init__.py +0 -0
  470. s1_cns_cli/s1graph/common/graph/checks_infra/__init__.py +0 -0
  471. s1_cns_cli/s1graph/common/graph/checks_infra/base_check.py +52 -0
  472. s1_cns_cli/s1graph/common/graph/checks_infra/base_parser.py +14 -0
  473. s1_cns_cli/s1graph/common/graph/checks_infra/enums.py +75 -0
  474. s1_cns_cli/s1graph/common/graph/checks_infra/registry.py +56 -0
  475. s1_cns_cli/s1graph/common/graph/checks_infra/solvers/__init__.py +0 -0
  476. s1_cns_cli/s1graph/common/graph/checks_infra/solvers/base_solver.py +32 -0
  477. s1_cns_cli/s1graph/common/graph/db_connectors/__init__.py +0 -0
  478. s1_cns_cli/s1graph/common/graph/db_connectors/db_connector.py +29 -0
  479. s1_cns_cli/s1graph/common/graph/db_connectors/networkx/__init__.py +0 -0
  480. s1_cns_cli/s1graph/common/graph/db_connectors/networkx/networkx_db_connector.py +50 -0
  481. s1_cns_cli/s1graph/common/graph/graph_builder/__init__.py +2 -0
  482. s1_cns_cli/s1graph/common/graph/graph_builder/consts.py +19 -0
  483. s1_cns_cli/s1graph/common/graph/graph_builder/graph_components/__init__.py +0 -0
  484. s1_cns_cli/s1graph/common/graph/graph_builder/graph_components/attribute_names.py +48 -0
  485. s1_cns_cli/s1graph/common/graph/graph_builder/graph_components/block_types.py +16 -0
  486. s1_cns_cli/s1graph/common/graph/graph_builder/graph_components/blocks.py +291 -0
  487. s1_cns_cli/s1graph/common/graph/graph_builder/graph_components/edge.py +29 -0
  488. s1_cns_cli/s1graph/common/graph/graph_builder/graph_components/generic_resource_encryption_base.py +51 -0
  489. s1_cns_cli/s1graph/common/graph/graph_builder/graph_resources_encription_manager.py +29 -0
  490. s1_cns_cli/s1graph/common/graph/graph_builder/local_graph.py +107 -0
  491. s1_cns_cli/s1graph/common/graph/graph_builder/utils.py +46 -0
  492. s1_cns_cli/s1graph/common/graph/graph_builder/variable_rendering/__init__.py +0 -0
  493. s1_cns_cli/s1graph/common/graph/graph_builder/variable_rendering/breadcrumb_metadata.py +9 -0
  494. s1_cns_cli/s1graph/common/graph/graph_builder/variable_rendering/renderer.py +134 -0
  495. s1_cns_cli/s1graph/common/graph/graph_builder/variable_rendering/vertex_reference.py +30 -0
  496. s1_cns_cli/s1graph/common/graph/graph_manager.py +49 -0
  497. s1_cns_cli/s1graph/common/images/__init__.py +0 -0
  498. s1_cns_cli/s1graph/common/images/graph/__init__.py +0 -0
  499. s1_cns_cli/s1graph/common/images/graph/image_referencer_manager.py +20 -0
  500. s1_cns_cli/s1graph/common/images/graph/image_referencer_provider.py +58 -0
  501. s1_cns_cli/s1graph/common/images/image_referencer.py +330 -0
  502. s1_cns_cli/s1graph/common/images/workflow/__init__.py +0 -0
  503. s1_cns_cli/s1graph/common/images/workflow/image_referencer_manager.py +21 -0
  504. s1_cns_cli/s1graph/common/images/workflow/image_referencer_provider.py +21 -0
  505. s1_cns_cli/s1graph/common/models/__init__.py +0 -0
  506. s1_cns_cli/s1graph/common/models/consts.py +35 -0
  507. s1_cns_cli/s1graph/common/models/enums.py +61 -0
  508. s1_cns_cli/s1graph/common/multi_signature.py +129 -0
  509. s1_cns_cli/s1graph/common/output/__init__.py +0 -0
  510. s1_cns_cli/s1graph/common/output/ai.py +152 -0
  511. s1_cns_cli/s1graph/common/output/baseline.py +98 -0
  512. s1_cns_cli/s1graph/common/output/common.py +54 -0
  513. s1_cns_cli/s1graph/common/output/csv.py +232 -0
  514. s1_cns_cli/s1graph/common/output/cyclonedx.py +470 -0
  515. s1_cns_cli/s1graph/common/output/cyclonedx_consts.py +181 -0
  516. s1_cns_cli/s1graph/common/output/extra_resource.py +18 -0
  517. s1_cns_cli/s1graph/common/output/github_actions_record.py +45 -0
  518. s1_cns_cli/s1graph/common/output/gitlab_sast.py +173 -0
  519. s1_cns_cli/s1graph/common/output/graph_record.py +17 -0
  520. s1_cns_cli/s1graph/common/output/record.py +246 -0
  521. s1_cns_cli/s1graph/common/output/report.py +607 -0
  522. s1_cns_cli/s1graph/common/output/sarif.py +243 -0
  523. s1_cns_cli/s1graph/common/output/secrets_record.py +144 -0
  524. s1_cns_cli/s1graph/common/packaging/__init__.py +0 -0
  525. s1_cns_cli/s1graph/common/packaging/version.py +141 -0
  526. s1_cns_cli/s1graph/common/parallelizer/__init__.py +0 -0
  527. s1_cns_cli/s1graph/common/parallelizer/parallel_runner.py +72 -0
  528. s1_cns_cli/s1graph/common/parsers/__init__.py +0 -0
  529. s1_cns_cli/s1graph/common/parsers/json/__init__.py +68 -0
  530. s1_cns_cli/s1graph/common/parsers/json/decoder.py +404 -0
  531. s1_cns_cli/s1graph/common/parsers/json/errors.py +41 -0
  532. s1_cns_cli/s1graph/common/parsers/node.py +189 -0
  533. s1_cns_cli/s1graph/common/parsers/yaml/__init__.py +0 -0
  534. s1_cns_cli/s1graph/common/parsers/yaml/loader.py +76 -0
  535. s1_cns_cli/s1graph/common/parsers/yaml/parser.py +49 -0
  536. s1_cns_cli/s1graph/common/runners/__init__.py +0 -0
  537. s1_cns_cli/s1graph/common/runners/base_post_runner.py +30 -0
  538. s1_cns_cli/s1graph/common/runners/base_runner.py +216 -0
  539. s1_cns_cli/s1graph/common/runners/graph_builder/__init__.py +0 -0
  540. s1_cns_cli/s1graph/common/runners/graph_builder/local_graph.py +57 -0
  541. s1_cns_cli/s1graph/common/runners/graph_manager.py +40 -0
  542. s1_cns_cli/s1graph/common/runners/object_runner.py +354 -0
  543. s1_cns_cli/s1graph/common/runners/runner_registry.py +680 -0
  544. s1_cns_cli/s1graph/common/s1cns/__init__.py +0 -0
  545. s1_cns_cli/s1graph/common/s1cns/bc_source.py +50 -0
  546. s1_cns_cli/s1graph/common/s1cns/check_type.py +37 -0
  547. s1_cns_cli/s1graph/common/s1cns/code_categories.py +55 -0
  548. s1_cns_cli/s1graph/common/s1cns/integration_features/__init__.py +1 -0
  549. s1_cns_cli/s1graph/common/s1cns/integration_features/base_integration_feature.py +45 -0
  550. s1_cns_cli/s1graph/common/s1cns/integration_features/features/__init__.py +4 -0
  551. s1_cns_cli/s1graph/common/s1cns/integration_features/features/custom_policies_integration.py +136 -0
  552. s1_cns_cli/s1graph/common/s1cns/integration_features/features/fixes_integration.py +142 -0
  553. s1_cns_cli/s1graph/common/s1cns/integration_features/features/licensing_integration.py +87 -0
  554. s1_cns_cli/s1graph/common/s1cns/integration_features/features/policies_3d_integration.py +82 -0
  555. s1_cns_cli/s1graph/common/s1cns/integration_features/features/policy_metadata_integration.py +174 -0
  556. s1_cns_cli/s1graph/common/s1cns/integration_features/features/repo_config_integration.py +142 -0
  557. s1_cns_cli/s1graph/common/s1cns/integration_features/features/suppressions_integration.py +233 -0
  558. s1_cns_cli/s1graph/common/s1cns/integration_features/integration_feature_registry.py +52 -0
  559. s1_cns_cli/s1graph/common/s1cns/licensing.py +29 -0
  560. s1_cns_cli/s1graph/common/s1cns/platform_errors.py +14 -0
  561. s1_cns_cli/s1graph/common/s1cns/platform_integration.py +1023 -0
  562. s1_cns_cli/s1graph/common/s1cns/platform_key.py +24 -0
  563. s1_cns_cli/s1graph/common/s1cns/run_metadata/__init__.py +1 -0
  564. s1_cns_cli/s1graph/common/s1cns/run_metadata/abstract_run_metadata_extractor.py +73 -0
  565. s1_cns_cli/s1graph/common/s1cns/run_metadata/ci_variables.py +15 -0
  566. s1_cns_cli/s1graph/common/s1cns/run_metadata/extractors/__init__.py +5 -0
  567. s1_cns_cli/s1graph/common/s1cns/run_metadata/extractors/bitbucket.py +38 -0
  568. s1_cns_cli/s1graph/common/s1cns/run_metadata/extractors/default_extractor.py +34 -0
  569. s1_cns_cli/s1graph/common/s1cns/run_metadata/extractors/github_actions.py +40 -0
  570. s1_cns_cli/s1graph/common/s1cns/run_metadata/extractors/gitlab_ci.py +40 -0
  571. s1_cns_cli/s1graph/common/s1cns/run_metadata/extractors/jenkins.py +39 -0
  572. s1_cns_cli/s1graph/common/s1cns/run_metadata/registry.py +29 -0
  573. s1_cns_cli/s1graph/common/s1cns/severities.py +45 -0
  574. s1_cns_cli/s1graph/common/s1cns/vulnerability_scanning/__init__.py +0 -0
  575. s1_cns_cli/s1graph/common/s1cns/vulnerability_scanning/image_scanner.py +203 -0
  576. s1_cns_cli/s1graph/common/s1cns/vulnerability_scanning/integrations/__init__.py +0 -0
  577. s1_cns_cli/s1graph/common/s1cns/vulnerability_scanning/integrations/docker_image_scanning.py +80 -0
  578. s1_cns_cli/s1graph/common/s1cns/vulnerability_scanning/integrations/package_scanning.py +40 -0
  579. s1_cns_cli/s1graph/common/s1cns/vulnerability_scanning/integrations/twistcli.py +123 -0
  580. s1_cns_cli/s1graph/common/s1cns/vulnerability_scanning/report.py +45 -0
  581. s1_cns_cli/s1graph/common/s1cns/wrapper.py +136 -0
  582. s1_cns_cli/s1graph/common/sca/__init__.py +0 -0
  583. s1_cns_cli/s1graph/common/sca/commons.py +60 -0
  584. s1_cns_cli/s1graph/common/sca/output.py +637 -0
  585. s1_cns_cli/s1graph/common/typing.py +104 -0
  586. s1_cns_cli/s1graph/common/util/__init__.py +0 -0
  587. s1_cns_cli/s1graph/common/util/banner.py +29 -0
  588. s1_cns_cli/s1graph/common/util/config_utils.py +26 -0
  589. s1_cns_cli/s1graph/common/util/consts.py +35 -0
  590. s1_cns_cli/s1graph/common/util/contextmanagers.py +21 -0
  591. s1_cns_cli/s1graph/common/util/data_structures_utils.py +101 -0
  592. s1_cns_cli/s1graph/common/util/decorators.py +28 -0
  593. s1_cns_cli/s1graph/common/util/dockerfile.py +7 -0
  594. s1_cns_cli/s1graph/common/util/docs_generator.py +196 -0
  595. s1_cns_cli/s1graph/common/util/ext_argument_parser.py +543 -0
  596. s1_cns_cli/s1graph/common/util/file_utils.py +84 -0
  597. s1_cns_cli/s1graph/common/util/http_utils.py +247 -0
  598. s1_cns_cli/s1graph/common/util/json_utils.py +101 -0
  599. s1_cns_cli/s1graph/common/util/parser_utils.py +398 -0
  600. s1_cns_cli/s1graph/common/util/prompt.py +277 -0
  601. s1_cns_cli/s1graph/common/util/runner_dependency_handler.py +50 -0
  602. s1_cns_cli/s1graph/common/util/secrets.py +240 -0
  603. s1_cns_cli/s1graph/common/util/secrets_omitter.py +111 -0
  604. s1_cns_cli/s1graph/common/util/stopit/__init__.py +23 -0
  605. s1_cns_cli/s1graph/common/util/stopit/signalstop.py +56 -0
  606. s1_cns_cli/s1graph/common/util/stopit/threadstop.py +81 -0
  607. s1_cns_cli/s1graph/common/util/stopit/utils.py +148 -0
  608. s1_cns_cli/s1graph/common/util/str_utils.py +17 -0
  609. s1_cns_cli/s1graph/common/util/suppression.py +53 -0
  610. s1_cns_cli/s1graph/common/util/templates/__init__.py +0 -0
  611. s1_cns_cli/s1graph/common/util/templates/data.jinja2 +29 -0
  612. s1_cns_cli/s1graph/common/util/templates/init.jinja2 +4 -0
  613. s1_cns_cli/s1graph/common/util/templates/provider.jinja2 +28 -0
  614. s1_cns_cli/s1graph/common/util/templates/resource.jinja2 +28 -0
  615. s1_cns_cli/s1graph/common/util/templates/unittest-python.jinja2 +41 -0
  616. s1_cns_cli/s1graph/common/util/templates/unittest-terraform.jinja2 +9 -0
  617. s1_cns_cli/s1graph/common/util/tqdm_utils.py +76 -0
  618. s1_cns_cli/s1graph/common/util/type_forcers.py +146 -0
  619. s1_cns_cli/s1graph/common/util/var_utils.py +44 -0
  620. s1_cns_cli/s1graph/common/variables/__init__.py +0 -0
  621. s1_cns_cli/s1graph/common/variables/context.py +49 -0
  622. s1_cns_cli/s1graph/common/vcs/__init__.py +0 -0
  623. s1_cns_cli/s1graph/common/vcs/base_vcs_dal.py +130 -0
  624. s1_cns_cli/s1graph/common/vcs/vcs_schema.py +20 -0
  625. s1_cns_cli/s1graph/common/version_manager.py +12 -0
  626. s1_cns_cli/s1graph/contributor_metrics.py +65 -0
  627. s1_cns_cli/s1graph/dockerfile/__init__.py +1 -0
  628. s1_cns_cli/s1graph/dockerfile/base_dockerfile_check.py +44 -0
  629. s1_cns_cli/s1graph/dockerfile/base_registry.py +101 -0
  630. s1_cns_cli/s1graph/dockerfile/checks/AddExists.py +27 -0
  631. s1_cns_cli/s1graph/dockerfile/checks/AliasIsUnique.py +36 -0
  632. s1_cns_cli/s1graph/dockerfile/checks/ExposePort22.py +28 -0
  633. s1_cns_cli/s1graph/dockerfile/checks/HealthcheckExists.py +27 -0
  634. s1_cns_cli/s1graph/dockerfile/checks/MaintainerExists.py +24 -0
  635. s1_cns_cli/s1graph/dockerfile/checks/ReferenceLatestTag.py +40 -0
  636. s1_cns_cli/s1graph/dockerfile/checks/RootUser.py +28 -0
  637. s1_cns_cli/s1graph/dockerfile/checks/RunUsingAPT.py +31 -0
  638. s1_cns_cli/s1graph/dockerfile/checks/UpdateNotAlone.py +57 -0
  639. s1_cns_cli/s1graph/dockerfile/checks/UserExists.py +27 -0
  640. s1_cns_cli/s1graph/dockerfile/checks/WorkdirIsAbsolute.py +39 -0
  641. s1_cns_cli/s1graph/dockerfile/checks/__init__.py +5 -0
  642. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/EnvGitSslNoVerify.yaml +19 -0
  643. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/EnvNodeTlsRejectUnauthorized.yaml +19 -0
  644. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/EnvNpmConfigStrictSsl.yaml +19 -0
  645. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/EnvPipTrustedHost.yaml +19 -0
  646. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/EnvPythonHttpsVerify.yaml +19 -0
  647. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/RunApkAllowUntrusted.yaml +11 -0
  648. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/RunAptGetAllowUnauthenticated.yaml +11 -0
  649. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/RunAptGetForceYes.yaml +11 -0
  650. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/RunNpmConfigSetStrictSsl.yaml +11 -0
  651. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/RunPipTrustedHost.yaml +11 -0
  652. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/RunRpmNoSignature.yaml +11 -0
  653. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/RunUnsafeCurl.yaml +11 -0
  654. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/RunUnsafeWget.yaml +11 -0
  655. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/RunUsingSudo.yaml +18 -0
  656. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/RunYumConfigManagerSslVerify.yaml +11 -0
  657. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/RunYumNoGpgCheck.yaml +11 -0
  658. s1_cns_cli/s1graph/dockerfile/checks/graph_checks/__init__.py +0 -0
  659. s1_cns_cli/s1graph/dockerfile/graph_builder/__init__.py +0 -0
  660. s1_cns_cli/s1graph/dockerfile/graph_builder/graph_components/__init__.py +0 -0
  661. s1_cns_cli/s1graph/dockerfile/graph_builder/graph_components/resource_types.py +26 -0
  662. s1_cns_cli/s1graph/dockerfile/graph_builder/local_graph.py +115 -0
  663. s1_cns_cli/s1graph/dockerfile/graph_manager.py +45 -0
  664. s1_cns_cli/s1graph/dockerfile/image_referencer/__init__.py +0 -0
  665. s1_cns_cli/s1graph/dockerfile/image_referencer/manager.py +23 -0
  666. s1_cns_cli/s1graph/dockerfile/image_referencer/provider.py +56 -0
  667. s1_cns_cli/s1graph/dockerfile/parser.py +41 -0
  668. s1_cns_cli/s1graph/dockerfile/registry.py +3 -0
  669. s1_cns_cli/s1graph/dockerfile/runner.py +291 -0
  670. s1_cns_cli/s1graph/dockerfile/utils.py +78 -0
  671. s1_cns_cli/s1graph/example_runner/__init__.py +2 -0
  672. s1_cns_cli/s1graph/example_runner/checks/__init__.py +1 -0
  673. s1_cns_cli/s1graph/example_runner/checks/base_example_runner_check.py +29 -0
  674. s1_cns_cli/s1graph/example_runner/checks/base_example_runner_job_check.py +24 -0
  675. s1_cns_cli/s1graph/example_runner/checks/job/ExampleCheckTrueFalse.py +68 -0
  676. s1_cns_cli/s1graph/example_runner/checks/job/__init__.py +4 -0
  677. s1_cns_cli/s1graph/example_runner/checks/job_registry.py +8 -0
  678. s1_cns_cli/s1graph/example_runner/common/__init__.py +0 -0
  679. s1_cns_cli/s1graph/example_runner/runner.py +61 -0
  680. s1_cns_cli/s1graph/github/__init__.py +1 -0
  681. s1_cns_cli/s1graph/github/base_github_branch_security.py +48 -0
  682. s1_cns_cli/s1graph/github/base_github_configuration_check.py +42 -0
  683. s1_cns_cli/s1graph/github/base_github_negative_branch_security.py +62 -0
  684. s1_cns_cli/s1graph/github/base_github_org_check.py +45 -0
  685. s1_cns_cli/s1graph/github/base_github_org_security.py +40 -0
  686. s1_cns_cli/s1graph/github/checks/2fa.py +19 -0
  687. s1_cns_cli/s1graph/github/checks/__init__.py +4 -0
  688. s1_cns_cli/s1graph/github/checks/disallow_branch_deletions.py +22 -0
  689. s1_cns_cli/s1graph/github/checks/disallow_force_pushes.py +22 -0
  690. s1_cns_cli/s1graph/github/checks/disallow_inactive_branch_60days.py +46 -0
  691. s1_cns_cli/s1graph/github/checks/dismiss_stale_reviews.py +16 -0
  692. s1_cns_cli/s1graph/github/checks/enforce_branch_protection_admins.py +19 -0
  693. s1_cns_cli/s1graph/github/checks/internal_repository_creation_is_limited.py +22 -0
  694. s1_cns_cli/s1graph/github/checks/ipallowlist.py +22 -0
  695. s1_cns_cli/s1graph/github/checks/minimum_admins_in_org.py +38 -0
  696. s1_cns_cli/s1graph/github/checks/private_repository_creation_is_limited.py +22 -0
  697. s1_cns_cli/s1graph/github/checks/public_repository_creation_is_limited.py +22 -0
  698. s1_cns_cli/s1graph/github/checks/repository_collaborators.py +42 -0
  699. s1_cns_cli/s1graph/github/checks/require_2approvals.py +20 -0
  700. s1_cns_cli/s1graph/github/checks/require_code_owner_reviews.py +16 -0
  701. s1_cns_cli/s1graph/github/checks/require_conversation_resolution.py +16 -0
  702. s1_cns_cli/s1graph/github/checks/require_linear_history.py +19 -0
  703. s1_cns_cli/s1graph/github/checks/require_push_restrictions.py +16 -0
  704. s1_cns_cli/s1graph/github/checks/require_signatures.py +19 -0
  705. s1_cns_cli/s1graph/github/checks/require_status_checks_pr.py +16 -0
  706. s1_cns_cli/s1graph/github/checks/require_strict_base_permissions_repository.py +23 -0
  707. s1_cns_cli/s1graph/github/checks/require_updated_branch_pr.py +22 -0
  708. s1_cns_cli/s1graph/github/checks/require_verified_organization.py +22 -0
  709. s1_cns_cli/s1graph/github/checks/restrict_pr_review_dismissal.py +22 -0
  710. s1_cns_cli/s1graph/github/checks/sso.py +39 -0
  711. s1_cns_cli/s1graph/github/checks/webhooks_https_orgs.py +45 -0
  712. s1_cns_cli/s1graph/github/checks/webhooks_https_repos.py +44 -0
  713. s1_cns_cli/s1graph/github/dal.py +233 -0
  714. s1_cns_cli/s1graph/github/registry.py +4 -0
  715. s1_cns_cli/s1graph/github/runner.py +75 -0
  716. s1_cns_cli/s1graph/github/schemas/__init__.py +0 -0
  717. s1_cns_cli/s1graph/github/schemas/branch.py +2685 -0
  718. s1_cns_cli/s1graph/github/schemas/branch_protection.py +99 -0
  719. s1_cns_cli/s1graph/github/schemas/no_branch_protection.py +25 -0
  720. s1_cns_cli/s1graph/github/schemas/org_members.py +173 -0
  721. s1_cns_cli/s1graph/github/schemas/org_security.py +73 -0
  722. s1_cns_cli/s1graph/github/schemas/org_webhooks.py +127 -0
  723. s1_cns_cli/s1graph/github/schemas/organization.py +439 -0
  724. s1_cns_cli/s1graph/github/schemas/repository_collaborators.py +199 -0
  725. s1_cns_cli/s1graph/github/schemas/repository_webhooks.py +217 -0
  726. s1_cns_cli/s1graph/github_actions/__init__.py +1 -0
  727. s1_cns_cli/s1graph/github_actions/checks/__init__.py +1 -0
  728. s1_cns_cli/s1graph/github_actions/checks/base_github_action_check.py +38 -0
  729. s1_cns_cli/s1graph/github_actions/checks/graph_checks/ReadOnlyTopLevelPermissions.yaml +11 -0
  730. s1_cns_cli/s1graph/github_actions/checks/graph_checks/__init__.py +0 -0
  731. s1_cns_cli/s1graph/github_actions/checks/job/AllowUnsecureCommandsOnJob.py +36 -0
  732. s1_cns_cli/s1graph/github_actions/checks/job/CosignArtifacts.py +55 -0
  733. s1_cns_cli/s1graph/github_actions/checks/job/CosignSBOM.py +55 -0
  734. s1_cns_cli/s1graph/github_actions/checks/job/EmptyWorkflowDispatch.py +43 -0
  735. s1_cns_cli/s1graph/github_actions/checks/job/ReverseShellNetcat.py +33 -0
  736. s1_cns_cli/s1graph/github_actions/checks/job/ShellInjection.py +37 -0
  737. s1_cns_cli/s1graph/github_actions/checks/job/SuspectCurlInScript.py +34 -0
  738. s1_cns_cli/s1graph/github_actions/checks/job/__init__.py +4 -0
  739. s1_cns_cli/s1graph/github_actions/checks/registry.py +4 -0
  740. s1_cns_cli/s1graph/github_actions/common/__init__.py +0 -0
  741. s1_cns_cli/s1graph/github_actions/common/artifact_build.py +10 -0
  742. s1_cns_cli/s1graph/github_actions/common/build_actions.py +5 -0
  743. s1_cns_cli/s1graph/github_actions/common/shell_injection_list.py +20 -0
  744. s1_cns_cli/s1graph/github_actions/graph_builder/__init__.py +0 -0
  745. s1_cns_cli/s1graph/github_actions/graph_builder/graph_components/__init__.py +0 -0
  746. s1_cns_cli/s1graph/github_actions/graph_builder/graph_components/resource_types.py +12 -0
  747. s1_cns_cli/s1graph/github_actions/graph_builder/local_graph.py +209 -0
  748. s1_cns_cli/s1graph/github_actions/image_referencer/__init__.py +0 -0
  749. s1_cns_cli/s1graph/github_actions/image_referencer/manager.py +15 -0
  750. s1_cns_cli/s1graph/github_actions/image_referencer/provider.py +66 -0
  751. s1_cns_cli/s1graph/github_actions/runner.py +165 -0
  752. s1_cns_cli/s1graph/github_actions/schemas.py +3139 -0
  753. s1_cns_cli/s1graph/github_actions/utils.py +154 -0
  754. s1_cns_cli/s1graph/gitlab/__init__.py +1 -0
  755. s1_cns_cli/s1graph/gitlab/base_gitlab_configuration_check.py +23 -0
  756. s1_cns_cli/s1graph/gitlab/checks/__init__.py +4 -0
  757. s1_cns_cli/s1graph/gitlab/checks/merge_requests_approvals.py +32 -0
  758. s1_cns_cli/s1graph/gitlab/checks/two_factor_authentication.py +33 -0
  759. s1_cns_cli/s1graph/gitlab/dal.py +69 -0
  760. s1_cns_cli/s1graph/gitlab/registry.py +4 -0
  761. s1_cns_cli/s1graph/gitlab/runner.py +54 -0
  762. s1_cns_cli/s1graph/gitlab/schemas/__init__.py +0 -0
  763. s1_cns_cli/s1graph/gitlab/schemas/groups.py +130 -0
  764. s1_cns_cli/s1graph/gitlab/schemas/project_approvals.py +41 -0
  765. s1_cns_cli/s1graph/gitlab_ci/__init__.py +1 -0
  766. s1_cns_cli/s1graph/gitlab_ci/checks/__init__.py +1 -0
  767. s1_cns_cli/s1graph/gitlab_ci/checks/base_gitlab_ci_check.py +35 -0
  768. s1_cns_cli/s1graph/gitlab_ci/checks/job/AvoidDoublePipelines.py +36 -0
  769. s1_cns_cli/s1graph/gitlab_ci/checks/job/DetectImagesUsage.py +25 -0
  770. s1_cns_cli/s1graph/gitlab_ci/checks/job/SuspectCurlInScript.py +29 -0
  771. s1_cns_cli/s1graph/gitlab_ci/checks/job/__init__.py +4 -0
  772. s1_cns_cli/s1graph/gitlab_ci/checks/registry.py +4 -0
  773. s1_cns_cli/s1graph/gitlab_ci/common/__init__.py +0 -0
  774. s1_cns_cli/s1graph/gitlab_ci/common/reserved.py +8 -0
  775. s1_cns_cli/s1graph/gitlab_ci/common/resource_id_utils.py +67 -0
  776. s1_cns_cli/s1graph/gitlab_ci/image_referencer/__init__.py +0 -0
  777. s1_cns_cli/s1graph/gitlab_ci/image_referencer/manager.py +13 -0
  778. s1_cns_cli/s1graph/gitlab_ci/image_referencer/provider.py +60 -0
  779. s1_cns_cli/s1graph/gitlab_ci/runner.py +104 -0
  780. s1_cns_cli/s1graph/helm/__init__.py +0 -0
  781. s1_cns_cli/s1graph/helm/base_registry.py +101 -0
  782. s1_cns_cli/s1graph/helm/image_referencer/__init__.py +0 -0
  783. s1_cns_cli/s1graph/helm/image_referencer/base_provider.py +25 -0
  784. s1_cns_cli/s1graph/helm/image_referencer/manager.py +25 -0
  785. s1_cns_cli/s1graph/helm/image_referencer/provider/__init__.py +0 -0
  786. s1_cns_cli/s1graph/helm/image_referencer/provider/helm.py +19 -0
  787. s1_cns_cli/s1graph/helm/registry.py +3 -0
  788. s1_cns_cli/s1graph/helm/runner.py +459 -0
  789. s1_cns_cli/s1graph/json_doc/__init__.py +0 -0
  790. s1_cns_cli/s1graph/json_doc/base_json_check.py +19 -0
  791. s1_cns_cli/s1graph/json_doc/base_registry.py +201 -0
  792. s1_cns_cli/s1graph/json_doc/enums.py +8 -0
  793. s1_cns_cli/s1graph/json_doc/registry.py +4 -0
  794. s1_cns_cli/s1graph/json_doc/runner.py +54 -0
  795. s1_cns_cli/s1graph/kubernetes/__init__.py +1 -0
  796. s1_cns_cli/s1graph/kubernetes/checks/__init__.py +0 -0
  797. s1_cns_cli/s1graph/kubernetes/checks/graph_checks/ImpersonatePermissions.yaml +60 -0
  798. s1_cns_cli/s1graph/kubernetes/checks/graph_checks/ModifyServicesStatus.yaml +60 -0
  799. s1_cns_cli/s1graph/kubernetes/checks/graph_checks/NoCreateNodesProxyOrPodsExec.yaml +59 -0
  800. s1_cns_cli/s1graph/kubernetes/checks/graph_checks/ReadAllSecrets.yaml +60 -0
  801. s1_cns_cli/s1graph/kubernetes/checks/graph_checks/RequireAllPodsToHaveNetworkPolicy.yaml +18 -0
  802. s1_cns_cli/s1graph/kubernetes/checks/graph_checks/RoleBindingPE.yaml +59 -0
  803. s1_cns_cli/s1graph/kubernetes/checks/graph_checks/__init__.py +0 -0
  804. s1_cns_cli/s1graph/kubernetes/checks/resource/__init__.py +1 -0
  805. s1_cns_cli/s1graph/kubernetes/checks/resource/base_container_check.py +146 -0
  806. s1_cns_cli/s1graph/kubernetes/checks/resource/base_rbac_check.py +89 -0
  807. s1_cns_cli/s1graph/kubernetes/checks/resource/base_registry.py +94 -0
  808. s1_cns_cli/s1graph/kubernetes/checks/resource/base_root_container_check.py +70 -0
  809. s1_cns_cli/s1graph/kubernetes/checks/resource/base_spec_check.py +55 -0
  810. s1_cns_cli/s1graph/kubernetes/checks/resource/base_spec_omitted_or_value_check.py +34 -0
  811. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/AllowPrivilegeEscalation.py +29 -0
  812. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/AllowPrivilegeEscalationPSP.py +37 -0
  813. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/AllowedCapabilities.py +26 -0
  814. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/AllowedCapabilitiesPSP.py +28 -0
  815. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/AllowedCapabilitiesSysAdmin.py +26 -0
  816. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerAdmissionControlAlwaysAdmit.py +29 -0
  817. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerAdmissionControlEventRateLimit.py +28 -0
  818. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerAlwaysPullImagesPlugin.py +29 -0
  819. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerAnonymousAuth.py +23 -0
  820. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerAuditLog.py +26 -0
  821. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerAuditLogMaxAge.py +28 -0
  822. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerAuditLogMaxBackup.py +28 -0
  823. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerAuditLogMaxSize.py +28 -0
  824. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerAuthorizationModeNode.py +28 -0
  825. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerAuthorizationModeNotAlwaysAllow.py +27 -0
  826. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerAuthorizationModeRBAC.py +28 -0
  827. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerBasicAuthFile.py +24 -0
  828. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerEncryptionProviders.py +25 -0
  829. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerEtcdCaFile.py +25 -0
  830. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerEtcdCertAndKey.py +29 -0
  831. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerInsecureBindAddress.py +24 -0
  832. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerInsecurePort.py +23 -0
  833. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerKubeletClientCertAndKey.py +29 -0
  834. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerKubeletHttps.py +23 -0
  835. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerNamespaceLifecyclePlugin.py +28 -0
  836. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerNodeRestrictionPlugin.py +28 -0
  837. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerPodSecurityPolicyPlugin.py +28 -0
  838. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerProfiling.py +23 -0
  839. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerRequestTimeout.py +34 -0
  840. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerSecurePort.py +24 -0
  841. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerSecurityContextDenyPlugin.py +29 -0
  842. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerServiceAccountKeyFile.py +32 -0
  843. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerServiceAccountLookup.py +26 -0
  844. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerServiceAccountPlugin.py +28 -0
  845. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerStrongCryptographicCiphers.py +39 -0
  846. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerTlsCertAndKey.py +31 -0
  847. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerTokenAuthFile.py +23 -0
  848. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ApiServerkubeletCertificateAuthority.py +23 -0
  849. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/CPULimits.py +26 -0
  850. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/CPURequests.py +28 -0
  851. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ContainerSecurityContext.py +23 -0
  852. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ControllerManagerBindAddress.py +27 -0
  853. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/DefaultNamespace.py +50 -0
  854. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/DefaultServiceAccount.py +32 -0
  855. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/DefaultServiceAccountBinding.py +29 -0
  856. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/DockerSocketVolume.py +65 -0
  857. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/DropCapabilities.py +28 -0
  858. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/DropCapabilitiesPSP.py +32 -0
  859. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/EtcdAutoTls.py +24 -0
  860. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/EtcdCertAndKey.py +32 -0
  861. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/EtcdClientCertAuth.py +24 -0
  862. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/EtcdPeerFiles.py +26 -0
  863. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/HostPort.py +31 -0
  864. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ImageDigest.py +34 -0
  865. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ImagePullPolicyAlways.py +58 -0
  866. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ImageTagFixed.py +44 -0
  867. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubeControllerManagerBlockProfiles.py +26 -0
  868. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubeControllerManagerRootCAFile.py +28 -0
  869. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubeControllerManagerServiceAccountCredentials.py +26 -0
  870. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubeControllerManagerServiceAccountPrivateKeyFile.py +28 -0
  871. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubeControllerManagerTerminatedPods.py +30 -0
  872. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubeletAnonymousAuth.py +24 -0
  873. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubeletAuthorizationModeNotAlwaysAllow.py +28 -0
  874. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubeletClientCa.py +27 -0
  875. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubeletCryptographicCiphers.py +40 -0
  876. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubeletHostnameOverride.py +24 -0
  877. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubeletKeyFilesSetAppropriate.py +30 -0
  878. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubeletMakeIptablesUtilChains.py +24 -0
  879. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubeletProtectKernelDefaults.py +24 -0
  880. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubeletReadOnlyPort.py +27 -0
  881. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubeletStreamingConnectionIdleTimeout.py +24 -0
  882. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubernetesDashboard.py +34 -0
  883. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubletEventCapture.py +28 -0
  884. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/KubletRotateCertificates.py +24 -0
  885. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/LivenessProbe.py +29 -0
  886. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/MemoryLimits.py +26 -0
  887. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/MemoryRequests.py +28 -0
  888. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/MinimizeCapabilities.py +28 -0
  889. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/MinimizeCapabilitiesPSP.py +24 -0
  890. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/NginxIngressCVE202125742Alias.py +29 -0
  891. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/NginxIngressCVE202125742AllSnippets.py +29 -0
  892. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/NginxIngressCVE202125742Lua.py +29 -0
  893. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/PeerClientCertAuthTrue.py +25 -0
  894. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/PodSecurityContext.py +58 -0
  895. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/PrivilegedContainers.py +24 -0
  896. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/PrivilegedContainersPSP.py +21 -0
  897. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/RbacApproveCertificateSigningRequests.py +26 -0
  898. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/RbacBindRoleBindings.py +19 -0
  899. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/RbacControlWebhooks.py +20 -0
  900. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/RbacEscalateRoles.py +19 -0
  901. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ReadOnlyFilesystem.py +22 -0
  902. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ReadinessProbe.py +29 -0
  903. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/RootContainers.py +71 -0
  904. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/RootContainersHighUID.py +71 -0
  905. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/RootContainersPSP.py +33 -0
  906. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/RotateKubeletServerCertificate.py +29 -0
  907. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/SchedulerBindAddress.py +27 -0
  908. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/SchedulerProfiling.py +23 -0
  909. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/Seccomp.py +65 -0
  910. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/SeccompPSP.py +27 -0
  911. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/Secrets.py +33 -0
  912. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ServiceAccountTokens.py +61 -0
  913. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ShareHostIPC.py +61 -0
  914. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ShareHostIPCPSP.py +21 -0
  915. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ShareHostPID.py +61 -0
  916. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/ShareHostPIDPSP.py +21 -0
  917. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/SharedHostNetworkNamespace.py +61 -0
  918. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/SharedHostNetworkNamespacePSP.py +21 -0
  919. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/Tiller.py +35 -0
  920. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/TillerDeploymentListener.py +30 -0
  921. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/TillerService.py +40 -0
  922. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/WildcardRoles.py +33 -0
  923. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/__init__.py +5 -0
  924. s1_cns_cli/s1graph/kubernetes/checks/resource/k8s/k8s_check_utils.py +22 -0
  925. s1_cns_cli/s1graph/kubernetes/checks/resource/registry.py +4 -0
  926. s1_cns_cli/s1graph/kubernetes/graph_builder/__init__.py +0 -0
  927. s1_cns_cli/s1graph/kubernetes/graph_builder/graph_components/ResourceKeywordIdentifier.py +31 -0
  928. s1_cns_cli/s1graph/kubernetes/graph_builder/graph_components/__init__.py +0 -0
  929. s1_cns_cli/s1graph/kubernetes/graph_builder/graph_components/blocks.py +34 -0
  930. s1_cns_cli/s1graph/kubernetes/graph_builder/graph_components/edge_builders/K8SEdgeBuilder.py +28 -0
  931. s1_cns_cli/s1graph/kubernetes/graph_builder/graph_components/edge_builders/KeywordEdgeBuilder.py +74 -0
  932. s1_cns_cli/s1graph/kubernetes/graph_builder/graph_components/edge_builders/LabelSelectorEdgeBuilder.py +53 -0
  933. s1_cns_cli/s1graph/kubernetes/graph_builder/graph_components/edge_builders/NetworkPolicyEdgeBuilder.py +61 -0
  934. s1_cns_cli/s1graph/kubernetes/graph_builder/graph_components/edge_builders/__init__.py +0 -0
  935. s1_cns_cli/s1graph/kubernetes/graph_builder/local_graph.py +176 -0
  936. s1_cns_cli/s1graph/kubernetes/graph_manager.py +39 -0
  937. s1_cns_cli/s1graph/kubernetes/image_referencer/__init__.py +0 -0
  938. s1_cns_cli/s1graph/kubernetes/image_referencer/base_provider.py +40 -0
  939. s1_cns_cli/s1graph/kubernetes/image_referencer/manager.py +19 -0
  940. s1_cns_cli/s1graph/kubernetes/image_referencer/provider/__init__.py +0 -0
  941. s1_cns_cli/s1graph/kubernetes/image_referencer/provider/k8s.py +105 -0
  942. s1_cns_cli/s1graph/kubernetes/kubernetes_graph_flags.py +19 -0
  943. s1_cns_cli/s1graph/kubernetes/kubernetes_utils.py +257 -0
  944. s1_cns_cli/s1graph/kubernetes/parser/__init__.py +0 -0
  945. s1_cns_cli/s1graph/kubernetes/parser/k8_json.py +66 -0
  946. s1_cns_cli/s1graph/kubernetes/parser/k8_yaml.py +65 -0
  947. s1_cns_cli/s1graph/kubernetes/parser/parser.py +52 -0
  948. s1_cns_cli/s1graph/kubernetes/runner.py +351 -0
  949. s1_cns_cli/s1graph/kubernetes/test/share-process-namespace.yaml +27 -0
  950. s1_cns_cli/s1graph/kustomize/__init__.py +0 -0
  951. s1_cns_cli/s1graph/kustomize/image_referencer/__init__.py +0 -0
  952. s1_cns_cli/s1graph/kustomize/image_referencer/base_provider.py +26 -0
  953. s1_cns_cli/s1graph/kustomize/image_referencer/manager.py +23 -0
  954. s1_cns_cli/s1graph/kustomize/image_referencer/provider/__init__.py +0 -0
  955. s1_cns_cli/s1graph/kustomize/image_referencer/provider/kustomize.py +18 -0
  956. s1_cns_cli/s1graph/kustomize/runner.py +642 -0
  957. s1_cns_cli/s1graph/kustomize/utils.py +25 -0
  958. s1_cns_cli/s1graph/logging_init.py +22 -0
  959. s1_cns_cli/s1graph/main.py +653 -0
  960. s1_cns_cli/s1graph/openapi/__init__.py +1 -0
  961. s1_cns_cli/s1graph/openapi/checks/__init__.py +0 -0
  962. s1_cns_cli/s1graph/openapi/checks/base_openapi_check.py +27 -0
  963. s1_cns_cli/s1graph/openapi/checks/base_registry.py +10 -0
  964. s1_cns_cli/s1graph/openapi/checks/registry.py +3 -0
  965. s1_cns_cli/s1graph/openapi/checks/resource/__init__.py +3 -0
  966. s1_cns_cli/s1graph/openapi/checks/resource/generic/GlobalSecurityFieldIsEmpty.py +26 -0
  967. s1_cns_cli/s1graph/openapi/checks/resource/generic/SecurityOperations.py +43 -0
  968. s1_cns_cli/s1graph/openapi/checks/resource/generic/__init__.py +5 -0
  969. s1_cns_cli/s1graph/openapi/checks/resource/v2/BaseOpenapiCheckV2.py +29 -0
  970. s1_cns_cli/s1graph/openapi/checks/resource/v2/GlobalSchemeDefineHTTP.py +29 -0
  971. s1_cns_cli/s1graph/openapi/checks/resource/v2/GlobalSecurityScopeUndefined.py +45 -0
  972. s1_cns_cli/s1graph/openapi/checks/resource/v2/Oauth2OperationObjectPasswordFlow.py +55 -0
  973. s1_cns_cli/s1graph/openapi/checks/resource/v2/Oauth2SecurityDefinitionImplicitFlow.py +40 -0
  974. s1_cns_cli/s1graph/openapi/checks/resource/v2/Oauth2SecurityDefinitionPasswordFlow.py +40 -0
  975. s1_cns_cli/s1graph/openapi/checks/resource/v2/Oauth2SecurityPasswordFlow.py +45 -0
  976. s1_cns_cli/s1graph/openapi/checks/resource/v2/Oauth2SecurityRequirement.py +47 -0
  977. s1_cns_cli/s1graph/openapi/checks/resource/v2/OperationObjectBasicAuth.py +52 -0
  978. s1_cns_cli/s1graph/openapi/checks/resource/v2/OperationObjectConsumesUndefined.py +43 -0
  979. s1_cns_cli/s1graph/openapi/checks/resource/v2/OperationObjectImplicitFlow.py +54 -0
  980. s1_cns_cli/s1graph/openapi/checks/resource/v2/OperationObjectProducesUndefined.py +45 -0
  981. s1_cns_cli/s1graph/openapi/checks/resource/v2/OperationObjectSecurityScopeUndefined.py +65 -0
  982. s1_cns_cli/s1graph/openapi/checks/resource/v2/PathSchemeDefineHTTP.py +42 -0
  983. s1_cns_cli/s1graph/openapi/checks/resource/v2/SecurityDefinitionBasicAuth.py +40 -0
  984. s1_cns_cli/s1graph/openapi/checks/resource/v2/SecurityDefinitions.py +30 -0
  985. s1_cns_cli/s1graph/openapi/checks/resource/v2/SecurityRequirement.py +69 -0
  986. s1_cns_cli/s1graph/openapi/checks/resource/v2/__init__.py +5 -0
  987. s1_cns_cli/s1graph/openapi/checks/resource/v3/BaseOpenapiCheckV3.py +29 -0
  988. s1_cns_cli/s1graph/openapi/checks/resource/v3/CleartextOverUnencryptedChannel.py +48 -0
  989. s1_cns_cli/s1graph/openapi/checks/resource/v3/__init__.py +5 -0
  990. s1_cns_cli/s1graph/openapi/runner.py +108 -0
  991. s1_cns_cli/s1graph/policies_3d/__init__.py +0 -0
  992. s1_cns_cli/s1graph/policies_3d/checks_infra/__init__.py +0 -0
  993. s1_cns_cli/s1graph/policies_3d/checks_infra/base_check.py +26 -0
  994. s1_cns_cli/s1graph/policies_3d/checks_infra/base_parser.py +41 -0
  995. s1_cns_cli/s1graph/policies_3d/checks_parser.py +145 -0
  996. s1_cns_cli/s1graph/policies_3d/output.py +291 -0
  997. s1_cns_cli/s1graph/policies_3d/record.py +47 -0
  998. s1_cns_cli/s1graph/policies_3d/runner.py +318 -0
  999. s1_cns_cli/s1graph/policies_3d/syntax/__init__.py +0 -0
  1000. s1_cns_cli/s1graph/policies_3d/syntax/cves_syntax.py +46 -0
  1001. s1_cns_cli/s1graph/policies_3d/syntax/iac_syntax.py +35 -0
  1002. s1_cns_cli/s1graph/policies_3d/syntax/secrets_syntax.py +14 -0
  1003. s1_cns_cli/s1graph/policies_3d/syntax/syntax.py +56 -0
  1004. s1_cns_cli/s1graph/py.typed +0 -0
  1005. s1_cns_cli/s1graph/runner_filter.py +365 -0
  1006. s1_cns_cli/s1graph/sca_image/__init__.py +0 -0
  1007. s1_cns_cli/s1graph/sca_image/models.py +18 -0
  1008. s1_cns_cli/s1graph/sca_image/runner.py +345 -0
  1009. s1_cns_cli/s1graph/sca_package/__init__.py +0 -0
  1010. s1_cns_cli/s1graph/sca_package/output.py +360 -0
  1011. s1_cns_cli/s1graph/sca_package/runner.py +172 -0
  1012. s1_cns_cli/s1graph/sca_package/scanner.py +193 -0
  1013. s1_cns_cli/s1graph/sca_package_2/__init__.py +0 -0
  1014. s1_cns_cli/s1graph/sca_package_2/output.py +428 -0
  1015. s1_cns_cli/s1graph/sca_package_2/runner.py +183 -0
  1016. s1_cns_cli/s1graph/sca_package_2/scanner.py +104 -0
  1017. s1_cns_cli/s1graph/sca_package_2/suppression.py +124 -0
  1018. s1_cns_cli/s1graph/secrets/__init__.py +0 -0
  1019. s1_cns_cli/s1graph/secrets/consts.py +31 -0
  1020. s1_cns_cli/s1graph/secrets/coordinator.py +28 -0
  1021. s1_cns_cli/s1graph/secrets/git_history_store.py +177 -0
  1022. s1_cns_cli/s1graph/secrets/git_types.py +82 -0
  1023. s1_cns_cli/s1graph/secrets/parsers/__init__.py +0 -0
  1024. s1_cns_cli/s1graph/secrets/parsers/json/__init__.py +0 -0
  1025. s1_cns_cli/s1graph/secrets/parsers/json/multiline_parser.py +60 -0
  1026. s1_cns_cli/s1graph/secrets/parsers/multiline_parser.py +62 -0
  1027. s1_cns_cli/s1graph/secrets/parsers/single_line_parser.py +36 -0
  1028. s1_cns_cli/s1graph/secrets/parsers/terraform/__init__.py +0 -0
  1029. s1_cns_cli/s1graph/secrets/parsers/terraform/multiline_parser.py +37 -0
  1030. s1_cns_cli/s1graph/secrets/parsers/terraform/single_line_parser.py +28 -0
  1031. s1_cns_cli/s1graph/secrets/parsers/yaml/__init__.py +0 -0
  1032. s1_cns_cli/s1graph/secrets/parsers/yaml/multiline_parser.py +64 -0
  1033. s1_cns_cli/s1graph/secrets/plugins/__init__.py +0 -0
  1034. s1_cns_cli/s1graph/secrets/plugins/custom_regex_detector.py +160 -0
  1035. s1_cns_cli/s1graph/secrets/plugins/detector_utils.py +279 -0
  1036. s1_cns_cli/s1graph/secrets/plugins/entropy_keyword_combinator.py +234 -0
  1037. s1_cns_cli/s1graph/secrets/plugins/load_detectors.py +120 -0
  1038. s1_cns_cli/s1graph/secrets/runner.py +518 -0
  1039. s1_cns_cli/s1graph/secrets/scan_git_history.py +247 -0
  1040. s1_cns_cli/s1graph/secrets/utils.py +39 -0
  1041. s1_cns_cli/s1graph/serverless/__init__.py +1 -0
  1042. s1_cns_cli/s1graph/serverless/base_registry.py +36 -0
  1043. s1_cns_cli/s1graph/serverless/checks/__init__.py +7 -0
  1044. s1_cns_cli/s1graph/serverless/checks/base_function_check.py +4 -0
  1045. s1_cns_cli/s1graph/serverless/checks/complete/__init__.py +0 -0
  1046. s1_cns_cli/s1graph/serverless/checks/complete/base_complete_check.py +18 -0
  1047. s1_cns_cli/s1graph/serverless/checks/complete/registry.py +3 -0
  1048. s1_cns_cli/s1graph/serverless/checks/custom/__init__.py +0 -0
  1049. s1_cns_cli/s1graph/serverless/checks/custom/base_custom_check.py +18 -0
  1050. s1_cns_cli/s1graph/serverless/checks/custom/registry.py +3 -0
  1051. s1_cns_cli/s1graph/serverless/checks/function/__init__.py +1 -0
  1052. s1_cns_cli/s1graph/serverless/checks/function/aws/AWSCredentials.py +32 -0
  1053. s1_cns_cli/s1graph/serverless/checks/function/aws/AdminPolicyDocument.py +30 -0
  1054. s1_cns_cli/s1graph/serverless/checks/function/aws/StarActionPolicyDocument.py +33 -0
  1055. s1_cns_cli/s1graph/serverless/checks/function/aws/__init__.py +5 -0
  1056. s1_cns_cli/s1graph/serverless/checks/function/base_function_check.py +29 -0
  1057. s1_cns_cli/s1graph/serverless/checks/function/registry.py +3 -0
  1058. s1_cns_cli/s1graph/serverless/checks/layer/__init__.py +0 -0
  1059. s1_cns_cli/s1graph/serverless/checks/layer/base_layer_check.py +18 -0
  1060. s1_cns_cli/s1graph/serverless/checks/layer/registry.py +3 -0
  1061. s1_cns_cli/s1graph/serverless/checks/package/__init__.py +0 -0
  1062. s1_cns_cli/s1graph/serverless/checks/package/base_package_check.py +18 -0
  1063. s1_cns_cli/s1graph/serverless/checks/package/registry.py +3 -0
  1064. s1_cns_cli/s1graph/serverless/checks/plugin/__init__.py +0 -0
  1065. s1_cns_cli/s1graph/serverless/checks/plugin/base_plugin_check.py +19 -0
  1066. s1_cns_cli/s1graph/serverless/checks/plugin/registry.py +3 -0
  1067. s1_cns_cli/s1graph/serverless/checks/provider/__init__.py +0 -0
  1068. s1_cns_cli/s1graph/serverless/checks/provider/base_provider_check.py +18 -0
  1069. s1_cns_cli/s1graph/serverless/checks/provider/registry.py +3 -0
  1070. s1_cns_cli/s1graph/serverless/checks/service/__init__.py +0 -0
  1071. s1_cns_cli/s1graph/serverless/checks/service/base_service_check.py +18 -0
  1072. s1_cns_cli/s1graph/serverless/checks/service/registry.py +3 -0
  1073. s1_cns_cli/s1graph/serverless/parsers/__init__.py +0 -0
  1074. s1_cns_cli/s1graph/serverless/parsers/context_parser.py +75 -0
  1075. s1_cns_cli/s1graph/serverless/parsers/parser.py +343 -0
  1076. s1_cns_cli/s1graph/serverless/registry.py +4 -0
  1077. s1_cns_cli/s1graph/serverless/runner.py +299 -0
  1078. s1_cns_cli/s1graph/terraform/__init__.py +3 -0
  1079. s1_cns_cli/s1graph/terraform/checks/__init__.py +0 -0
  1080. s1_cns_cli/s1graph/terraform/checks/data/__init__.py +3 -0
  1081. s1_cns_cli/s1graph/terraform/checks/data/aws/AdminPolicyDocument.py +41 -0
  1082. s1_cns_cli/s1graph/terraform/checks/data/aws/IAMCredentialsExposure.py +23 -0
  1083. s1_cns_cli/s1graph/terraform/checks/data/aws/IAMDataExfiltration.py +21 -0
  1084. s1_cns_cli/s1graph/terraform/checks/data/aws/IAMManagedAdminPolicy.py +40 -0
  1085. s1_cns_cli/s1graph/terraform/checks/data/aws/IAMPermissionsManagement.py +21 -0
  1086. s1_cns_cli/s1graph/terraform/checks/data/aws/IAMPrivilegeEscalation.py +21 -0
  1087. s1_cns_cli/s1graph/terraform/checks/data/aws/IAMPublicActionsPolicy.py +34 -0
  1088. s1_cns_cli/s1graph/terraform/checks/data/aws/IAMWriteAccess.py +21 -0
  1089. s1_cns_cli/s1graph/terraform/checks/data/aws/StarActionPolicyDocument.py +39 -0
  1090. s1_cns_cli/s1graph/terraform/checks/data/aws/__init__.py +4 -0
  1091. s1_cns_cli/s1graph/terraform/checks/data/base_check.py +47 -0
  1092. s1_cns_cli/s1graph/terraform/checks/data/base_cloudsplaining_data_iam_check.py +30 -0
  1093. s1_cns_cli/s1graph/terraform/checks/data/base_registry.py +12 -0
  1094. s1_cns_cli/s1graph/terraform/checks/data/external/__init__.py +4 -0
  1095. s1_cns_cli/s1graph/terraform/checks/data/gcp/GooglePolicyIsPrivate.py +37 -0
  1096. s1_cns_cli/s1graph/terraform/checks/data/gcp/__init__.py +4 -0
  1097. s1_cns_cli/s1graph/terraform/checks/data/registry.py +4 -0
  1098. s1_cns_cli/s1graph/terraform/checks/graph_checks/__init__.py +0 -0
  1099. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/ALBProtectedByWAF.yaml +43 -0
  1100. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/ALBRedirectsHTTPToHTTPS.yaml +82 -0
  1101. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/AMRClustersNotOpenToInternet.yaml +23 -0
  1102. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/APIGWLoggingLevelsDefinedProperly.yaml +37 -0
  1103. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/APIGatewayEndpointsUsesCertificateForAuthentication.yaml +47 -0
  1104. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/APIGatewayRequestParameterValidationEnabled.yaml +10 -0
  1105. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/APIProtectedByWAF.yaml +76 -0
  1106. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/AWSConfigRecorderEnabled.yaml +29 -0
  1107. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/AWSNATGatewaysshouldbeutilized.yaml +43 -0
  1108. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/AWSSSMParameterShouldBeEncrypted.yaml +16 -0
  1109. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/AppLoadBalancerTLS12.yaml +81 -0
  1110. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/AppSyncProtectedByWAF.yaml +17 -0
  1111. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/AutoScalingEnableOnDynamoDBTables.yaml +48 -0
  1112. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/AutoScallingEnabledELB.yaml +48 -0
  1113. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/CLoudFrontS3OriginConfigWithOAI.yaml +30 -0
  1114. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/CloudFrontHasCustomSSLCertificate.yaml +16 -0
  1115. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/CloudFrontHasResponseHeadersPolicy.yaml +19 -0
  1116. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/CloudFrontUsesSecureProtocolsForHTTPS.yaml +11 -0
  1117. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/CloudFrontWebACLConfiguredWIthLog4jVulnerability.yaml +30 -0
  1118. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/CloudtrailHasCloudwatch.yaml +22 -0
  1119. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/CodecommitApprovalRulesAttached.yaml +20 -0
  1120. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/ConfigRecorderRecordsAllGlobalResources.yaml +11 -0
  1121. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/DMSEndpointHaveSSLConfigured.yaml +55 -0
  1122. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/EBSAddedBackup.yaml +17 -0
  1123. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/EC2InstanceHasIAMRoleAttached.yaml +10 -0
  1124. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/EFSAddedBackup.yaml +18 -0
  1125. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/EIPAllocatedToVPCAttachedEC2.yaml +104 -0
  1126. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/EMRClusterHasSecurityConfiguration.yaml +10 -0
  1127. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/ElastiCacheRedisConfiguredAutomaticFailOver.yaml +11 -0
  1128. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/ElasticSearchDedicatedMasterEnabled.yaml +13 -0
  1129. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/EncryptedEBSVolumeOnlyConnectedToEC2s.yaml +31 -0
  1130. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/GuardDutyIsEnabled.yaml +30 -0
  1131. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/HTTPNotSendingPasswords.yaml +38 -0
  1132. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/IAMGroupHasAtLeastOneUser.yaml +29 -0
  1133. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/IAMManagedIAMFullAccessPolicy.yaml +41 -0
  1134. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/IAMPolicyNotAllowFullIAMAccess.yaml +51 -0
  1135. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/IAMUserHasNoConsoleAccess.yaml +20 -0
  1136. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/IAMUsersAreMembersAtLeastOneGroup.yaml +25 -0
  1137. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/NeptuneDeletionProtectionEnabled.yaml +11 -0
  1138. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/NetworkFirewallHasLogging.yaml +17 -0
  1139. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/OpenSearchDomainHasFineGrainedControl.yaml +20 -0
  1140. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/PostgresDBHasQueryLoggingEnabled.yaml +37 -0
  1141. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/PostgresRDSHasQueryLoggingEnabled.yaml +35 -0
  1142. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/RDSClusterHasBackupPlan.yaml +17 -0
  1143. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/RDSEnableCopyTagsToSnapshot.yaml +26 -0
  1144. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/Route53ARecordAttachedResource.yaml +57 -0
  1145. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/Route53ZoneEnableDNSSECSigning.yaml +18 -0
  1146. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/Route53ZoneHasMatchingQueryLog.yaml +17 -0
  1147. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/S3BucketEncryption.yaml +51 -0
  1148. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/S3BucketEventNotifications.yaml +17 -0
  1149. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/S3BucketHasPublicAccessBlock.yaml +29 -0
  1150. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/S3BucketLifecycle.yaml +23 -0
  1151. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/S3BucketLogging.yaml +23 -0
  1152. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/S3BucketReplicationConfiguration.yaml +30 -0
  1153. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/S3BucketVersioning.yaml +30 -0
  1154. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/S3KMSEncryptedByDefault.yaml +30 -0
  1155. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/S3NotAllowAccessToAllAuthenticatedUsers.yaml +11 -0
  1156. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/S3PublicACLRead.yaml +114 -0
  1157. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/S3PublicACLWrite.yaml +99 -0
  1158. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/SGAttachedToResource.yaml +55 -0
  1159. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/SecretsAreRotated.yaml +17 -0
  1160. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/SubnetHasACL.yaml +45 -0
  1161. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/VPCHasFlowLog.yaml +19 -0
  1162. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/VPCHasRestrictedSG.yaml +63 -0
  1163. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/VPCPeeringRouteTableOverlyPermissive.yaml +66 -0
  1164. s1_cns_cli/s1graph/terraform/checks/graph_checks/aws/WAF2HasLogs.yaml +18 -0
  1165. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AccessToPostgreSQLFromAzureServicesIsDisabled.yaml +37 -0
  1166. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/ApplicationGatewayEnablesWAF.yaml +32 -0
  1167. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureACR_HTTPSwebhook.yaml +12 -0
  1168. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureAKSclusterAzureCNIEnabled.yaml +13 -0
  1169. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureActiveDirectoryAdminIsConfigured.yaml +18 -0
  1170. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureAntimalwareIsConfiguredWithAutoUpdatesForVMs.yaml +35 -0
  1171. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureAutomationAccNotOverlyPermissiveNetAccess.yaml +12 -0
  1172. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureConfigMSSQLwithAD.yaml +21 -0
  1173. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureContainerInstanceconfigManagedIdentity.yaml +17 -0
  1174. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureDataFactoriesEncryptedWithCustomerManagedKey.yaml +17 -0
  1175. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureKeyVaultConfigPrivateEndpoint.yaml +19 -0
  1176. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureMSSQLServerHasSecurityAlertPolicy.yaml +31 -0
  1177. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureNetworkInterfacePublicIPAddressId.yaml +18 -0
  1178. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzurePostgreSQLFlexServerNotOverlyPermissive.yaml +20 -0
  1179. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureSpringCloudConfigWithVnet.yaml +19 -0
  1180. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureSqlDbEnableTransparentDataEncryption.yaml +13 -0
  1181. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureStorageAccConfigWithPrivateEndpoint.yaml +31 -0
  1182. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureStorageAccountsUseCustomerManagedKeyForEncryption.yaml +23 -0
  1183. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureSubnetConfigWithNSG.yaml +45 -0
  1184. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureSynapseWorkspacesHaveNoIPFirewallRulesAttached.yaml +18 -0
  1185. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/AzureUnattachedDisksAreEncrypted.yaml +43 -0
  1186. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/CognitiveServicesCustomerManagedKey.yaml +23 -0
  1187. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/DataExplorerEncryptionUsesCustomKey.yaml +19 -0
  1188. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/MSQLenablesCustomerManagedKey.yaml +24 -0
  1189. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/PGSQLenablesCustomerManagedKey.yaml +24 -0
  1190. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/SQLServerAuditingEnabled.yaml +36 -0
  1191. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/SQLServerAuditingRetention90Days.yaml +38 -0
  1192. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/StorageContainerActivityLogsNotPublic.yaml +56 -0
  1193. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/StorageCriticalDataEncryptedCMK.yaml +17 -0
  1194. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/StorageLoggingIsEnabledForBlobService.yaml +37 -0
  1195. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/StorageLoggingIsEnabledForTableService.yaml +28 -0
  1196. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/VAconfiguredToSendReports.yaml +52 -0
  1197. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/VAconfiguredToSendReportsToAdmins.yaml +51 -0
  1198. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/VAisEnabledInStorageAccount.yaml +25 -0
  1199. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/VAsetPeriodicScansOnSQL.yaml +43 -0
  1200. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/VMHasBackUpMachine.yaml +19 -0
  1201. s1_cns_cli/s1graph/terraform/checks/graph_checks/azure/VirtualMachinesUtilizingManagedDisks.yaml +21 -0
  1202. s1_cns_cli/s1graph/terraform/checks/graph_checks/azuredevops/ADORepositoryHasMinTwoReviewers.yaml +26 -0
  1203. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/CloudFunctionSecureHTTPTrigger.yaml +11 -0
  1204. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/DisableAccessToSqlDBInstanceForRootUsersWithoutPassword.yaml +50 -0
  1205. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCPAuditLogsConfiguredForAllServicesAndUsers.yaml +34 -0
  1206. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCPComputeFirewallOverlyPermissiveToAllTraffic.yaml +34 -0
  1207. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCPContainerRegistryReposAreNotPubliclyAccessible.yaml +63 -0
  1208. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCPKMSCryptoKeysAreNotPubliclyAccessible.yaml +64 -0
  1209. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCPKMSKeyRingsAreNotPubliclyAccessible.yaml +63 -0
  1210. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCPLogBucketsConfiguredUsingLock.yaml +38 -0
  1211. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCPMySQLdbInstancePoint_In_TimeRecoveryBackupIsEnabled.yaml +19 -0
  1212. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCPNetworkDoesNotUseDefaultFirewall.yaml +17 -0
  1213. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCPPostgreSQLDatabaseFlaglog_durationIsSetToON.yaml +17 -0
  1214. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCPPostgreSQLDatabaseFlaglog_executor_statsIsSetToOFF.yaml +22 -0
  1215. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCPPostgreSQLDatabaseFlaglog_parser_statsIsSetToOFF.yaml +22 -0
  1216. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCPPostgreSQLDatabaseFlaglog_planner_statsIsSetToOFF.yaml +22 -0
  1217. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCPPostgreSQLDatabaseFlaglog_statement_statsIsSetToOFF.yaml +22 -0
  1218. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCPProjectHasNoLegacyNetworks.yaml +39 -0
  1219. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCPdisableAlphaClusterFeatureInKubernetesEngineClusters.yaml +11 -0
  1220. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GCRContainerVulnerabilityScanningEnabled.yaml +11 -0
  1221. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/GKEClustersAreNotUsingDefaultServiceAccount.yaml +24 -0
  1222. s1_cns_cli/s1graph/terraform/checks/graph_checks/gcp/ServiceAccountHasGCPmanagedKey.yaml +13 -0
  1223. s1_cns_cli/s1graph/terraform/checks/graph_checks/github/RepositoryHasBranchProtection.yaml +21 -0
  1224. s1_cns_cli/s1graph/terraform/checks/graph_checks/ncp/AccessControlGroupRuleDefine.yaml +17 -0
  1225. s1_cns_cli/s1graph/terraform/checks/graph_checks/ncp/AutoScalingEnabledLB.yaml +36 -0
  1226. s1_cns_cli/s1graph/terraform/checks/graph_checks/ncp/RouteTablePublicSubnetConnection.yaml +35 -0
  1227. s1_cns_cli/s1graph/terraform/checks/graph_checks/oci/AdministratorUserNotAssociatedWithAPIKey.yaml +62 -0
  1228. s1_cns_cli/s1graph/terraform/checks/graph_checks/oci/OCI_K8EngineClusterBootVolConfigInTransitEncryption.yaml +17 -0
  1229. s1_cns_cli/s1graph/terraform/checks/graph_checks/oci/OCI_K8EngineClusterPodSecPolicyEnforced.yaml +17 -0
  1230. s1_cns_cli/s1graph/terraform/checks/graph_checks/oci/OCI_KubernetesEngineClusterEndpointConfigWithNSG.yaml +28 -0
  1231. s1_cns_cli/s1graph/terraform/checks/graph_checks/oci/OCI_NFSaccessRestrictedToRootUsers.yaml +27 -0
  1232. s1_cns_cli/s1graph/terraform/checks/graph_checks/oci/OCI_NSGNotAllowRDP.yaml +68 -0
  1233. s1_cns_cli/s1graph/terraform/checks/module/__init__.py +0 -0
  1234. s1_cns_cli/s1graph/terraform/checks/module/base_module_check.py +39 -0
  1235. s1_cns_cli/s1graph/terraform/checks/module/base_registry.py +9 -0
  1236. s1_cns_cli/s1graph/terraform/checks/module/registry.py +4 -0
  1237. s1_cns_cli/s1graph/terraform/checks/provider/__init__.py +6 -0
  1238. s1_cns_cli/s1graph/terraform/checks/provider/aws/__init__.py +5 -0
  1239. s1_cns_cli/s1graph/terraform/checks/provider/aws/credentials.py +37 -0
  1240. s1_cns_cli/s1graph/terraform/checks/provider/base_check.py +35 -0
  1241. s1_cns_cli/s1graph/terraform/checks/provider/base_registry.py +11 -0
  1242. s1_cns_cli/s1graph/terraform/checks/provider/linode/__init__.py +4 -0
  1243. s1_cns_cli/s1graph/terraform/checks/provider/linode/credentials.py +31 -0
  1244. s1_cns_cli/s1graph/terraform/checks/provider/ncp/__init__.py +5 -0
  1245. s1_cns_cli/s1graph/terraform/checks/provider/ncp/credentials.py +37 -0
  1246. s1_cns_cli/s1graph/terraform/checks/provider/oci/__init__.py +5 -0
  1247. s1_cns_cli/s1graph/terraform/checks/provider/oci/credentials.py +27 -0
  1248. s1_cns_cli/s1graph/terraform/checks/provider/openstack/__init__.py +5 -0
  1249. s1_cns_cli/s1graph/terraform/checks/provider/openstack/credentials.py +32 -0
  1250. s1_cns_cli/s1graph/terraform/checks/provider/panos/__init__.py +4 -0
  1251. s1_cns_cli/s1graph/terraform/checks/provider/panos/credentials.py +38 -0
  1252. s1_cns_cli/s1graph/terraform/checks/provider/registry.py +4 -0
  1253. s1_cns_cli/s1graph/terraform/checks/provider/s1cns/__init__.py +5 -0
  1254. s1_cns_cli/s1graph/terraform/checks/provider/s1cns/credentials.py +31 -0
  1255. s1_cns_cli/s1graph/terraform/checks/resource/__init__.py +14 -0
  1256. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/ALBACLIsUnrestricted.py +20 -0
  1257. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/APIGatewayProtocolHTTPS.py +25 -0
  1258. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/AbsRDSParameter.py +27 -0
  1259. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/AbsSecurityGroupUnrestrictedIngress.py +58 -0
  1260. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/ActionTrailLogAllEvents.py +27 -0
  1261. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/ActionTrailLogAllRegions.py +27 -0
  1262. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/DiskEncryptedWithCMK.py +27 -0
  1263. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/DiskIsEncrypted.py +21 -0
  1264. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/K8sEnableNetworkPolicies.py +60 -0
  1265. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/K8sNodePoolAutoRepair.py +23 -0
  1266. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/KMSKeyIsEnabled.py +22 -0
  1267. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/KMSKeyRotationIsEnabled.py +22 -0
  1268. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/LaunchTemplateDisksAreEncrypted.py +22 -0
  1269. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/LogAuditRDSEnabled.py +17 -0
  1270. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/MongoDBInsideVPC.py +21 -0
  1271. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/MongoDBInstanceSSL.py +21 -0
  1272. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/MongoDBIsPublic.py +23 -0
  1273. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/MongoDBTransparentDataEncryptionEnabled.py +21 -0
  1274. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/OSSBucketAccessLogs.py +23 -0
  1275. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/OSSBucketEncryptedWithCMK.py +21 -0
  1276. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/OSSBucketPublic.py +20 -0
  1277. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/OSSBucketTransferAcceleration.py +17 -0
  1278. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/OSSBucketVersioning.py +20 -0
  1279. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RAMPasswordPolicyExpiration.py +38 -0
  1280. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RAMPasswordPolicyLength.py +38 -0
  1281. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RAMPasswordPolicyLowercaseLetter.py +17 -0
  1282. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RAMPasswordPolicyMaxLogin.py +40 -0
  1283. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RAMPasswordPolicyNumber.py +17 -0
  1284. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RAMPasswordPolicyReuse.py +38 -0
  1285. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RAMPasswordPolicySymbol.py +17 -0
  1286. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RAMPasswordPolicyUppcaseLetter.py +17 -0
  1287. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RAMSecurityEnforceMFA.py +23 -0
  1288. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RDSInstanceAutoUpgrade.py +21 -0
  1289. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RDSInstanceLogConnections.py +9 -0
  1290. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RDSInstanceLogDisconnections.py +9 -0
  1291. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RDSInstanceLogsEnabled.py +9 -0
  1292. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RDSInstanceSSL.py +21 -0
  1293. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RDSIsPublic.py +23 -0
  1294. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RDSRetention.py +36 -0
  1295. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/RDSTransparentDataEncryptionEnabled.py +39 -0
  1296. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/SecurityGroupUnrestrictedIngress22.py +9 -0
  1297. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/SecurityGroupUnrestrictedIngress3389.py +9 -0
  1298. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/TLSPoliciesAreSecure.py +20 -0
  1299. s1_cns_cli/s1graph/terraform/checks/resource/alicloud/__init__.py +5 -0
  1300. s1_cns_cli/s1graph/terraform/checks/resource/aws/ACMCertCreateBeforeDestroy.py +22 -0
  1301. s1_cns_cli/s1graph/terraform/checks/resource/aws/ACMCertSetLoggingPreference.py +30 -0
  1302. s1_cns_cli/s1graph/terraform/checks/resource/aws/ALBDesyncMode.py +24 -0
  1303. s1_cns_cli/s1graph/terraform/checks/resource/aws/ALBDropHttpHeaders.py +22 -0
  1304. s1_cns_cli/s1graph/terraform/checks/resource/aws/ALBListenerHTTPS.py +40 -0
  1305. s1_cns_cli/s1graph/terraform/checks/resource/aws/AMICopyIsEncrypted.py +18 -0
  1306. s1_cns_cli/s1graph/terraform/checks/resource/aws/AMICopyUsesCMK.py +21 -0
  1307. s1_cns_cli/s1graph/terraform/checks/resource/aws/AMIEncryption.py +26 -0
  1308. s1_cns_cli/s1graph/terraform/checks/resource/aws/AMILaunchIsShared.py +17 -0
  1309. s1_cns_cli/s1graph/terraform/checks/resource/aws/APIGatewayAccessLogging.py +22 -0
  1310. s1_cns_cli/s1graph/terraform/checks/resource/aws/APIGatewayAuthorization.py +25 -0
  1311. s1_cns_cli/s1graph/terraform/checks/resource/aws/APIGatewayCacheEnable.py +18 -0
  1312. s1_cns_cli/s1graph/terraform/checks/resource/aws/APIGatewayCreateBeforeDestroy.py +22 -0
  1313. s1_cns_cli/s1graph/terraform/checks/resource/aws/APIGatewayDeploymentCreateBeforeDestroy.py +24 -0
  1314. s1_cns_cli/s1graph/terraform/checks/resource/aws/APIGatewayDomainNameTLS.py +26 -0
  1315. s1_cns_cli/s1graph/terraform/checks/resource/aws/APIGatewayMethodSettingsCacheEnabled.py +18 -0
  1316. s1_cns_cli/s1graph/terraform/checks/resource/aws/APIGatewayMethodSettingsCacheEncrypted.py +22 -0
  1317. s1_cns_cli/s1graph/terraform/checks/resource/aws/APIGatewayMethodSettingsDataTrace.py +20 -0
  1318. s1_cns_cli/s1graph/terraform/checks/resource/aws/APIGatewayV2RouteDefinesAuthorizationType.py +25 -0
  1319. s1_cns_cli/s1graph/terraform/checks/resource/aws/APIGatewayXray.py +18 -0
  1320. s1_cns_cli/s1graph/terraform/checks/resource/aws/AbsNACLUnrestrictedIngress.py +111 -0
  1321. s1_cns_cli/s1graph/terraform/checks/resource/aws/AbsSecurityGroupUnrestrictedIngress.py +114 -0
  1322. s1_cns_cli/s1graph/terraform/checks/resource/aws/AppFlowConnectorProfileUsesCMK.py +21 -0
  1323. s1_cns_cli/s1graph/terraform/checks/resource/aws/AppFlowUsesCMK.py +21 -0
  1324. s1_cns_cli/s1graph/terraform/checks/resource/aws/AppSyncFieldLevelLogs.py +22 -0
  1325. s1_cns_cli/s1graph/terraform/checks/resource/aws/AppSyncLogging.py +23 -0
  1326. s1_cns_cli/s1graph/terraform/checks/resource/aws/AppsyncAPICacheEncryptionAtRest.py +18 -0
  1327. s1_cns_cli/s1graph/terraform/checks/resource/aws/AppsyncAPICacheEncryptionInTransit.py +18 -0
  1328. s1_cns_cli/s1graph/terraform/checks/resource/aws/AthenaDatabaseEncryption.py +21 -0
  1329. s1_cns_cli/s1graph/terraform/checks/resource/aws/AthenaWorkgroupConfiguration.py +19 -0
  1330. s1_cns_cli/s1graph/terraform/checks/resource/aws/AthenaWorkgroupEncryption.py +23 -0
  1331. s1_cns_cli/s1graph/terraform/checks/resource/aws/AuroraEncryption.py +26 -0
  1332. s1_cns_cli/s1graph/terraform/checks/resource/aws/AutoScalingLaunchTemplate.py +27 -0
  1333. s1_cns_cli/s1graph/terraform/checks/resource/aws/AutoScalingTagging.py +26 -0
  1334. s1_cns_cli/s1graph/terraform/checks/resource/aws/BackupVaultEncrypted.py +23 -0
  1335. s1_cns_cli/s1graph/terraform/checks/resource/aws/BatchJobIsNotPrivileged.py +36 -0
  1336. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudFrontResponseHeaderStrictTransportSecurity.py +61 -0
  1337. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudWatchAlarmsEnabled.py +25 -0
  1338. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudWatchLogGroupKMSKey.py +21 -0
  1339. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudWatchLogGroupRetention.py +21 -0
  1340. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudWatchLogGroupRetentionYear.py +36 -0
  1341. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudformationStackNotificationArns.py +21 -0
  1342. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudfrontDistributionDefaultRoot.py +26 -0
  1343. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudfrontDistributionEnabled.py +17 -0
  1344. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudfrontDistributionEncryption.py +36 -0
  1345. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudfrontDistributionLogging.py +22 -0
  1346. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudfrontDistributionOriginFailover.py +32 -0
  1347. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudfrontTLS12.py +25 -0
  1348. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudsearchDomainEnforceHttps.py +25 -0
  1349. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudsearchDomainTLS.py +26 -0
  1350. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudtrailDefinesSNSTopic.py +37 -0
  1351. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudtrailEnableLogging.py +18 -0
  1352. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudtrailEncryptionWithCMK.py +27 -0
  1353. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudtrailEventDataStoreUsesCMK.py +21 -0
  1354. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudtrailLogValidation.py +17 -0
  1355. s1_cns_cli/s1graph/terraform/checks/resource/aws/CloudtrailMultiRegion.py +17 -0
  1356. s1_cns_cli/s1graph/terraform/checks/resource/aws/CodeArtifactDomainEncryptedWithCMK.py +24 -0
  1357. s1_cns_cli/s1graph/terraform/checks/resource/aws/CodeBuildPrivilegedMode.py +25 -0
  1358. s1_cns_cli/s1graph/terraform/checks/resource/aws/CodeBuildProjectEncryption.py +30 -0
  1359. s1_cns_cli/s1graph/terraform/checks/resource/aws/CodePipelineArtifactsEncrypted.py +23 -0
  1360. s1_cns_cli/s1graph/terraform/checks/resource/aws/CodebuildHasLogs.py +34 -0
  1361. s1_cns_cli/s1graph/terraform/checks/resource/aws/CodebuildS3LogsEncrypted.py +24 -0
  1362. s1_cns_cli/s1graph/terraform/checks/resource/aws/CodebuildUsesCMK.py +36 -0
  1363. s1_cns_cli/s1graph/terraform/checks/resource/aws/CodecommitApprovalsRulesRequireMin2.py +30 -0
  1364. s1_cns_cli/s1graph/terraform/checks/resource/aws/ComprehendEntityRecognizerModelUsesCMK.py +21 -0
  1365. s1_cns_cli/s1graph/terraform/checks/resource/aws/ComprehendEntityRecognizerVolumeUsesCMK.py +25 -0
  1366. s1_cns_cli/s1graph/terraform/checks/resource/aws/ConfigConfgurationAggregatorAllRegions.py +36 -0
  1367. s1_cns_cli/s1graph/terraform/checks/resource/aws/ConnectInstanceKinesisVideoStreamStorageConfigUsesCMK.py +21 -0
  1368. s1_cns_cli/s1graph/terraform/checks/resource/aws/ConnectInstanceS3StorageConfigUsesCMK.py +23 -0
  1369. s1_cns_cli/s1graph/terraform/checks/resource/aws/DAXEncryption.py +17 -0
  1370. s1_cns_cli/s1graph/terraform/checks/resource/aws/DAXEndpointTLS.py +20 -0
  1371. s1_cns_cli/s1graph/terraform/checks/resource/aws/DBInstanceBackupRetentionPeriod.py +34 -0
  1372. s1_cns_cli/s1graph/terraform/checks/resource/aws/DBInstanceLogging.py +29 -0
  1373. s1_cns_cli/s1graph/terraform/checks/resource/aws/DBInstanceMinorUpgrade.py +17 -0
  1374. s1_cns_cli/s1graph/terraform/checks/resource/aws/DBSnapshotCopyUsesCMK.py +21 -0
  1375. s1_cns_cli/s1graph/terraform/checks/resource/aws/DBSnapshotsArePrivate.py +22 -0
  1376. s1_cns_cli/s1graph/terraform/checks/resource/aws/DLMEventsCrossRegionEncryption.py +32 -0
  1377. s1_cns_cli/s1graph/terraform/checks/resource/aws/DLMEventsCrossRegionEncryptionWithCMK.py +32 -0
  1378. s1_cns_cli/s1graph/terraform/checks/resource/aws/DLMScheduleCrossRegionEncryption.py +30 -0
  1379. s1_cns_cli/s1graph/terraform/checks/resource/aws/DLMScheduleCrossRegionEncryptionWithCMK.py +32 -0
  1380. s1_cns_cli/s1graph/terraform/checks/resource/aws/DMSEndpointUsesCMK.py +37 -0
  1381. s1_cns_cli/s1graph/terraform/checks/resource/aws/DMSReplicationInstanceEncryptedWithCMK.py +21 -0
  1382. s1_cns_cli/s1graph/terraform/checks/resource/aws/DMSReplicationInstanceMinorUpgrade.py +17 -0
  1383. s1_cns_cli/s1graph/terraform/checks/resource/aws/DMSReplicationInstancePubliclyAccessible.py +20 -0
  1384. s1_cns_cli/s1graph/terraform/checks/resource/aws/DMSS3DefinesIntransitEncryption.py +24 -0
  1385. s1_cns_cli/s1graph/terraform/checks/resource/aws/DMSS3UsesCMK.py +25 -0
  1386. s1_cns_cli/s1graph/terraform/checks/resource/aws/DatasyncLocationExposesSecrets.py +25 -0
  1387. s1_cns_cli/s1graph/terraform/checks/resource/aws/DocDBAuditLogs.py +23 -0
  1388. s1_cns_cli/s1graph/terraform/checks/resource/aws/DocDBEncryptedWithCMK.py +21 -0
  1389. s1_cns_cli/s1graph/terraform/checks/resource/aws/DocDBEncryption.py +17 -0
  1390. s1_cns_cli/s1graph/terraform/checks/resource/aws/DocDBGlobalClusterEncryption.py +17 -0
  1391. s1_cns_cli/s1graph/terraform/checks/resource/aws/DocDBLogging.py +25 -0
  1392. s1_cns_cli/s1graph/terraform/checks/resource/aws/DocDBTLS.py +23 -0
  1393. s1_cns_cli/s1graph/terraform/checks/resource/aws/DynamoDBGlobalTableRecovery.py +21 -0
  1394. s1_cns_cli/s1graph/terraform/checks/resource/aws/DynamoDBTableReplicaKMSUsesCMK.py +23 -0
  1395. s1_cns_cli/s1graph/terraform/checks/resource/aws/DynamoDBTablesEncrypted.py +29 -0
  1396. s1_cns_cli/s1graph/terraform/checks/resource/aws/DynamodbRecovery.py +20 -0
  1397. s1_cns_cli/s1graph/terraform/checks/resource/aws/EBSDefaultEncryption.py +23 -0
  1398. s1_cns_cli/s1graph/terraform/checks/resource/aws/EBSEncryption.py +17 -0
  1399. s1_cns_cli/s1graph/terraform/checks/resource/aws/EBSSnapshotCopyEncryptedWithCMK.py +21 -0
  1400. s1_cns_cli/s1graph/terraform/checks/resource/aws/EBSVolumeEncryptedWithCMK.py +21 -0
  1401. s1_cns_cli/s1graph/terraform/checks/resource/aws/EC2Credentials.py +28 -0
  1402. s1_cns_cli/s1graph/terraform/checks/resource/aws/EC2DetailedMonitoringEnabled.py +21 -0
  1403. s1_cns_cli/s1graph/terraform/checks/resource/aws/EC2EBSOptimized.py +17 -0
  1404. s1_cns_cli/s1graph/terraform/checks/resource/aws/EC2PublicIP.py +32 -0
  1405. s1_cns_cli/s1graph/terraform/checks/resource/aws/ECRImageScanning.py +17 -0
  1406. s1_cns_cli/s1graph/terraform/checks/resource/aws/ECRImmutableTags.py +22 -0
  1407. s1_cns_cli/s1graph/terraform/checks/resource/aws/ECRPolicy.py +62 -0
  1408. s1_cns_cli/s1graph/terraform/checks/resource/aws/ECRRepositoryEncrypted.py +20 -0
  1409. s1_cns_cli/s1graph/terraform/checks/resource/aws/ECSClusterContainerInsights.py +23 -0
  1410. s1_cns_cli/s1graph/terraform/checks/resource/aws/ECSClusterLoggingEnabled.py +26 -0
  1411. s1_cns_cli/s1graph/terraform/checks/resource/aws/ECSClusterLoggingEncryptedWithCMK.py +39 -0
  1412. s1_cns_cli/s1graph/terraform/checks/resource/aws/ECSContainerHostProcess.py +41 -0
  1413. s1_cns_cli/s1graph/terraform/checks/resource/aws/ECSContainerPrivilege.py +42 -0
  1414. s1_cns_cli/s1graph/terraform/checks/resource/aws/ECSContainerReadOnlyRoot.py +45 -0
  1415. s1_cns_cli/s1graph/terraform/checks/resource/aws/ECSServiceFargateLatest.py +37 -0
  1416. s1_cns_cli/s1graph/terraform/checks/resource/aws/ECSServicePublicIP.py +33 -0
  1417. s1_cns_cli/s1graph/terraform/checks/resource/aws/ECSTaskDefinitionEFSVolumeEncryption.py +27 -0
  1418. s1_cns_cli/s1graph/terraform/checks/resource/aws/ECSTaskDefinitionRoleCheck.py +30 -0
  1419. s1_cns_cli/s1graph/terraform/checks/resource/aws/EFSAccessPointRoot.py +25 -0
  1420. s1_cns_cli/s1graph/terraform/checks/resource/aws/EFSAccessUserIdentity.py +26 -0
  1421. s1_cns_cli/s1graph/terraform/checks/resource/aws/EFSEncryptionEnabled.py +17 -0
  1422. s1_cns_cli/s1graph/terraform/checks/resource/aws/EFSFileSystemEncryptedWithCMK.py +21 -0
  1423. s1_cns_cli/s1graph/terraform/checks/resource/aws/EKSControlPlaneLogging.py +32 -0
  1424. s1_cns_cli/s1graph/terraform/checks/resource/aws/EKSNodeGroupRemoteAccess.py +25 -0
  1425. s1_cns_cli/s1graph/terraform/checks/resource/aws/EKSPlatformVersion.py +30 -0
  1426. s1_cns_cli/s1graph/terraform/checks/resource/aws/EKSPublicAccess.py +22 -0
  1427. s1_cns_cli/s1graph/terraform/checks/resource/aws/EKSPublicAccessCIDR.py +34 -0
  1428. s1_cns_cli/s1graph/terraform/checks/resource/aws/EKSSecretsEncryption.py +20 -0
  1429. s1_cns_cli/s1graph/terraform/checks/resource/aws/ELBAccessLogs.py +28 -0
  1430. s1_cns_cli/s1graph/terraform/checks/resource/aws/ELBCrossZoneEnable.py +19 -0
  1431. s1_cns_cli/s1graph/terraform/checks/resource/aws/ELBPolicyUsesSecureProtocols.py +29 -0
  1432. s1_cns_cli/s1graph/terraform/checks/resource/aws/ELBUsesSSL.py +23 -0
  1433. s1_cns_cli/s1graph/terraform/checks/resource/aws/ELBv2AccessLogs.py +22 -0
  1434. s1_cns_cli/s1graph/terraform/checks/resource/aws/EMRClusterIsEncryptedKMS.py +27 -0
  1435. s1_cns_cli/s1graph/terraform/checks/resource/aws/EMRClusterKerberosAttributes.py +27 -0
  1436. s1_cns_cli/s1graph/terraform/checks/resource/aws/Ec2TransitGatewayAutoAccept.py +25 -0
  1437. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElastiCacheHasCustomSubnet.py +28 -0
  1438. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticBeanstalkUseEnhancedHealthChecks.py +30 -0
  1439. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticCacheAutomaticBackup.py +32 -0
  1440. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticCacheAutomaticMinorUpgrades.py +33 -0
  1441. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticacheHasSecurityGroup.py +19 -0
  1442. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticacheReplicationGroupEncryptedWithCMK.py +21 -0
  1443. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticacheReplicationGroupEncryptionAtRest.py +17 -0
  1444. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticacheReplicationGroupEncryptionAtTransit.py +17 -0
  1445. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticacheReplicationGroupEncryptionAtTransitAuthToken.py +30 -0
  1446. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticsearchDefaultSG.py +26 -0
  1447. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticsearchDomainAuditLogging.py +31 -0
  1448. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticsearchDomainEnforceHTTPS.py +19 -0
  1449. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticsearchDomainHA.py +38 -0
  1450. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticsearchDomainLogging.py +33 -0
  1451. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticsearchEncryption.py +17 -0
  1452. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticsearchEncryptionWithCMK.py +21 -0
  1453. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticsearchInVPC.py +22 -0
  1454. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticsearchNodeToNodeEncryption.py +51 -0
  1455. s1_cns_cli/s1graph/terraform/checks/resource/aws/ElasticsearchTLSPolicy.py +25 -0
  1456. s1_cns_cli/s1graph/terraform/checks/resource/aws/FSXOntapFSEncryptedWithCMK.py +21 -0
  1457. s1_cns_cli/s1graph/terraform/checks/resource/aws/FSXOpenZFSFileSystemEncryptedWithCMK.py +21 -0
  1458. s1_cns_cli/s1graph/terraform/checks/resource/aws/FSXWindowsFSEncryptedWithCMK.py +21 -0
  1459. s1_cns_cli/s1graph/terraform/checks/resource/aws/GlacierVaultAnyPrincipal.py +44 -0
  1460. s1_cns_cli/s1graph/terraform/checks/resource/aws/GlobalAcceleratorAcceleratorFlowLogs.py +17 -0
  1461. s1_cns_cli/s1graph/terraform/checks/resource/aws/GlueDataCatalogEncryption.py +53 -0
  1462. s1_cns_cli/s1graph/terraform/checks/resource/aws/GlueSecurityConfiguration.py +55 -0
  1463. s1_cns_cli/s1graph/terraform/checks/resource/aws/GlueSecurityConfigurationEnabled.py +23 -0
  1464. s1_cns_cli/s1graph/terraform/checks/resource/aws/GuarddutyDetectorEnabled.py +19 -0
  1465. s1_cns_cli/s1graph/terraform/checks/resource/aws/IAMAdminPolicyDocument.py +50 -0
  1466. s1_cns_cli/s1graph/terraform/checks/resource/aws/IAMCredentialsExposure.py +23 -0
  1467. s1_cns_cli/s1graph/terraform/checks/resource/aws/IAMDataExfiltration.py +21 -0
  1468. s1_cns_cli/s1graph/terraform/checks/resource/aws/IAMManagedAdminPolicy.py +61 -0
  1469. s1_cns_cli/s1graph/terraform/checks/resource/aws/IAMPermissionsManagement.py +21 -0
  1470. s1_cns_cli/s1graph/terraform/checks/resource/aws/IAMPolicyAttachedToGroupOrRoles.py +29 -0
  1471. s1_cns_cli/s1graph/terraform/checks/resource/aws/IAMPrivilegeEscalation.py +22 -0
  1472. s1_cns_cli/s1graph/terraform/checks/resource/aws/IAMRoleAllowAssumeFromAccount.py +46 -0
  1473. s1_cns_cli/s1graph/terraform/checks/resource/aws/IAMRoleAllowsPublicAssume.py +38 -0
  1474. s1_cns_cli/s1graph/terraform/checks/resource/aws/IAMStarActionPolicyDocument.py +56 -0
  1475. s1_cns_cli/s1graph/terraform/checks/resource/aws/IAMUserNotUsedForAccess.py +21 -0
  1476. s1_cns_cli/s1graph/terraform/checks/resource/aws/IAMWriteAccess.py +15 -0
  1477. s1_cns_cli/s1graph/terraform/checks/resource/aws/IMDSv1Disabled.py +45 -0
  1478. s1_cns_cli/s1graph/terraform/checks/resource/aws/ImagebuilderComponentEncryptedWithCMK.py +21 -0
  1479. s1_cns_cli/s1graph/terraform/checks/resource/aws/ImagebuilderDistributionConfigurationEncryptedWithCMK.py +22 -0
  1480. s1_cns_cli/s1graph/terraform/checks/resource/aws/ImagebuilderImageRecipeEBSEncrypted.py +29 -0
  1481. s1_cns_cli/s1graph/terraform/checks/resource/aws/KMSKeyIsEnabled.py +18 -0
  1482. s1_cns_cli/s1graph/terraform/checks/resource/aws/KMSKeyWildcardPrincipal.py +42 -0
  1483. s1_cns_cli/s1graph/terraform/checks/resource/aws/KMSRotation.py +25 -0
  1484. s1_cns_cli/s1graph/terraform/checks/resource/aws/KendraIndexSSEUsesCMK.py +21 -0
  1485. s1_cns_cli/s1graph/terraform/checks/resource/aws/KeyspacesTableUsesCMK.py +25 -0
  1486. s1_cns_cli/s1graph/terraform/checks/resource/aws/KinesisFirehoseDeliveryStreamSSE.py +28 -0
  1487. s1_cns_cli/s1graph/terraform/checks/resource/aws/KinesisFirehoseDeliveryStreamUsesCMK.py +38 -0
  1488. s1_cns_cli/s1graph/terraform/checks/resource/aws/KinesisStreamEncryptedWithCMK.py +21 -0
  1489. s1_cns_cli/s1graph/terraform/checks/resource/aws/KinesisStreamEncryptionType.py +20 -0
  1490. s1_cns_cli/s1graph/terraform/checks/resource/aws/KinesisVideoEncryptedWithCMK.py +21 -0
  1491. s1_cns_cli/s1graph/terraform/checks/resource/aws/LBCrossZone.py +24 -0
  1492. s1_cns_cli/s1graph/terraform/checks/resource/aws/LBDeletionProtection.py +17 -0
  1493. s1_cns_cli/s1graph/terraform/checks/resource/aws/LBTargetGroupsDefinesHealthcheck.py +36 -0
  1494. s1_cns_cli/s1graph/terraform/checks/resource/aws/LambdaCodeSigningConfigured.py +21 -0
  1495. s1_cns_cli/s1graph/terraform/checks/resource/aws/LambdaDLQConfigured.py +21 -0
  1496. s1_cns_cli/s1graph/terraform/checks/resource/aws/LambdaEnvironmentCredentials.py +41 -0
  1497. s1_cns_cli/s1graph/terraform/checks/resource/aws/LambdaEnvironmentEncryptionSettings.py +40 -0
  1498. s1_cns_cli/s1graph/terraform/checks/resource/aws/LambdaFunctionIsNotPublic.py +36 -0
  1499. s1_cns_cli/s1graph/terraform/checks/resource/aws/LambdaFunctionLevelConcurrentExecutionLimit.py +29 -0
  1500. s1_cns_cli/s1graph/terraform/checks/resource/aws/LambdaFunctionURLAuth.py +21 -0
  1501. s1_cns_cli/s1graph/terraform/checks/resource/aws/LambdaInVPC.py +23 -0
  1502. s1_cns_cli/s1graph/terraform/checks/resource/aws/LambdaXrayEnabled.py +23 -0
  1503. s1_cns_cli/s1graph/terraform/checks/resource/aws/LaunchConfigurationEBSEncryption.py +50 -0
  1504. s1_cns_cli/s1graph/terraform/checks/resource/aws/LustreFSEncryptedWithCMK.py +21 -0
  1505. s1_cns_cli/s1graph/terraform/checks/resource/aws/MQBrokerAuditLogging.py +28 -0
  1506. s1_cns_cli/s1graph/terraform/checks/resource/aws/MQBrokerEncryptedWithCMK.py +21 -0
  1507. s1_cns_cli/s1graph/terraform/checks/resource/aws/MQBrokerLogging.py +17 -0
  1508. s1_cns_cli/s1graph/terraform/checks/resource/aws/MQBrokerMinorAutoUpgrade.py +17 -0
  1509. s1_cns_cli/s1graph/terraform/checks/resource/aws/MQBrokerNotPubliclyExposed.py +31 -0
  1510. s1_cns_cli/s1graph/terraform/checks/resource/aws/MQBrokerVersion.py +36 -0
  1511. s1_cns_cli/s1graph/terraform/checks/resource/aws/MSKClusterEncryption.py +33 -0
  1512. s1_cns_cli/s1graph/terraform/checks/resource/aws/MSKClusterLogging.py +24 -0
  1513. s1_cns_cli/s1graph/terraform/checks/resource/aws/MSKClusterNodesArePrivate.py +24 -0
  1514. s1_cns_cli/s1graph/terraform/checks/resource/aws/MWAASchedulerLogsEnabled.py +22 -0
  1515. s1_cns_cli/s1graph/terraform/checks/resource/aws/MWAAWebserverLogsEnabled.py +17 -0
  1516. s1_cns_cli/s1graph/terraform/checks/resource/aws/MWAAWorkerLogsEnabled.py +18 -0
  1517. s1_cns_cli/s1graph/terraform/checks/resource/aws/MemoryDBClusterIntransitEncryption.py +24 -0
  1518. s1_cns_cli/s1graph/terraform/checks/resource/aws/MemoryDBEncryptionWithCMK.py +21 -0
  1519. s1_cns_cli/s1graph/terraform/checks/resource/aws/MemoryDBSnapshotEncryptionWithCMK.py +23 -0
  1520. s1_cns_cli/s1graph/terraform/checks/resource/aws/NeptuneClusterInstancePublic.py +21 -0
  1521. s1_cns_cli/s1graph/terraform/checks/resource/aws/NeptuneClusterLogging.py +25 -0
  1522. s1_cns_cli/s1graph/terraform/checks/resource/aws/NeptuneClusterSnapshotEncrypted.py +17 -0
  1523. s1_cns_cli/s1graph/terraform/checks/resource/aws/NeptuneClusterSnapshotEncryptedWithCMK.py +23 -0
  1524. s1_cns_cli/s1graph/terraform/checks/resource/aws/NeptuneClusterStorageEncrypted.py +17 -0
  1525. s1_cns_cli/s1graph/terraform/checks/resource/aws/NetworkACLUnrestrictedIngress20.py +9 -0
  1526. s1_cns_cli/s1graph/terraform/checks/resource/aws/NetworkACLUnrestrictedIngress21.py +9 -0
  1527. s1_cns_cli/s1graph/terraform/checks/resource/aws/NetworkACLUnrestrictedIngress22.py +9 -0
  1528. s1_cns_cli/s1graph/terraform/checks/resource/aws/NetworkACLUnrestrictedIngress3389.py +9 -0
  1529. s1_cns_cli/s1graph/terraform/checks/resource/aws/PasswordPolicyExpiration.py +38 -0
  1530. s1_cns_cli/s1graph/terraform/checks/resource/aws/PasswordPolicyLength.py +38 -0
  1531. s1_cns_cli/s1graph/terraform/checks/resource/aws/PasswordPolicyLowercaseLetter.py +17 -0
  1532. s1_cns_cli/s1graph/terraform/checks/resource/aws/PasswordPolicyNumber.py +17 -0
  1533. s1_cns_cli/s1graph/terraform/checks/resource/aws/PasswordPolicyReuse.py +38 -0
  1534. s1_cns_cli/s1graph/terraform/checks/resource/aws/PasswordPolicySymbol.py +17 -0
  1535. s1_cns_cli/s1graph/terraform/checks/resource/aws/PasswordPolicyUppercaseLetter.py +17 -0
  1536. s1_cns_cli/s1graph/terraform/checks/resource/aws/QLDBLedgerDeletionProtection.py +18 -0
  1537. s1_cns_cli/s1graph/terraform/checks/resource/aws/QLDBLedgerPermissionsMode.py +20 -0
  1538. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSCACertIsRecent.py +27 -0
  1539. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSClusterActivityStreamEncryptedWithCMK.py +27 -0
  1540. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSClusterAuditLogging.py +48 -0
  1541. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSClusterAuroraBacktrack.py +43 -0
  1542. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSClusterCopyTags.py +21 -0
  1543. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSClusterEncrypted.py +33 -0
  1544. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSClusterEncryptedWithCMK.py +21 -0
  1545. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSClusterIAMAuthentication.py +17 -0
  1546. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSClusterLogging.py +30 -0
  1547. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSClusterSnapshotEncrypted.py +17 -0
  1548. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSDeletionProtection.py +18 -0
  1549. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSEncryption.py +17 -0
  1550. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSEnhancedMonitorEnabled.py +24 -0
  1551. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSHasSecurityGroup.py +19 -0
  1552. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSIAMAuthentication.py +26 -0
  1553. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSInstanceAutoBackupEncryptionWithCMK.py +27 -0
  1554. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSInstanceDeletionProtection.py +18 -0
  1555. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSMultiAZEnabled.py +18 -0
  1556. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSPostgreSQLLogFDWExtension.py +87 -0
  1557. s1_cns_cli/s1graph/terraform/checks/resource/aws/RDSPubliclyAccessible.py +20 -0
  1558. s1_cns_cli/s1graph/terraform/checks/resource/aws/RedShiftSSL.py +31 -0
  1559. s1_cns_cli/s1graph/terraform/checks/resource/aws/RedshiftClusterAllowVersionUpgrade.py +19 -0
  1560. s1_cns_cli/s1graph/terraform/checks/resource/aws/RedshiftClusterDatabaseName.py +27 -0
  1561. s1_cns_cli/s1graph/terraform/checks/resource/aws/RedshiftClusterEncryptedWithCMK.py +21 -0
  1562. s1_cns_cli/s1graph/terraform/checks/resource/aws/RedshiftClusterEncryption.py +17 -0
  1563. s1_cns_cli/s1graph/terraform/checks/resource/aws/RedshiftClusterKMSKey.py +21 -0
  1564. s1_cns_cli/s1graph/terraform/checks/resource/aws/RedshiftClusterLogging.py +17 -0
  1565. s1_cns_cli/s1graph/terraform/checks/resource/aws/RedshiftClusterSnapshotCopyGrantEncryptedWithCMK.py +23 -0
  1566. s1_cns_cli/s1graph/terraform/checks/resource/aws/RedshiftClusterUseEnhancedVPCRouting.py +24 -0
  1567. s1_cns_cli/s1graph/terraform/checks/resource/aws/RedshiftInEc2ClassicMode.py +21 -0
  1568. s1_cns_cli/s1graph/terraform/checks/resource/aws/RedshiftServerlessNamespaceKMSKey.py +23 -0
  1569. s1_cns_cli/s1graph/terraform/checks/resource/aws/RedshitClusterPubliclyAvailable.py +20 -0
  1570. s1_cns_cli/s1graph/terraform/checks/resource/aws/S3AbortIncompleteUploads.py +38 -0
  1571. s1_cns_cli/s1graph/terraform/checks/resource/aws/S3AllowsAnyPrincipal.py +52 -0
  1572. s1_cns_cli/s1graph/terraform/checks/resource/aws/S3BlockPublicACLs.py +17 -0
  1573. s1_cns_cli/s1graph/terraform/checks/resource/aws/S3BlockPublicPolicy.py +17 -0
  1574. s1_cns_cli/s1graph/terraform/checks/resource/aws/S3BucketObjectEncryptedWithCMK.py +21 -0
  1575. s1_cns_cli/s1graph/terraform/checks/resource/aws/S3BucketObjectLock.py +29 -0
  1576. s1_cns_cli/s1graph/terraform/checks/resource/aws/S3IgnorePublicACLs.py +17 -0
  1577. s1_cns_cli/s1graph/terraform/checks/resource/aws/S3ObjectCopyEncryptedWithCMK.py +21 -0
  1578. s1_cns_cli/s1graph/terraform/checks/resource/aws/S3ProtectAgainstPolicyLockout.py +53 -0
  1579. s1_cns_cli/s1graph/terraform/checks/resource/aws/S3RestrictPublicBuckets.py +17 -0
  1580. s1_cns_cli/s1graph/terraform/checks/resource/aws/SNSTopicEncryption.py +23 -0
  1581. s1_cns_cli/s1graph/terraform/checks/resource/aws/SNSTopicPolicyAnyPrincipal.py +38 -0
  1582. s1_cns_cli/s1graph/terraform/checks/resource/aws/SQSPolicy.py +35 -0
  1583. s1_cns_cli/s1graph/terraform/checks/resource/aws/SQSQueueEncryption.py +28 -0
  1584. s1_cns_cli/s1graph/terraform/checks/resource/aws/SQSQueuePolicyAnyPrincipal.py +38 -0
  1585. s1_cns_cli/s1graph/terraform/checks/resource/aws/SSMDocumentsArePrivate.py +28 -0
  1586. s1_cns_cli/s1graph/terraform/checks/resource/aws/SSMParameterUsesCMK.py +23 -0
  1587. s1_cns_cli/s1graph/terraform/checks/resource/aws/SSMSessionManagerDocumentEncryption.py +43 -0
  1588. s1_cns_cli/s1graph/terraform/checks/resource/aws/SSMSessionManagerDocumentLogging.py +47 -0
  1589. s1_cns_cli/s1graph/terraform/checks/resource/aws/SageMakerInternetAccessDisabled.py +21 -0
  1590. s1_cns_cli/s1graph/terraform/checks/resource/aws/SagemakerDomainEncryptedWithCMK.py +21 -0
  1591. s1_cns_cli/s1graph/terraform/checks/resource/aws/SagemakerEndpointConfigurationEncryption.py +22 -0
  1592. s1_cns_cli/s1graph/terraform/checks/resource/aws/SagemakerNotebookEncryption.py +21 -0
  1593. s1_cns_cli/s1graph/terraform/checks/resource/aws/SagemakerNotebookInCustomVPC.py +27 -0
  1594. s1_cns_cli/s1graph/terraform/checks/resource/aws/SagemakerNotebookRoot.py +26 -0
  1595. s1_cns_cli/s1graph/terraform/checks/resource/aws/SchedulerScheduleUsesCMK.py +23 -0
  1596. s1_cns_cli/s1graph/terraform/checks/resource/aws/SecretManagerSecret90days.py +25 -0
  1597. s1_cns_cli/s1graph/terraform/checks/resource/aws/SecretManagerSecretEncrypted.py +29 -0
  1598. s1_cns_cli/s1graph/terraform/checks/resource/aws/SecurityGroupRuleDescription.py +56 -0
  1599. s1_cns_cli/s1graph/terraform/checks/resource/aws/SecurityGroupUnrestrictedIngress22.py +9 -0
  1600. s1_cns_cli/s1graph/terraform/checks/resource/aws/SecurityGroupUnrestrictedIngress3389.py +9 -0
  1601. s1_cns_cli/s1graph/terraform/checks/resource/aws/SecurityGroupUnrestrictedIngress80.py +9 -0
  1602. s1_cns_cli/s1graph/terraform/checks/resource/aws/SecurityGroupUnrestrictedIngressAny.py +10 -0
  1603. s1_cns_cli/s1graph/terraform/checks/resource/aws/StateMachineLoggingExecutionHistory.py +18 -0
  1604. s1_cns_cli/s1graph/terraform/checks/resource/aws/StateMachineXray.py +18 -0
  1605. s1_cns_cli/s1graph/terraform/checks/resource/aws/SubnetPublicIP.py +20 -0
  1606. s1_cns_cli/s1graph/terraform/checks/resource/aws/TimestreamDatabaseKMSKey.py +23 -0
  1607. s1_cns_cli/s1graph/terraform/checks/resource/aws/TransferServerIsPublic.py +24 -0
  1608. s1_cns_cli/s1graph/terraform/checks/resource/aws/VPCDefaultNetwork.py +27 -0
  1609. s1_cns_cli/s1graph/terraform/checks/resource/aws/VPCEndpointAcceptanceConfigured.py +17 -0
  1610. s1_cns_cli/s1graph/terraform/checks/resource/aws/WAFACLCVE202144228.py +58 -0
  1611. s1_cns_cli/s1graph/terraform/checks/resource/aws/WAFEnabled.py +23 -0
  1612. s1_cns_cli/s1graph/terraform/checks/resource/aws/WAFHasAnyRules.py +21 -0
  1613. s1_cns_cli/s1graph/terraform/checks/resource/aws/WAFHasLogs.py +23 -0
  1614. s1_cns_cli/s1graph/terraform/checks/resource/aws/WorkspaceRootVolumeEncrypted.py +20 -0
  1615. s1_cns_cli/s1graph/terraform/checks/resource/aws/WorkspaceUserVolumeEncrypted.py +20 -0
  1616. s1_cns_cli/s1graph/terraform/checks/resource/aws/__init__.py +5 -0
  1617. s1_cns_cli/s1graph/terraform/checks/resource/azure/ACRAdminAccountDisabled.py +21 -0
  1618. s1_cns_cli/s1graph/terraform/checks/resource/azure/ACRAnonymousPullDisabled.py +33 -0
  1619. s1_cns_cli/s1graph/terraform/checks/resource/azure/ACRContainerScanEnabled.py +33 -0
  1620. s1_cns_cli/s1graph/terraform/checks/resource/azure/ACREnableImageQuarantine.py +17 -0
  1621. s1_cns_cli/s1graph/terraform/checks/resource/azure/ACREnableRetentionPolicy.py +17 -0
  1622. s1_cns_cli/s1graph/terraform/checks/resource/azure/ACRGeoreplicated.py +29 -0
  1623. s1_cns_cli/s1graph/terraform/checks/resource/azure/ACRPublicNetworkAccessDisabled.py +20 -0
  1624. s1_cns_cli/s1graph/terraform/checks/resource/azure/ACRUseSignedImages.py +23 -0
  1625. s1_cns_cli/s1graph/terraform/checks/resource/azure/AKSApiServerAuthorizedIpRanges.py +32 -0
  1626. s1_cns_cli/s1graph/terraform/checks/resource/azure/AKSDashboardDisabled.py +28 -0
  1627. s1_cns_cli/s1graph/terraform/checks/resource/azure/AKSEnablesPrivateClusters.py +17 -0
  1628. s1_cns_cli/s1graph/terraform/checks/resource/azure/AKSIsPaidSku.py +26 -0
  1629. s1_cns_cli/s1graph/terraform/checks/resource/azure/AKSLocalAdminDisabled.py +20 -0
  1630. s1_cns_cli/s1graph/terraform/checks/resource/azure/AKSLoggingEnabled.py +31 -0
  1631. s1_cns_cli/s1graph/terraform/checks/resource/azure/AKSMaxPodsMinimum.py +38 -0
  1632. s1_cns_cli/s1graph/terraform/checks/resource/azure/AKSNetworkPolicy.py +21 -0
  1633. s1_cns_cli/s1graph/terraform/checks/resource/azure/AKSNodePublicIpDisabled.py +21 -0
  1634. s1_cns_cli/s1graph/terraform/checks/resource/azure/AKSPoolTypeIsScaleSet.py +24 -0
  1635. s1_cns_cli/s1graph/terraform/checks/resource/azure/AKSRbacEnabled.py +32 -0
  1636. s1_cns_cli/s1graph/terraform/checks/resource/azure/AKSSecretStoreRotation.py +17 -0
  1637. s1_cns_cli/s1graph/terraform/checks/resource/azure/AKSUpgradeChannel.py +30 -0
  1638. s1_cns_cli/s1graph/terraform/checks/resource/azure/AKSUsesAzurePoliciesAddon.py +33 -0
  1639. s1_cns_cli/s1graph/terraform/checks/resource/azure/AKSUsesDiskEncryptionSet.py +22 -0
  1640. s1_cns_cli/s1graph/terraform/checks/resource/azure/APIManagementBackendHTTPS.py +29 -0
  1641. s1_cns_cli/s1graph/terraform/checks/resource/azure/APIManagementCertsEnforced.py +24 -0
  1642. s1_cns_cli/s1graph/terraform/checks/resource/azure/APIManagementMinTLS12.py +38 -0
  1643. s1_cns_cli/s1graph/terraform/checks/resource/azure/APIManagementPublicAccess.py +30 -0
  1644. s1_cns_cli/s1graph/terraform/checks/resource/azure/APIServicesUseVirtualNetwork.py +21 -0
  1645. s1_cns_cli/s1graph/terraform/checks/resource/azure/ActiveDirectoryUsedAuthenticationServiceFabric.py +21 -0
  1646. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppConfigEncryption.py +23 -0
  1647. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppConfigLocalAuth.py +28 -0
  1648. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppConfigPublicAccess.py +21 -0
  1649. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppConfigPurgeProtection.py +19 -0
  1650. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppConfigSku.py +22 -0
  1651. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppGWUseWAFMode.py +26 -0
  1652. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppGatewayWAFACLCVE202144228.py +45 -0
  1653. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceAlwaysOn.py +25 -0
  1654. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceAuthentication.py +34 -0
  1655. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceClientCertificate.py +21 -0
  1656. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceDetailedErrorMessagesEnabled.py +21 -0
  1657. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceDisallowCORS.py +21 -0
  1658. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceDotnetFrameworkVersion.py +21 -0
  1659. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceEnableFailedRequest.py +20 -0
  1660. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceFTPSState.py +23 -0
  1661. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceHTTPSOnly.py +17 -0
  1662. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceHttpLoggingEnabled.py +21 -0
  1663. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceHttps20Enabled.py +17 -0
  1664. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceIdentity.py +21 -0
  1665. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceIdentityProviderEnabled.py +21 -0
  1666. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceInstanceMinimum.py +31 -0
  1667. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceJavaVersion.py +21 -0
  1668. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceMinTLSVersion.py +24 -0
  1669. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServicePHPVersion.py +21 -0
  1670. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServicePythonVersion.py +21 -0
  1671. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceRemoteDebuggingNotEnabled.py +23 -0
  1672. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceSetHealthCheck.py +27 -0
  1673. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceSkuMinimum.py +30 -0
  1674. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceSlotDebugDisabled.py +21 -0
  1675. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceSlotHTTPSOnly.py +17 -0
  1676. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceSlotMinTLS.py +21 -0
  1677. s1_cns_cli/s1graph/terraform/checks/resource/azure/AppServiceUsedAzureFiles.py +20 -0
  1678. s1_cns_cli/s1graph/terraform/checks/resource/azure/AutomationEncrypted.py +22 -0
  1679. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureBatchAccountUsesKeyVaultEncryption.py +21 -0
  1680. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureContainerGroupDeployedIntoVirtualNetwork.py +25 -0
  1681. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureDataExplorerDoubleEncryptionEnabled.py +20 -0
  1682. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureDefenderOnAppServices.py +28 -0
  1683. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureDefenderOnContainerRegistry.py +28 -0
  1684. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureDefenderOnKeyVaults.py +28 -0
  1685. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureDefenderOnKubernetes.py +28 -0
  1686. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureDefenderOnServers.py +28 -0
  1687. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureDefenderOnSqlServerVMS.py +27 -0
  1688. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureDefenderOnSqlServers.py +28 -0
  1689. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureDefenderOnStorage.py +28 -0
  1690. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureFrontDoorEnablesWAF.py +21 -0
  1691. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureInstanceExtensions.py +22 -0
  1692. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureInstancePassword.py +37 -0
  1693. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureManagedDiskEncryption.py +27 -0
  1694. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureManagedDiskEncryptionSet.py +22 -0
  1695. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureScaleSetPassword.py +17 -0
  1696. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureSearchAllowedIPsNotGlobal.py +25 -0
  1697. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureSearchManagedIdentity.py +28 -0
  1698. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureSearchPublicNetworkAccessDisabled.py +20 -0
  1699. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureSearchSLAIndex.py +37 -0
  1700. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureSearchSLAQueryUpdates.py +36 -0
  1701. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureServiceFabricClusterProtectionLevel.py +30 -0
  1702. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureServicebusDoubleEncryptionEnabled.py +22 -0
  1703. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureServicebusHasCMK.py +23 -0
  1704. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureServicebusIdentityProviderEnabled.py +23 -0
  1705. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureServicebusLocalAuthDisabled.py +29 -0
  1706. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureServicebusMinTLSVersion.py +22 -0
  1707. s1_cns_cli/s1graph/terraform/checks/resource/azure/AzureServicebusPublicAccessDisabled.py +25 -0
  1708. s1_cns_cli/s1graph/terraform/checks/resource/azure/CDNDisableHttpEndpoints.py +31 -0
  1709. s1_cns_cli/s1graph/terraform/checks/resource/azure/CDNEnableHttpsEndpoints.py +32 -0
  1710. s1_cns_cli/s1graph/terraform/checks/resource/azure/CDNTLSProtocol12.py +38 -0
  1711. s1_cns_cli/s1graph/terraform/checks/resource/azure/CognitiveServicesDisablesPublicNetwork.py +20 -0
  1712. s1_cns_cli/s1graph/terraform/checks/resource/azure/CosmosDBAccountsRestrictedAccess.py +28 -0
  1713. s1_cns_cli/s1graph/terraform/checks/resource/azure/CosmosDBDisableAccessKeyWrite.py +22 -0
  1714. s1_cns_cli/s1graph/terraform/checks/resource/azure/CosmosDBDisablesPublicNetwork.py +20 -0
  1715. s1_cns_cli/s1graph/terraform/checks/resource/azure/CosmosDBHaveCMK.py +21 -0
  1716. s1_cns_cli/s1graph/terraform/checks/resource/azure/CosmosDBLocalAuthDisabled.py +36 -0
  1717. s1_cns_cli/s1graph/terraform/checks/resource/azure/CutsomRoleDefinitionSubscriptionOwner.py +24 -0
  1718. s1_cns_cli/s1graph/terraform/checks/resource/azure/DataExplorerSKUHasSLA.py +33 -0
  1719. s1_cns_cli/s1graph/terraform/checks/resource/azure/DataExplorerServiceIdentity.py +23 -0
  1720. s1_cns_cli/s1graph/terraform/checks/resource/azure/DataExplorerUsesDiskEncryption.py +17 -0
  1721. s1_cns_cli/s1graph/terraform/checks/resource/azure/DataFactoryNoPublicNetworkAccess.py +22 -0
  1722. s1_cns_cli/s1graph/terraform/checks/resource/azure/DataFactoryUsesGitRepository.py +28 -0
  1723. s1_cns_cli/s1graph/terraform/checks/resource/azure/DataLakeStoreEncryption.py +20 -0
  1724. s1_cns_cli/s1graph/terraform/checks/resource/azure/DatabricksWorkspaceIsNotPublic.py +22 -0
  1725. s1_cns_cli/s1graph/terraform/checks/resource/azure/EventgridDomainIdentityProviderEnabled.py +23 -0
  1726. s1_cns_cli/s1graph/terraform/checks/resource/azure/EventgridDomainLocalAuthentication.py +22 -0
  1727. s1_cns_cli/s1graph/terraform/checks/resource/azure/EventgridDomainNetworkAccess.py +20 -0
  1728. s1_cns_cli/s1graph/terraform/checks/resource/azure/EventgridTopicIdentityProviderEnabled.py +23 -0
  1729. s1_cns_cli/s1graph/terraform/checks/resource/azure/EventgridTopicLocalAuthentication.py +22 -0
  1730. s1_cns_cli/s1graph/terraform/checks/resource/azure/EventgridTopicNetworkAccess.py +22 -0
  1731. s1_cns_cli/s1graph/terraform/checks/resource/azure/FrontDoorWAFACLCVE202144228.py +48 -0
  1732. s1_cns_cli/s1graph/terraform/checks/resource/azure/FrontdoorUseWAFMode.py +26 -0
  1733. s1_cns_cli/s1graph/terraform/checks/resource/azure/FunctionAppDisallowCORS.py +20 -0
  1734. s1_cns_cli/s1graph/terraform/checks/resource/azure/FunctionAppEnableLogging.py +18 -0
  1735. s1_cns_cli/s1graph/terraform/checks/resource/azure/FunctionAppHttpVersionLatest.py +17 -0
  1736. s1_cns_cli/s1graph/terraform/checks/resource/azure/FunctionAppMinTLSVersion.py +24 -0
  1737. s1_cns_cli/s1graph/terraform/checks/resource/azure/FunctionAppsAccessibleOverHttps.py +17 -0
  1738. s1_cns_cli/s1graph/terraform/checks/resource/azure/FunctionAppsEnableAuthentication.py +18 -0
  1739. s1_cns_cli/s1graph/terraform/checks/resource/azure/IoTNoPublicNetworkAccess.py +21 -0
  1740. s1_cns_cli/s1graph/terraform/checks/resource/azure/KeyBackedByHSM.py +23 -0
  1741. s1_cns_cli/s1graph/terraform/checks/resource/azure/KeyExpirationDate.py +21 -0
  1742. s1_cns_cli/s1graph/terraform/checks/resource/azure/KeyVaultDisablesPublicNetworkAccess.py +45 -0
  1743. s1_cns_cli/s1graph/terraform/checks/resource/azure/KeyVaultEnablesFirewallRulesSettings.py +20 -0
  1744. s1_cns_cli/s1graph/terraform/checks/resource/azure/KeyVaultEnablesPurgeProtection.py +17 -0
  1745. s1_cns_cli/s1graph/terraform/checks/resource/azure/KeyVaultEnablesSoftDelete.py +19 -0
  1746. s1_cns_cli/s1graph/terraform/checks/resource/azure/KeyvaultRecoveryEnabled.py +24 -0
  1747. s1_cns_cli/s1graph/terraform/checks/resource/azure/LinuxVMUsesSSH.py +25 -0
  1748. s1_cns_cli/s1graph/terraform/checks/resource/azure/MLCCLADisabled.py +29 -0
  1749. s1_cns_cli/s1graph/terraform/checks/resource/azure/MLComputeClusterMinNodes.py +20 -0
  1750. s1_cns_cli/s1graph/terraform/checks/resource/azure/MLPublicAccess.py +32 -0
  1751. s1_cns_cli/s1graph/terraform/checks/resource/azure/MSSQLServerAuditPolicyLogMonitor.py +18 -0
  1752. s1_cns_cli/s1graph/terraform/checks/resource/azure/MSSQLServerMinTLSVersion.py +20 -0
  1753. s1_cns_cli/s1graph/terraform/checks/resource/azure/MariaDBGeoBackupEnabled.py +17 -0
  1754. s1_cns_cli/s1graph/terraform/checks/resource/azure/MariaDBPublicAccessDisabled.py +24 -0
  1755. s1_cns_cli/s1graph/terraform/checks/resource/azure/MariaDBSSLEnforcementEnabled.py +17 -0
  1756. s1_cns_cli/s1graph/terraform/checks/resource/azure/MonitorLogProfileCategories.py +26 -0
  1757. s1_cns_cli/s1graph/terraform/checks/resource/azure/MonitorLogProfileRetentionDays.py +35 -0
  1758. s1_cns_cli/s1graph/terraform/checks/resource/azure/MySQLEncryptionEnaled.py +17 -0
  1759. s1_cns_cli/s1graph/terraform/checks/resource/azure/MySQLGeoBackupEnabled.py +17 -0
  1760. s1_cns_cli/s1graph/terraform/checks/resource/azure/MySQLPublicAccessDisabled.py +25 -0
  1761. s1_cns_cli/s1graph/terraform/checks/resource/azure/MySQLServerMinTLSVersion.py +22 -0
  1762. s1_cns_cli/s1graph/terraform/checks/resource/azure/MySQLServerSSLEnforcementEnabled.py +17 -0
  1763. s1_cns_cli/s1graph/terraform/checks/resource/azure/MySQLTreatDetectionEnabled.py +17 -0
  1764. s1_cns_cli/s1graph/terraform/checks/resource/azure/NSGRuleHTTPAccessRestricted.py +13 -0
  1765. s1_cns_cli/s1graph/terraform/checks/resource/azure/NSGRulePortAccessRestricted.py +97 -0
  1766. s1_cns_cli/s1graph/terraform/checks/resource/azure/NSGRuleRDPAccessRestricted.py +13 -0
  1767. s1_cns_cli/s1graph/terraform/checks/resource/azure/NSGRuleSSHAccessRestricted.py +13 -0
  1768. s1_cns_cli/s1graph/terraform/checks/resource/azure/NSGRuleUDPAccessRestricted.py +40 -0
  1769. s1_cns_cli/s1graph/terraform/checks/resource/azure/NetworkInterfaceEnableIPForwarding.py +21 -0
  1770. s1_cns_cli/s1graph/terraform/checks/resource/azure/NetworkWatcherFlowLogPeriod.py +28 -0
  1771. s1_cns_cli/s1graph/terraform/checks/resource/azure/PostgreSQLEncryptionEnabled.py +17 -0
  1772. s1_cns_cli/s1graph/terraform/checks/resource/azure/PostgreSQLFlexiServerGeoBackupEnabled.py +17 -0
  1773. s1_cns_cli/s1graph/terraform/checks/resource/azure/PostgreSQLMinTLSVersion.py +21 -0
  1774. s1_cns_cli/s1graph/terraform/checks/resource/azure/PostgreSQLServerConnectionThrottlingEnabled.py +23 -0
  1775. s1_cns_cli/s1graph/terraform/checks/resource/azure/PostgreSQLServerLogCheckpointsEnabled.py +23 -0
  1776. s1_cns_cli/s1graph/terraform/checks/resource/azure/PostgreSQLServerLogConnectionsEnabled.py +23 -0
  1777. s1_cns_cli/s1graph/terraform/checks/resource/azure/PostgreSQLServerLogRetentionEnabled.py +23 -0
  1778. s1_cns_cli/s1graph/terraform/checks/resource/azure/PostgreSQLServerPublicAccessDisabled.py +21 -0
  1779. s1_cns_cli/s1graph/terraform/checks/resource/azure/PostgreSQLServerSSLEnforcementEnabled.py +17 -0
  1780. s1_cns_cli/s1graph/terraform/checks/resource/azure/PostgresSQLTreatDetectionEnabled.py +17 -0
  1781. s1_cns_cli/s1graph/terraform/checks/resource/azure/PostgressSQLGeoBackupEnabled.py +17 -0
  1782. s1_cns_cli/s1graph/terraform/checks/resource/azure/PubsubSKUSLA.py +24 -0
  1783. s1_cns_cli/s1graph/terraform/checks/resource/azure/PubsubSpecifyIdentity.py +23 -0
  1784. s1_cns_cli/s1graph/terraform/checks/resource/azure/RedisCacheEnableNonSSLPort.py +21 -0
  1785. s1_cns_cli/s1graph/terraform/checks/resource/azure/RedisCacheMinTLSVersion.py +21 -0
  1786. s1_cns_cli/s1graph/terraform/checks/resource/azure/RedisCachePublicNetworkAccessEnabled.py +20 -0
  1787. s1_cns_cli/s1graph/terraform/checks/resource/azure/SQLServerEmailAlertsEnabled.py +21 -0
  1788. s1_cns_cli/s1graph/terraform/checks/resource/azure/SQLServerEmailAlertsToAdminsEnabled.py +17 -0
  1789. s1_cns_cli/s1graph/terraform/checks/resource/azure/SQLServerNoPublicAccess.py +35 -0
  1790. s1_cns_cli/s1graph/terraform/checks/resource/azure/SQLServerPublicAccessDisabled.py +21 -0
  1791. s1_cns_cli/s1graph/terraform/checks/resource/azure/SQLServerThreatDetectionTypes.py +23 -0
  1792. s1_cns_cli/s1graph/terraform/checks/resource/azure/SecretContentType.py +21 -0
  1793. s1_cns_cli/s1graph/terraform/checks/resource/azure/SecretExpirationDate.py +21 -0
  1794. s1_cns_cli/s1graph/terraform/checks/resource/azure/SecurityCenterContactEmailAlert.py +17 -0
  1795. s1_cns_cli/s1graph/terraform/checks/resource/azure/SecurityCenterContactEmailAlertAdmins.py +17 -0
  1796. s1_cns_cli/s1graph/terraform/checks/resource/azure/SecurityCenterContactEmails.py +21 -0
  1797. s1_cns_cli/s1graph/terraform/checks/resource/azure/SecurityCenterContactPhone.py +21 -0
  1798. s1_cns_cli/s1graph/terraform/checks/resource/azure/SecurityCenterStandardPricing.py +20 -0
  1799. s1_cns_cli/s1graph/terraform/checks/resource/azure/SignalRSKUSLA.py +24 -0
  1800. s1_cns_cli/s1graph/terraform/checks/resource/azure/SpringCloudAPIPortalHTTPSOnly.py +17 -0
  1801. s1_cns_cli/s1graph/terraform/checks/resource/azure/SpringCloudAPIPortalPublicAccessIsDisabled.py +21 -0
  1802. s1_cns_cli/s1graph/terraform/checks/resource/azure/StorageAccountAzureServicesAccessEnabled.py +34 -0
  1803. s1_cns_cli/s1graph/terraform/checks/resource/azure/StorageAccountDefaultNetworkAccessDeny.py +40 -0
  1804. s1_cns_cli/s1graph/terraform/checks/resource/azure/StorageAccountDisablePublicAccess.py +30 -0
  1805. s1_cns_cli/s1graph/terraform/checks/resource/azure/StorageAccountLoggingQueueServiceEnabled.py +33 -0
  1806. s1_cns_cli/s1graph/terraform/checks/resource/azure/StorageAccountMinimumTlsVersion.py +29 -0
  1807. s1_cns_cli/s1graph/terraform/checks/resource/azure/StorageAccountName.py +42 -0
  1808. s1_cns_cli/s1graph/terraform/checks/resource/azure/StorageAccountsTransportEncryption.py +23 -0
  1809. s1_cns_cli/s1graph/terraform/checks/resource/azure/StorageAccountsUseReplication.py +24 -0
  1810. s1_cns_cli/s1graph/terraform/checks/resource/azure/StorageBlobRestrictPublicAccess.py +30 -0
  1811. s1_cns_cli/s1graph/terraform/checks/resource/azure/StorageBlobServiceContainerPrivateAccess.py +21 -0
  1812. s1_cns_cli/s1graph/terraform/checks/resource/azure/StorageSyncPublicAccessDisabled.py +21 -0
  1813. s1_cns_cli/s1graph/terraform/checks/resource/azure/SynapseWorkspaceEnablesDataExfilProtection.py +17 -0
  1814. s1_cns_cli/s1graph/terraform/checks/resource/azure/SynapseWorkspaceEnablesManagedVirtualNetworks.py +17 -0
  1815. s1_cns_cli/s1graph/terraform/checks/resource/azure/VMAgentIsInstalled.py +27 -0
  1816. s1_cns_cli/s1graph/terraform/checks/resource/azure/VMCredsInCustomData.py +34 -0
  1817. s1_cns_cli/s1graph/terraform/checks/resource/azure/VMDisablePasswordAuthentication.py +20 -0
  1818. s1_cns_cli/s1graph/terraform/checks/resource/azure/VMEncryptionAtHostEnabled.py +17 -0
  1819. s1_cns_cli/s1graph/terraform/checks/resource/azure/VMScaleSetsAutoOSImagePatchingEnabled.py +26 -0
  1820. s1_cns_cli/s1graph/terraform/checks/resource/azure/VMStorageOsDisk.py +28 -0
  1821. s1_cns_cli/s1graph/terraform/checks/resource/azure/VnetLocalDNS.py +45 -0
  1822. s1_cns_cli/s1graph/terraform/checks/resource/azure/VnetSingleDNSServer.py +28 -0
  1823. s1_cns_cli/s1graph/terraform/checks/resource/azure/WinVMAutomaticUpdates.py +21 -0
  1824. s1_cns_cli/s1graph/terraform/checks/resource/azure/WinVMEncryptionAtHost.py +20 -0
  1825. s1_cns_cli/s1graph/terraform/checks/resource/azure/__init__.py +5 -0
  1826. s1_cns_cli/s1graph/terraform/checks/resource/base_cloudsplaining_resource_iam_check.py +27 -0
  1827. s1_cns_cli/s1graph/terraform/checks/resource/base_registry.py +12 -0
  1828. s1_cns_cli/s1graph/terraform/checks/resource/base_resource_check.py +51 -0
  1829. s1_cns_cli/s1graph/terraform/checks/resource/base_resource_negative_value_check.py +90 -0
  1830. s1_cns_cli/s1graph/terraform/checks/resource/base_resource_value_check.py +114 -0
  1831. s1_cns_cli/s1graph/terraform/checks/resource/digitalocean/DropletSSHKeys.py +23 -0
  1832. s1_cns_cli/s1graph/terraform/checks/resource/digitalocean/FirewallIngressOpen.py +32 -0
  1833. s1_cns_cli/s1graph/terraform/checks/resource/digitalocean/SpacesBucketPublicRead.py +23 -0
  1834. s1_cns_cli/s1graph/terraform/checks/resource/digitalocean/SpacesBucketVersioning.py +19 -0
  1835. s1_cns_cli/s1graph/terraform/checks/resource/digitalocean/__init__.py +5 -0
  1836. s1_cns_cli/s1graph/terraform/checks/resource/gcp/AbsGoogleBasicRoles.py +17 -0
  1837. s1_cns_cli/s1graph/terraform/checks/resource/gcp/AbsGoogleComputeFirewallUnrestrictedIngress.py +46 -0
  1838. s1_cns_cli/s1graph/terraform/checks/resource/gcp/AbsGoogleIAMMemberDefaultServiceAccount.py +17 -0
  1839. s1_cns_cli/s1graph/terraform/checks/resource/gcp/AbsGoogleImpersonationRoles.py +30 -0
  1840. s1_cns_cli/s1graph/terraform/checks/resource/gcp/AbsGooglePostgresqlDatabaseFlags.py +37 -0
  1841. s1_cns_cli/s1graph/terraform/checks/resource/gcp/ArtifactRegistryPrivateRepo.py +45 -0
  1842. s1_cns_cli/s1graph/terraform/checks/resource/gcp/ArtifactRegsitryEncryptedWithCMK.py +21 -0
  1843. s1_cns_cli/s1graph/terraform/checks/resource/gcp/BigQueryDatasetEncryptedWithCMK.py +21 -0
  1844. s1_cns_cli/s1graph/terraform/checks/resource/gcp/BigQueryPrivateTable.py +45 -0
  1845. s1_cns_cli/s1graph/terraform/checks/resource/gcp/BigQueryTableEncryptedWithCMK.py +21 -0
  1846. s1_cns_cli/s1graph/terraform/checks/resource/gcp/BigTableInstanceEncryptedWithCMK.py +21 -0
  1847. s1_cns_cli/s1graph/terraform/checks/resource/gcp/CloudArmorWAFACLCVE202144228.py +39 -0
  1848. s1_cns_cli/s1graph/terraform/checks/resource/gcp/CloudBuildWorkersArePrivate.py +18 -0
  1849. s1_cns_cli/s1graph/terraform/checks/resource/gcp/CloudFunctionsShouldNotBePublic.py +30 -0
  1850. s1_cns_cli/s1graph/terraform/checks/resource/gcp/CloudPubSubEncryptedWithCMK.py +21 -0
  1851. s1_cns_cli/s1graph/terraform/checks/resource/gcp/CloudSqlMajorVersion.py +21 -0
  1852. s1_cns_cli/s1graph/terraform/checks/resource/gcp/CloudStorageLogging.py +32 -0
  1853. s1_cns_cli/s1graph/terraform/checks/resource/gcp/CloudStorageSelfLogging.py +30 -0
  1854. s1_cns_cli/s1graph/terraform/checks/resource/gcp/CloudStorageVersioningEnabled.py +17 -0
  1855. s1_cns_cli/s1graph/terraform/checks/resource/gcp/DataFusionPrivateInstance.py +17 -0
  1856. s1_cns_cli/s1graph/terraform/checks/resource/gcp/DataFusionStackdriverLogs.py +17 -0
  1857. s1_cns_cli/s1graph/terraform/checks/resource/gcp/DataFusionStackdriverMonitoring.py +17 -0
  1858. s1_cns_cli/s1graph/terraform/checks/resource/gcp/DataflowJobEncryptedWithCMK.py +21 -0
  1859. s1_cns_cli/s1graph/terraform/checks/resource/gcp/DataflowPrivateJob.py +23 -0
  1860. s1_cns_cli/s1graph/terraform/checks/resource/gcp/DataprocClusterEncryptedWithCMK.py +21 -0
  1861. s1_cns_cli/s1graph/terraform/checks/resource/gcp/DataprocPrivateCluster.py +45 -0
  1862. s1_cns_cli/s1graph/terraform/checks/resource/gcp/DataprocPublicIpCluster.py +17 -0
  1863. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GCPCloudRunPrivateService.py +45 -0
  1864. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEAliasIpEnabled.py +21 -0
  1865. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEBasicAuth.py +37 -0
  1866. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEBinaryAuthorization.py +29 -0
  1867. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEClientCertificateDisabled.py +26 -0
  1868. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEClusterLogging.py +30 -0
  1869. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEDisableLegacyAuth.py +20 -0
  1870. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEEnableShieldedNodes.py +24 -0
  1871. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEEnableVPCFlowLogs.py +22 -0
  1872. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEEnsureIntegrityMonitoring.py +32 -0
  1873. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEHasLabels.py +31 -0
  1874. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEKubernetesRBACGoogleGroups.py +21 -0
  1875. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKELegacyInstanceMetadataDisabled.py +36 -0
  1876. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEMasterAuthorizedNetworksEnabled.py +21 -0
  1877. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEMetadataServerIsEnabled.py +35 -0
  1878. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEMonitoringEnabled.py +20 -0
  1879. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKENetworkPolicyEnabled.py +38 -0
  1880. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKENodePoolAutoRepairEnabled.py +24 -0
  1881. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKENodePoolAutoUpgradeEnabled.py +23 -0
  1882. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEPodSecurityPolicyEnabled.py +17 -0
  1883. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEPrivateClusterConfig.py +23 -0
  1884. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEPrivateNodes.py +21 -0
  1885. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEPublicControlPlane.py +34 -0
  1886. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEReleaseChannel.py +21 -0
  1887. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKESecureBootforShieldedNodes.py +35 -0
  1888. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GKEUseCosImage.py +35 -0
  1889. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleBigQueryDatasetPublicACL.py +48 -0
  1890. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudDNSKeySpecsRSASHA1.py +36 -0
  1891. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudDNSSECEnabled.py +37 -0
  1892. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudMySqlLocalInfileOff.py +49 -0
  1893. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudPostgreSqlEnablePgaudit.py +24 -0
  1894. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudPostgreSqlLogCheckpoints.py +47 -0
  1895. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudPostgreSqlLogConnection.py +44 -0
  1896. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudPostgreSqlLogDisconnection.py +50 -0
  1897. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudPostgreSqlLogHostname.py +24 -0
  1898. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudPostgreSqlLogLockWaits.py +50 -0
  1899. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudPostgreSqlLogMinDuration.py +51 -0
  1900. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudPostgreSqlLogMinErrorStatement.py +34 -0
  1901. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudPostgreSqlLogMinMessage.py +52 -0
  1902. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudPostgreSqlLogStatement.py +28 -0
  1903. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudPostgreSqlLogTemp.py +50 -0
  1904. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudSqlBackupConfiguration.py +26 -0
  1905. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudSqlDatabasePubliclyAccessible.py +51 -0
  1906. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudSqlDatabaseRequireSsl.py +24 -0
  1907. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudSqlServerContainedDBAuthentication.py +50 -0
  1908. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudSqlServerCrossDBOwnershipChaining.py +51 -0
  1909. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleCloudSqlServerNoPublicIP.py +34 -0
  1910. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeBlockProjectSSH.py +30 -0
  1911. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeBootDiskEncryption.py +21 -0
  1912. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeDefaultServiceAccount.py +39 -0
  1913. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeDefaultServiceAccountFullAccess.py +54 -0
  1914. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeDiskEncryption.py +21 -0
  1915. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeExternalIP.py +32 -0
  1916. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeFirewallUnrestrictedIngress20.py +16 -0
  1917. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeFirewallUnrestrictedIngress21.py +16 -0
  1918. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeFirewallUnrestrictedIngress22.py +16 -0
  1919. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeFirewallUnrestrictedIngress3306.py +17 -0
  1920. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeFirewallUnrestrictedIngress3389.py +16 -0
  1921. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeFirewallUnrestrictedIngress80.py +16 -0
  1922. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeIPForward.py +39 -0
  1923. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeInstanceOSLogin.py +34 -0
  1924. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeProjectOSLogin.py +20 -0
  1925. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeSSLPolicy.py +39 -0
  1926. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeSerialPorts.py +33 -0
  1927. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleComputeShieldedVM.py +41 -0
  1928. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleFolderBasicRole.py +14 -0
  1929. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleFolderImpersonationRole.py +14 -0
  1930. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleFolderMemberDefaultServiceAccount.py +14 -0
  1931. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleKMSKeyIsPublic.py +57 -0
  1932. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleKMSPreventDestroy.py +23 -0
  1933. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleKMSRotationPeriod.py +38 -0
  1934. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleOrgBasicRole.py +14 -0
  1935. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleOrgImpersonationRole.py +14 -0
  1936. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleOrgMemberDefaultServiceAccount.py +14 -0
  1937. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleProjectAdminServiceAccount.py +28 -0
  1938. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleProjectBasicRole.py +14 -0
  1939. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleProjectDefaultNetwork.py +25 -0
  1940. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleProjectImpersonationRole.py +14 -0
  1941. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleProjectMemberDefaultServiceAccount.py +14 -0
  1942. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleRoleServiceAccountUser.py +25 -0
  1943. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleStorageBucketNotPublic.py +26 -0
  1944. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleStorageBucketUniformAccess.py +17 -0
  1945. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleStoragePublicAccessPrevention.py +22 -0
  1946. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleSubnetworkIPV6PrivateGoogleEnabled.py +33 -0
  1947. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleSubnetworkLoggingEnabled.py +31 -0
  1948. s1_cns_cli/s1graph/terraform/checks/resource/gcp/GoogleSubnetworkPrivateGoogleEnabled.py +28 -0
  1949. s1_cns_cli/s1graph/terraform/checks/resource/gcp/MemorystoreForRedisAuthEnabled.py +23 -0
  1950. s1_cns_cli/s1graph/terraform/checks/resource/gcp/MemorystoreForRedisInTransitEncryption.py +21 -0
  1951. s1_cns_cli/s1graph/terraform/checks/resource/gcp/PubSubPrivateTopic.py +45 -0
  1952. s1_cns_cli/s1graph/terraform/checks/resource/gcp/SpannerDatabaseEncryptedWithCMK.py +21 -0
  1953. s1_cns_cli/s1graph/terraform/checks/resource/gcp/VertexAIDatasetEncryptedWithCMK.py +21 -0
  1954. s1_cns_cli/s1graph/terraform/checks/resource/gcp/VertexAIMetadataStoreEncryptedWithCMK.py +21 -0
  1955. s1_cns_cli/s1graph/terraform/checks/resource/gcp/VertexAIPrivateInstance.py +23 -0
  1956. s1_cns_cli/s1graph/terraform/checks/resource/gcp/__init__.py +5 -0
  1957. s1_cns_cli/s1graph/terraform/checks/resource/github/BranchProtectionRequireSignedCommits.py +23 -0
  1958. s1_cns_cli/s1graph/terraform/checks/resource/github/BranchProtectionReviewNumTwo.py +30 -0
  1959. s1_cns_cli/s1graph/terraform/checks/resource/github/PrivateRepo.py +23 -0
  1960. s1_cns_cli/s1graph/terraform/checks/resource/github/RepositoryEnableVulnerabilityAlerts.py +33 -0
  1961. s1_cns_cli/s1graph/terraform/checks/resource/github/SecretsEncrypted.py +37 -0
  1962. s1_cns_cli/s1graph/terraform/checks/resource/github/WebhookInsecureSsl.py +23 -0
  1963. s1_cns_cli/s1graph/terraform/checks/resource/github/__init__.py +4 -0
  1964. s1_cns_cli/s1graph/terraform/checks/resource/gitlab/ForcePushDisabled.py +23 -0
  1965. s1_cns_cli/s1graph/terraform/checks/resource/gitlab/PreventSecretsEnabled.py +23 -0
  1966. s1_cns_cli/s1graph/terraform/checks/resource/gitlab/RejectUnsignedCommits.py +23 -0
  1967. s1_cns_cli/s1graph/terraform/checks/resource/gitlab/RequireTwoApprovalsToMerge.py +28 -0
  1968. s1_cns_cli/s1graph/terraform/checks/resource/gitlab/__init__.py +4 -0
  1969. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/AllowPrivilegeEscalation.py +55 -0
  1970. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/AllowPrivilegeEscalationPSP.py +32 -0
  1971. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/AllowedCapabilities.py +54 -0
  1972. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/AllowedCapabilitiesPSP.py +27 -0
  1973. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/AllowedCapabilitiesSysAdmin.py +51 -0
  1974. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/CPULimits.py +56 -0
  1975. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/CPURequests.py +52 -0
  1976. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/ContainerSecurityContext.py +45 -0
  1977. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/DefaultNamespace.py +40 -0
  1978. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/DefaultServiceAccount.py +34 -0
  1979. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/DefaultServiceAccountBinding.py +26 -0
  1980. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/DockerSocketVolume.py +57 -0
  1981. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/DropCapabilities.py +68 -0
  1982. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/DropCapabilitiesPSP.py +33 -0
  1983. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/HostPort.py +58 -0
  1984. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/ImageDigest.py +51 -0
  1985. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/ImagePullPolicyAlways.py +58 -0
  1986. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/ImageTagFixed.py +55 -0
  1987. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/LivenessProbe.py +52 -0
  1988. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/MemoryLimits.py +53 -0
  1989. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/MemoryRequests.py +52 -0
  1990. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/MinimiseCapabilities.py +54 -0
  1991. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/MinimiseCapabilitiesPSP.py +32 -0
  1992. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/PodSecurityContext.py +57 -0
  1993. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/PrivilegedContainer.py +47 -0
  1994. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/PrivilegedContainerPSP.py +28 -0
  1995. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/ReadinessProbe.py +56 -0
  1996. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/ReadonlyRootFilesystem.py +41 -0
  1997. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/RootContainerPSP.py +35 -0
  1998. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/SeccompPSP.py +31 -0
  1999. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/Secrets.py +61 -0
  2000. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/ShareHostIPC.py +28 -0
  2001. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/ShareHostIPCPSP.py +25 -0
  2002. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/ShareHostPID.py +29 -0
  2003. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/ShareHostPIDPSP.py +26 -0
  2004. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/SharedHostNetworkNamespace.py +29 -0
  2005. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/SharedHostNetworkNamespacePSP.py +26 -0
  2006. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/Tiller.py +77 -0
  2007. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/TillerService.py +51 -0
  2008. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/WildcardRoles.py +34 -0
  2009. s1_cns_cli/s1graph/terraform/checks/resource/kubernetes/__init__.py +4 -0
  2010. s1_cns_cli/s1graph/terraform/checks/resource/linode/__init__.py +4 -0
  2011. s1_cns_cli/s1graph/terraform/checks/resource/linode/authorized_keys.py +23 -0
  2012. s1_cns_cli/s1graph/terraform/checks/resource/linode/firewall_inbound_policy.py +22 -0
  2013. s1_cns_cli/s1graph/terraform/checks/resource/linode/firewall_outbound_policy.py +22 -0
  2014. s1_cns_cli/s1graph/terraform/checks/resource/linode/user_email_set.py +23 -0
  2015. s1_cns_cli/s1graph/terraform/checks/resource/linode/user_username_set.py +23 -0
  2016. s1_cns_cli/s1graph/terraform/checks/resource/ncp/AccessControlGroupInboundRule.py +58 -0
  2017. s1_cns_cli/s1graph/terraform/checks/resource/ncp/AccessControlGroupInboundRulePort22.py +9 -0
  2018. s1_cns_cli/s1graph/terraform/checks/resource/ncp/AccessControlGroupInboundRulePort3389.py +9 -0
  2019. s1_cns_cli/s1graph/terraform/checks/resource/ncp/AccessControlGroupInboundRulePort80.py +9 -0
  2020. s1_cns_cli/s1graph/terraform/checks/resource/ncp/AccessControlGroupOutboundRule.py +25 -0
  2021. s1_cns_cli/s1graph/terraform/checks/resource/ncp/AccessControlGroupRuleDescription.py +47 -0
  2022. s1_cns_cli/s1graph/terraform/checks/resource/ncp/LBListenerUsesSecureProtocols.py +24 -0
  2023. s1_cns_cli/s1graph/terraform/checks/resource/ncp/LBListenerUsingHTTPS.py +23 -0
  2024. s1_cns_cli/s1graph/terraform/checks/resource/ncp/LBNetworkPrivate.py +24 -0
  2025. s1_cns_cli/s1graph/terraform/checks/resource/ncp/LBTargetGroupDefinesHealthCheck.py +28 -0
  2026. s1_cns_cli/s1graph/terraform/checks/resource/ncp/LBTargetGroupUsingHTTPS.py +23 -0
  2027. s1_cns_cli/s1graph/terraform/checks/resource/ncp/LaunchConfigurationEncryptionVPC.py +17 -0
  2028. s1_cns_cli/s1graph/terraform/checks/resource/ncp/NACLInbound20.py +9 -0
  2029. s1_cns_cli/s1graph/terraform/checks/resource/ncp/NACLInbound21.py +9 -0
  2030. s1_cns_cli/s1graph/terraform/checks/resource/ncp/NACLInbound22.py +9 -0
  2031. s1_cns_cli/s1graph/terraform/checks/resource/ncp/NACLInbound3389.py +9 -0
  2032. s1_cns_cli/s1graph/terraform/checks/resource/ncp/NACLInboundCheck.py +27 -0
  2033. s1_cns_cli/s1graph/terraform/checks/resource/ncp/NACLPortCheck.py +24 -0
  2034. s1_cns_cli/s1graph/terraform/checks/resource/ncp/NASEncryptionEnabled.py +17 -0
  2035. s1_cns_cli/s1graph/terraform/checks/resource/ncp/NKSControlPlaneLogging.py +17 -0
  2036. s1_cns_cli/s1graph/terraform/checks/resource/ncp/NKSPublicAccess.py +20 -0
  2037. s1_cns_cli/s1graph/terraform/checks/resource/ncp/RouteTableNATGatewayDefault.py +24 -0
  2038. s1_cns_cli/s1graph/terraform/checks/resource/ncp/ServerEncryptionVPC.py +17 -0
  2039. s1_cns_cli/s1graph/terraform/checks/resource/ncp/ServerPublicIP.py +21 -0
  2040. s1_cns_cli/s1graph/terraform/checks/resource/ncp/__init__.py +4 -0
  2041. s1_cns_cli/s1graph/terraform/checks/resource/oci/AbsSecurityGroupUnrestrictedIngress.py +39 -0
  2042. s1_cns_cli/s1graph/terraform/checks/resource/oci/AbsSecurityListUnrestrictedIngress.py +45 -0
  2043. s1_cns_cli/s1graph/terraform/checks/resource/oci/FileSystemEncryption.py +21 -0
  2044. s1_cns_cli/s1graph/terraform/checks/resource/oci/IAMPasswordLength.py +31 -0
  2045. s1_cns_cli/s1graph/terraform/checks/resource/oci/IAMPasswordPolicyLowerCase.py +20 -0
  2046. s1_cns_cli/s1graph/terraform/checks/resource/oci/IAMPasswordPolicyNumeric.py +20 -0
  2047. s1_cns_cli/s1graph/terraform/checks/resource/oci/IAMPasswordPolicySpecialCharacters.py +20 -0
  2048. s1_cns_cli/s1graph/terraform/checks/resource/oci/IAMPasswordPolicyUpperCase.py +20 -0
  2049. s1_cns_cli/s1graph/terraform/checks/resource/oci/InstanceBootVolumeIntransitEncryption.py +20 -0
  2050. s1_cns_cli/s1graph/terraform/checks/resource/oci/InstanceMetadataServiceEnabled.py +22 -0
  2051. s1_cns_cli/s1graph/terraform/checks/resource/oci/InstanceMonitoringEnabled.py +24 -0
  2052. s1_cns_cli/s1graph/terraform/checks/resource/oci/ObjectStorageEmitEvents.py +20 -0
  2053. s1_cns_cli/s1graph/terraform/checks/resource/oci/ObjectStorageEncryption.py +21 -0
  2054. s1_cns_cli/s1graph/terraform/checks/resource/oci/ObjectStoragePublic.py +20 -0
  2055. s1_cns_cli/s1graph/terraform/checks/resource/oci/ObjectStorageVersioning.py +20 -0
  2056. s1_cns_cli/s1graph/terraform/checks/resource/oci/SecurityGroupUnrestrictedIngress22.py +10 -0
  2057. s1_cns_cli/s1graph/terraform/checks/resource/oci/SecurityGroupsIngressStatelessSecurityRules.py +29 -0
  2058. s1_cns_cli/s1graph/terraform/checks/resource/oci/SecurityListIngress.py +21 -0
  2059. s1_cns_cli/s1graph/terraform/checks/resource/oci/SecurityListIngressStateless.py +34 -0
  2060. s1_cns_cli/s1graph/terraform/checks/resource/oci/SecurityListUnrestrictedIngress22.py +9 -0
  2061. s1_cns_cli/s1graph/terraform/checks/resource/oci/SecurityListUnrestrictedIngress3389.py +9 -0
  2062. s1_cns_cli/s1graph/terraform/checks/resource/oci/StorageBlockBackupEnabled.py +22 -0
  2063. s1_cns_cli/s1graph/terraform/checks/resource/oci/StorageBlockEncryption.py +23 -0
  2064. s1_cns_cli/s1graph/terraform/checks/resource/oci/__init__.py +4 -0
  2065. s1_cns_cli/s1graph/terraform/checks/resource/openstack/AbsSecurityGroupUnrestrictedIngress.py +77 -0
  2066. s1_cns_cli/s1graph/terraform/checks/resource/openstack/ComputeInstanceAdminPassword.py +32 -0
  2067. s1_cns_cli/s1graph/terraform/checks/resource/openstack/FirewallRuleSetDestinationIP.py +28 -0
  2068. s1_cns_cli/s1graph/terraform/checks/resource/openstack/SecurityGroupUnrestrictedIngress22.py +9 -0
  2069. s1_cns_cli/s1graph/terraform/checks/resource/openstack/SecurityGroupUnrestrictedIngress3389.py +9 -0
  2070. s1_cns_cli/s1graph/terraform/checks/resource/openstack/__init__.py +5 -0
  2071. s1_cns_cli/s1graph/terraform/checks/resource/panos/InterfaceMgmtProfileNoHTTP.py +20 -0
  2072. s1_cns_cli/s1graph/terraform/checks/resource/panos/InterfaceMgmtProfileNoTelnet.py +20 -0
  2073. s1_cns_cli/s1graph/terraform/checks/resource/panos/NetworkIPsecAlgorithms.py +43 -0
  2074. s1_cns_cli/s1graph/terraform/checks/resource/panos/NetworkIPsecAuthAlgorithms.py +43 -0
  2075. s1_cns_cli/s1graph/terraform/checks/resource/panos/NetworkIPsecProtocols.py +20 -0
  2076. s1_cns_cli/s1graph/terraform/checks/resource/panos/PolicyDescription.py +50 -0
  2077. s1_cns_cli/s1graph/terraform/checks/resource/panos/PolicyLogForwarding.py +50 -0
  2078. s1_cns_cli/s1graph/terraform/checks/resource/panos/PolicyLoggingEnabled.py +49 -0
  2079. s1_cns_cli/s1graph/terraform/checks/resource/panos/PolicyNoApplicationAny.py +51 -0
  2080. s1_cns_cli/s1graph/terraform/checks/resource/panos/PolicyNoDSRI.py +48 -0
  2081. s1_cns_cli/s1graph/terraform/checks/resource/panos/PolicyNoServiceAny.py +51 -0
  2082. s1_cns_cli/s1graph/terraform/checks/resource/panos/PolicyNoSrcAnyDstAny.py +70 -0
  2083. s1_cns_cli/s1graph/terraform/checks/resource/panos/ZoneProtectionProfile.py +43 -0
  2084. s1_cns_cli/s1graph/terraform/checks/resource/panos/ZoneUserIDIncludeACL.py +55 -0
  2085. s1_cns_cli/s1graph/terraform/checks/resource/panos/__init__.py +5 -0
  2086. s1_cns_cli/s1graph/terraform/checks/resource/registry.py +4 -0
  2087. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/ComputeInstanceGroupPublicIP.py +29 -0
  2088. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/ComputeInstanceGroupSecurityGroup.py +23 -0
  2089. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/ComputeVMPublicIP.py +28 -0
  2090. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/ComputeVMSecurityGroup.py +23 -0
  2091. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/ComputeVMSerialConsole.py +28 -0
  2092. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/IAMCloudElevatedMembers.py +26 -0
  2093. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/IAMFolderElevatedMembers.py +26 -0
  2094. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/IAMOrganizationElevatedMembers.py +29 -0
  2095. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/IAMPassportAccountUsage.py +57 -0
  2096. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/K8SAutoUpgrade.py +28 -0
  2097. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/K8SEtcdKMSEncryption.py +23 -0
  2098. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/K8SNetworkPolicy.py +23 -0
  2099. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/K8SNodeGroupAutoUpgrade.py +29 -0
  2100. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/K8SNodeGroupPublicIP.py +28 -0
  2101. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/K8SNodeGroupSecurityGroup.py +23 -0
  2102. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/K8SPublicIP.py +29 -0
  2103. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/K8SSecurityGroup.py +23 -0
  2104. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/KMSSymmetricKeyRotation.py +23 -0
  2105. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/MDBPublicIP.py +41 -0
  2106. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/MDBSecurityGroup.py +33 -0
  2107. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/ObjectStorageBucketEncryption.py +23 -0
  2108. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/ObjectStorageBucketPublicAccess.py +34 -0
  2109. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/VPCSecurityGroupAllowAll.py +38 -0
  2110. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/VPCSecurityGroupRuleAllowAll.py +38 -0
  2111. s1_cns_cli/s1graph/terraform/checks/resource/yandexcloud/__init__.py +4 -0
  2112. s1_cns_cli/s1graph/terraform/checks/utils/__init__.py +0 -0
  2113. s1_cns_cli/s1graph/terraform/checks/utils/base_cloudsplaining_iam_scanner.py +53 -0
  2114. s1_cns_cli/s1graph/terraform/checks/utils/consts.py +0 -0
  2115. s1_cns_cli/s1graph/terraform/checks/utils/dependency_path_handler.py +13 -0
  2116. s1_cns_cli/s1graph/terraform/checks/utils/iam_terraform_document_to_policy_converter.py +25 -0
  2117. s1_cns_cli/s1graph/terraform/context_parsers/__init__.py +1 -0
  2118. s1_cns_cli/s1graph/terraform/context_parsers/base_parser.py +186 -0
  2119. s1_cns_cli/s1graph/terraform/context_parsers/parsers/__init__.py +4 -0
  2120. s1_cns_cli/s1graph/terraform/context_parsers/parsers/data_context_parser.py +32 -0
  2121. s1_cns_cli/s1graph/terraform/context_parsers/parsers/locals_context_parser.py +40 -0
  2122. s1_cns_cli/s1graph/terraform/context_parsers/parsers/module_context_parser.py +29 -0
  2123. s1_cns_cli/s1graph/terraform/context_parsers/parsers/provider_context_parser.py +59 -0
  2124. s1_cns_cli/s1graph/terraform/context_parsers/parsers/resource_context_parser.py +36 -0
  2125. s1_cns_cli/s1graph/terraform/context_parsers/parsers/variable_context_parser.py +42 -0
  2126. s1_cns_cli/s1graph/terraform/context_parsers/registry.py +48 -0
  2127. s1_cns_cli/s1graph/terraform/context_parsers/tf_plan/__init__.py +34 -0
  2128. s1_cns_cli/s1graph/terraform/deep_analysis_plan_graph_manager.py +50 -0
  2129. s1_cns_cli/s1graph/terraform/evaluation/__init__.py +0 -0
  2130. s1_cns_cli/s1graph/terraform/evaluation/base_variable_evaluation.py +71 -0
  2131. s1_cns_cli/s1graph/terraform/graph_builder/EncryptionCalculation.md +45 -0
  2132. s1_cns_cli/s1graph/terraform/graph_builder/__init__.py +0 -0
  2133. s1_cns_cli/s1graph/terraform/graph_builder/foreach/__init__.py +0 -0
  2134. s1_cns_cli/s1graph/terraform/graph_builder/foreach/abstract_handler.py +248 -0
  2135. s1_cns_cli/s1graph/terraform/graph_builder/foreach/builder.py +25 -0
  2136. s1_cns_cli/s1graph/terraform/graph_builder/foreach/consts.py +14 -0
  2137. s1_cns_cli/s1graph/terraform/graph_builder/foreach/module_handler.py +271 -0
  2138. s1_cns_cli/s1graph/terraform/graph_builder/foreach/resource_handler.py +110 -0
  2139. s1_cns_cli/s1graph/terraform/graph_builder/graph_components/__init__.py +0 -0
  2140. s1_cns_cli/s1graph/terraform/graph_builder/graph_components/attribute_names.py +0 -0
  2141. s1_cns_cli/s1graph/terraform/graph_builder/graph_components/block_types.py +15 -0
  2142. s1_cns_cli/s1graph/terraform/graph_builder/graph_components/blocks.py +181 -0
  2143. s1_cns_cli/s1graph/terraform/graph_builder/graph_components/generic_resource_encryption.py +122 -0
  2144. s1_cns_cli/s1graph/terraform/graph_builder/graph_components/module.py +271 -0
  2145. s1_cns_cli/s1graph/terraform/graph_builder/graph_to_tf_definitions.py +43 -0
  2146. s1_cns_cli/s1graph/terraform/graph_builder/local_graph.py +710 -0
  2147. s1_cns_cli/s1graph/terraform/graph_builder/utils.py +300 -0
  2148. s1_cns_cli/s1graph/terraform/graph_builder/variable_rendering/__init__.py +0 -0
  2149. s1_cns_cli/s1graph/terraform/graph_builder/variable_rendering/evaluate_terraform.py +583 -0
  2150. s1_cns_cli/s1graph/terraform/graph_builder/variable_rendering/renderer.py +588 -0
  2151. s1_cns_cli/s1graph/terraform/graph_builder/variable_rendering/safe_eval_functions.py +344 -0
  2152. s1_cns_cli/s1graph/terraform/graph_builder/variable_rendering/vertex_reference.py +17 -0
  2153. s1_cns_cli/s1graph/terraform/graph_manager.py +63 -0
  2154. s1_cns_cli/s1graph/terraform/image_referencer/__init__.py +0 -0
  2155. s1_cns_cli/s1graph/terraform/image_referencer/base_provider.py +57 -0
  2156. s1_cns_cli/s1graph/terraform/image_referencer/manager.py +27 -0
  2157. s1_cns_cli/s1graph/terraform/image_referencer/provider/__init__.py +0 -0
  2158. s1_cns_cli/s1graph/terraform/image_referencer/provider/aws.py +97 -0
  2159. s1_cns_cli/s1graph/terraform/image_referencer/provider/azure.py +111 -0
  2160. s1_cns_cli/s1graph/terraform/image_referencer/provider/gcp.py +70 -0
  2161. s1_cns_cli/s1graph/terraform/module_loading/__init__.py +8 -0
  2162. s1_cns_cli/s1graph/terraform/module_loading/content.py +39 -0
  2163. s1_cns_cli/s1graph/terraform/module_loading/loader.py +74 -0
  2164. s1_cns_cli/s1graph/terraform/module_loading/loaders/__init__.py +5 -0
  2165. s1_cns_cli/s1graph/terraform/module_loading/loaders/bitbucket_access_token_loader.py +19 -0
  2166. s1_cns_cli/s1graph/terraform/module_loading/loaders/bitbucket_loader.py +10 -0
  2167. s1_cns_cli/s1graph/terraform/module_loading/loaders/git_loader.py +145 -0
  2168. s1_cns_cli/s1graph/terraform/module_loading/loaders/github_access_token_loader.py +38 -0
  2169. s1_cns_cli/s1graph/terraform/module_loading/loaders/github_loader.py +21 -0
  2170. s1_cns_cli/s1graph/terraform/module_loading/loaders/local_path_loader.py +49 -0
  2171. s1_cns_cli/s1graph/terraform/module_loading/loaders/registry_loader.py +210 -0
  2172. s1_cns_cli/s1graph/terraform/module_loading/loaders/versions_parser.py +68 -0
  2173. s1_cns_cli/s1graph/terraform/module_loading/module_finder.py +100 -0
  2174. s1_cns_cli/s1graph/terraform/module_loading/module_params.py +26 -0
  2175. s1_cns_cli/s1graph/terraform/module_loading/registry.py +106 -0
  2176. s1_cns_cli/s1graph/terraform/modules/__init__.py +2 -0
  2177. s1_cns_cli/s1graph/terraform/modules/module_objects.py +94 -0
  2178. s1_cns_cli/s1graph/terraform/modules/module_utils.py +288 -0
  2179. s1_cns_cli/s1graph/terraform/parser.py +650 -0
  2180. s1_cns_cli/s1graph/terraform/parser_functions.py +207 -0
  2181. s1_cns_cli/s1graph/terraform/plan_parser.py +330 -0
  2182. s1_cns_cli/s1graph/terraform/plan_runner.py +292 -0
  2183. s1_cns_cli/s1graph/terraform/plan_utils.py +137 -0
  2184. s1_cns_cli/s1graph/terraform/runner.py +694 -0
  2185. s1_cns_cli/s1graph/terraform/tag_providers/__init__.py +21 -0
  2186. s1_cns_cli/s1graph/terraform/tag_providers/aws.py +7 -0
  2187. s1_cns_cli/s1graph/terraform/tag_providers/azure.py +7 -0
  2188. s1_cns_cli/s1graph/terraform/tag_providers/gcp.py +7 -0
  2189. s1_cns_cli/s1graph/terraform/tf_parser.py +563 -0
  2190. s1_cns_cli/s1graph/terraform_json/__init__.py +0 -0
  2191. s1_cns_cli/s1graph/terraform_json/parser.py +199 -0
  2192. s1_cns_cli/s1graph/terraform_json/runner.py +230 -0
  2193. s1_cns_cli/s1graph/terraform_json/utils.py +67 -0
  2194. s1_cns_cli/s1graph/version.py +1 -0
  2195. s1_cns_cli/s1graph/yaml_doc/__init__.py +0 -0
  2196. s1_cns_cli/s1graph/yaml_doc/base_registry.py +349 -0
  2197. s1_cns_cli/s1graph/yaml_doc/base_yaml_check.py +28 -0
  2198. s1_cns_cli/s1graph/yaml_doc/enums.py +8 -0
  2199. s1_cns_cli/s1graph/yaml_doc/registry.py +4 -0
  2200. s1_cns_cli/s1graph/yaml_doc/runner.py +128 -0
  2201. s1_cns_cli/sentry.py +39 -0
  2202. s1_cns_cli/version.py +2 -0
  2203. s1_shift_left_cli-0.4.0.dist-info/LICENSE +5 -0
  2204. s1_shift_left_cli-0.4.0.dist-info/METADATA +113 -0
  2205. s1_shift_left_cli-0.4.0.dist-info/RECORD +2207 -0
  2206. s1_shift_left_cli-0.4.0.dist-info/WHEEL +4 -0
  2207. s1_shift_left_cli-0.4.0.dist-info/entry_points.txt +5 -0
@@ -0,0 +1,210 @@
1
+ import os
2
+ import logging
3
+ from http import HTTPStatus
4
+ from typing import List, Dict
5
+
6
+ import requests
7
+ from requests.exceptions import HTTPError
8
+ from urllib.parse import urlparse
9
+
10
+ from s1_cns_cli.s1graph.common.models.consts import TFC_HOST_NAME
11
+ from s1_cns_cli.s1graph.common.goget.registry.get_registry import RegistryGetter
12
+ from s1_cns_cli.s1graph.common.util.http_utils import DEFAULT_TIMEOUT
13
+ from s1_cns_cli.s1graph.terraform.module_loading.content import ModuleContent
14
+ from s1_cns_cli.s1graph.terraform.module_loading.loader import ModuleLoader
15
+ from s1_cns_cli.s1graph.terraform.module_loading.loaders.versions_parser import (
16
+ order_versions_in_descending_order,
17
+ get_version_constraints
18
+ )
19
+ from s1_cns_cli.s1graph.terraform.module_loading.module_params import ModuleParams
20
+
21
+ # https://developer.hashicorp.com/terraform/language/modules/sources#fetching-archives-over-http
22
+ MODULE_ARCHIVE_EXTENSIONS = ["zip", "tar.bz2", "tar.gz", "tgz", "tar.xz", "txz"]
23
+
24
+
25
+ class RegistryLoader(ModuleLoader):
26
+ modules_versions_cache: Dict[str, List[str]] = {} # noqa: CCE003 # public data
27
+
28
+ def __init__(self) -> None:
29
+ super().__init__()
30
+
31
+ def discover(self, module_params):
32
+ module_params.tf_host_name = os.getenv("TF_HOST_NAME", TFC_HOST_NAME)
33
+ module_params.token = os.getenv("TF_REGISTRY_TOKEN", "")
34
+ tfc_token = os.getenv("TFC_TOKEN")
35
+ if tfc_token:
36
+ self.logger.warn("Environment variable TFC_TOKEN will be deprecated in the future. Please use TF_REGISTRY_TOKEN instead.")
37
+ module_params.token = tfc_token
38
+
39
+ def _is_matching_loader(self, module_params: ModuleParams) -> bool:
40
+ # https://developer.hashicorp.com/terraform/language/modules/sources#github
41
+ if module_params.module_source.startswith(("github.com", "bitbucket.org", "git::", "git@github.com")):
42
+ return False
43
+ self._process_inner_registry_module(module_params)
44
+ # determine tf api endpoints
45
+ self._determine_tf_api_endpoints(module_params)
46
+ # If versions for a module are cached, determine the best version and return True.
47
+ # If versions are not cached, get versions, then determine the best version and return True.
48
+ # Best version needs to be determined here for setting most accurate dest_dir.
49
+ if module_params.tf_modules_versions_endpoint in RegistryLoader.modules_versions_cache.keys():
50
+ module_params.best_version = self._find_best_version(module_params)
51
+ return True
52
+ if not self._cache_available_versions(module_params):
53
+ return False
54
+ module_params.best_version = self._find_best_version(module_params)
55
+ if not module_params.inner_module:
56
+ module_params.dest_dir = os.path.join(module_params.root_dir, module_params.external_modules_folder_name,
57
+ module_params.tf_host_name, *module_params.module_source.split("/"),
58
+ module_params.best_version)
59
+ if os.path.exists(module_params.dest_dir):
60
+ return True
61
+ # verify cache again after refresh
62
+ if module_params.tf_modules_versions_endpoint in RegistryLoader.modules_versions_cache.keys():
63
+ return True
64
+ return False
65
+
66
+ def _load_module(self, module_params: ModuleParams) -> ModuleContent:
67
+ if module_params.best_version:
68
+ best_version = module_params.best_version
69
+ else:
70
+ if self._cache_available_versions(module_params):
71
+ module_params.best_version = self._find_best_version(module_params)
72
+ if os.path.exists(module_params.dest_dir):
73
+ return ModuleContent(dir=module_params.dest_dir)
74
+
75
+ request_download_url = "/".join((module_params.tf_modules_endpoint, module_params.module_source, best_version, "download"))
76
+ logging.debug(f"Best version for {module_params.module_source} is {best_version} based on the version constraint {module_params.version}.")
77
+ logging.debug(f"Module download url: {request_download_url}")
78
+ try:
79
+ response = requests.get(
80
+ url=request_download_url,
81
+ headers={"Authorization": f"Bearer {module_params.token}"} if module_params.token else None,
82
+ timeout=DEFAULT_TIMEOUT
83
+ )
84
+ response.raise_for_status()
85
+ except HTTPError as e:
86
+ self.logger.warning(e)
87
+ if response.status_code != HTTPStatus.OK and response.status_code != HTTPStatus.NO_CONTENT:
88
+ return ModuleContent(dir=None)
89
+ # https://www.terraform.io/registry/api-docs#download-source-code-for-a-specific-module-version
90
+ module_download_url = response.headers.get('X-Terraform-Get', '')
91
+ self.logger.debug(f"X-Terraform-Get: {module_download_url}")
92
+ module_download_url = self._normalize_module_download_url(module_params, module_download_url)
93
+ self.logger.debug(f"Cloning module from normalized url {module_download_url}")
94
+ if self._is_download_url_archive(module_download_url):
95
+ try:
96
+ registry_getter = RegistryGetter(module_download_url)
97
+ registry_getter.temp_dir = module_params.dest_dir
98
+ registry_getter.do_get()
99
+ return_dir = module_params.dest_dir
100
+ except Exception as e:
101
+ str_e = str(e)
102
+ if 'File exists' not in str_e and 'already exists and is not an empty directory' not in str_e:
103
+ self.logger.error(f"failed to get {module_params.module_source} because of {e}")
104
+ return ModuleContent(dir=None, failed_url=module_params.module_source)
105
+ if module_params.inner_module:
106
+ return_dir = os.path.join(module_params.dest_dir, module_params.inner_module)
107
+ return ModuleContent(dir=return_dir)
108
+ else:
109
+ return ModuleContent(dir=None, next_url=response.headers.get("X-Terraform-Get", ""))
110
+
111
+ def _find_module_path(self, module_params: ModuleParams) -> str:
112
+ # to determine the exact path here would be almost a duplicate of the git_loader functionality
113
+ return ""
114
+
115
+ def _find_best_version(self, module_params: ModuleParams) -> str:
116
+ versions_by_size = RegistryLoader.modules_versions_cache.get(module_params.tf_modules_versions_endpoint, [])
117
+ if module_params.version == "latest":
118
+ module_params.version = versions_by_size[0]
119
+ version_constraints = get_version_constraints(module_params.version)
120
+ num_of_matches = 0
121
+ for version in versions_by_size:
122
+ for version_constraint in version_constraints:
123
+ if not version_constraint.versions_matching(version):
124
+ break
125
+ else:
126
+ num_of_matches += 1
127
+ if num_of_matches == len(version_constraints):
128
+ return version
129
+ else:
130
+ num_of_matches = 0
131
+ return "latest"
132
+
133
+ def _cache_available_versions(self, module_params: ModuleParams) -> bool:
134
+ # Get all available versions for a module in the registry and cache them.
135
+ # Returns False on failure.
136
+ try:
137
+ response = requests.get(
138
+ url=module_params.tf_modules_versions_endpoint,
139
+ headers={"Authorization": f"Bearer {module_params.token}"} if module_params.token else None,
140
+ timeout=DEFAULT_TIMEOUT,
141
+ )
142
+ response.raise_for_status()
143
+ available_versions = [
144
+ v.get("version") for v in response.json().get("modules", [{}])[0].get("versions", {})
145
+ ]
146
+ RegistryLoader.modules_versions_cache[module_params.tf_modules_versions_endpoint] = order_versions_in_descending_order(
147
+ available_versions)
148
+ return True
149
+ except HTTPError as e:
150
+ self.logger.debug(e)
151
+ return False
152
+
153
+ def _process_inner_registry_module(self, module_params: ModuleParams) -> None:
154
+ # Check if the source has '//' in it. If it does, it indicates a reference for an inner module.
155
+ # Example: "terraform-aws-modules/security-group/aws//modules/http-80" =>
156
+ # module_source = terraform-aws-modules/security-group/aws
157
+ # dest_dir = modules/http-80
158
+ module_source_components = module_params.module_source.split("//")
159
+ if len(module_source_components) > 1:
160
+ module_params.module_source = module_source_components[0]
161
+ module_params.dest_dir = module_params.dest_dir.split("//")[0]
162
+ module_params.inner_module = module_source_components[1]
163
+
164
+ def _determine_tf_api_endpoints(self, module_params: ModuleParams) -> None:
165
+ """
166
+ Determines terraform registry endpoints - tf_host_name, tf_modules_endpoint, tf_modules_versions_endpoint
167
+ """
168
+ if module_params.module_source.startswith(module_params.tf_host_name):
169
+ # check if module source supports native Terraform services
170
+ # https://www.terraform.io/internals/remote-service-discovery#remote-service-discovery
171
+ module_params.module_source = module_params.module_source.replace(f"{module_params.tf_host_name}/", "")
172
+ try:
173
+ response = requests.get(
174
+ url=f"https://{module_params.tf_host_name}/.well-known/terraform.json",
175
+ timeout=DEFAULT_TIMEOUT,
176
+ )
177
+ response.raise_for_status()
178
+ except HTTPError as e:
179
+ self.logger.debug(e)
180
+ if response.status_code != HTTPStatus.OK and response.status_code != HTTPStatus.NO_CONTENT:
181
+ return False
182
+
183
+ self.logger.debug(f"Service discovery response: {response.json()}")
184
+ module_params.tf_modules_endpoint = f"https://{module_params.tf_host_name}{response.json().get('modules.v1')}"
185
+ else:
186
+ # use terraform cloud host name and url for the public registry
187
+ module_params.tf_host_name = TFC_HOST_NAME
188
+ module_params.tf_modules_endpoint = "https://registry.terraform.io/v1/modules"
189
+ module_params.tf_modules_versions_endpoint = "/".join((module_params.tf_modules_endpoint, module_params.module_source, "versions"))
190
+
191
+ def _normalize_module_download_url(self, module_params: ModuleParams, module_download_url) -> str:
192
+ if not urlparse(module_download_url).netloc:
193
+ module_download_url = f"https://{module_params.tf_host_name}{module_download_url}"
194
+ return module_download_url
195
+
196
+ @staticmethod
197
+ def _is_download_url_archive(module_download_url) -> bool:
198
+ for extension in MODULE_ARCHIVE_EXTENSIONS:
199
+ if module_download_url.endswith(extension):
200
+ return True
201
+ query_params = urlparse(module_download_url).query
202
+ if query_params:
203
+ query_params = query_params.split("&")
204
+ for query_param in query_params:
205
+ if query_param.startswith("archive="):
206
+ return True
207
+ return False
208
+
209
+
210
+ loader = RegistryLoader()
@@ -0,0 +1,68 @@
1
+ import re
2
+ from typing import List, Dict, Optional
3
+
4
+ from s1_cns_cli.s1graph.common.packaging import version
5
+
6
+ VERSION_REGEX = re.compile(r"^(?P<operator>=|!=|>=|>|<=|<|~>)?\s*(?P<version>[\d.]+-?\w*)$")
7
+
8
+
9
+ class VersionConstraint:
10
+ """
11
+ A class representing a module version. Enables comparing versions.
12
+ """
13
+
14
+ def __init__(self, constraint_parts: Dict[str, Optional[str]]) -> None:
15
+ """
16
+ :param constraint_parts: a dictionary representing a version constraint: {"version": "v1.2.3", "operator": ">="}
17
+ """
18
+ self.version = version.parse(constraint_parts.get("version") or "")
19
+ self.operator = constraint_parts.get("operator") or "="
20
+
21
+ def get_max_version_for_most_specific_segment(self) -> version.Version:
22
+ return version.parse(f"{self.version.major + 1}.0.0")
23
+
24
+ def versions_matching(self, other_version_str: str) -> bool:
25
+ other_version = version.parse(other_version_str)
26
+ res = {
27
+ "=": lambda other: other == self.version,
28
+ "!=": lambda other: other != self.version,
29
+ ">": lambda other: other > self.version,
30
+ ">=": lambda other: other >= self.version,
31
+ "<": lambda other: other < self.version,
32
+ "<=": lambda other: other <= self.version,
33
+ "~>": lambda other: self.version <= other < self.get_max_version_for_most_specific_segment(),
34
+ }[self.operator](other_version)
35
+ return res
36
+
37
+ def __str__(self) -> str:
38
+ return f"{self.operator}{self.version}"
39
+
40
+
41
+ def get_version_constraints(raw_version: str) -> List[VersionConstraint]:
42
+ """
43
+ :param raw_version: A string representation of a version, e.g: "~> v1.2.3"
44
+ :return: VersionConstraint instance
45
+ """
46
+ raw_version = raw_version.replace(" ", "")
47
+ raw_version_constraints = raw_version.split(",")
48
+ version_constraints = []
49
+ for constraint in raw_version_constraints:
50
+ match = re.search(VERSION_REGEX, constraint)
51
+ if match:
52
+ constraint_parts = match.groupdict()
53
+ version_constraints.append(VersionConstraint(constraint_parts))
54
+ return version_constraints
55
+
56
+
57
+ def order_versions_in_descending_order(versions_strings: List[str]) -> List[str]:
58
+ """
59
+ :param versions_strings: array of string versions: ["v1.2.3", "v1.2.4"...]
60
+ :return: A sorted array of versions in descending order
61
+ """
62
+ for iter_num in range(len(versions_strings) - 1, 0, -1):
63
+ for idx in range(iter_num):
64
+ if version.parse(versions_strings[idx]) < version.parse(versions_strings[idx + 1]):
65
+ temp = versions_strings[idx]
66
+ versions_strings[idx] = versions_strings[idx + 1]
67
+ versions_strings[idx + 1] = temp
68
+ return versions_strings
@@ -0,0 +1,100 @@
1
+ from __future__ import annotations
2
+
3
+ import logging
4
+ import os
5
+ import re
6
+ from typing import List, Callable
7
+
8
+ from s1_cns_cli.s1graph.common.parallelizer.parallel_runner import parallel_runner
9
+ from s1_cns_cli.s1graph.terraform.module_loading.registry import module_loader_registry
10
+
11
+
12
+ class ModuleDownload:
13
+ def __init__(self, source_dir: str) -> None:
14
+ self.source_dir = source_dir
15
+ self.module_link: str | None = None
16
+ self.version: str | None = None
17
+
18
+ def __str__(self):
19
+ return f"{self.source_dir} -> {self.module_link} ({self.version})"
20
+
21
+ @property
22
+ def address(self):
23
+ return f'{self.module_link}:{self.version}'
24
+
25
+
26
+ def find_modules(path: str) -> List[ModuleDownload]:
27
+ modules_found = []
28
+ for root, _, full_file_names in os.walk(path):
29
+ for file_name in full_file_names:
30
+ if not file_name.endswith('.tf'):
31
+ continue
32
+ with open(os.path.join(path, root, file_name)) as f:
33
+ try:
34
+ in_module = False
35
+ curr_md = None
36
+ for line in f:
37
+ if line.strip().startswith('#'):
38
+ continue
39
+ if not in_module:
40
+ if line.startswith('module'):
41
+ in_module = True
42
+ curr_md = ModuleDownload(os.path.dirname(os.path.join(root, file_name)))
43
+ continue
44
+ if in_module:
45
+ if line.startswith('}'):
46
+ in_module = False
47
+ if curr_md.module_link is None:
48
+ logging.warning(f'A module at {curr_md.source_dir} had no source, skipping')
49
+ else:
50
+ modules_found.append(curr_md)
51
+ curr_md = None
52
+ continue
53
+
54
+ match = re.match(re.compile('.*\\bsource\\s*=\\s*"(?P<LINK>.*)"'), line)
55
+ if match:
56
+ curr_md.module_link = match.group('LINK')
57
+ continue
58
+
59
+ match = re.match(re.compile('.*\\bversion\\s*=\\s*"(?P<operator>=|!=|>=|>|<=|<|~>)?\\s*(?P<version>[\\d.]+-?\\w*)"'), line)
60
+ if match:
61
+ curr_md.version = f"{match.group('operator')}{match.group('version')}" if match.group('operator') else match.group('version')
62
+ except (UnicodeDecodeError, FileNotFoundError) as e:
63
+ logging.warning(f"Skipping {os.path.join(path, root, file_name)} because of {e}")
64
+ continue
65
+
66
+ return modules_found
67
+
68
+
69
+ def should_download(path: str) -> bool:
70
+ return not (path.startswith('./') or path.startswith('../') or path.startswith('/'))
71
+
72
+
73
+ def load_tf_modules(path: str, should_download_module: Callable[[str], bool] = should_download, run_parallel=False,
74
+ modules_to_load: List[ModuleDownload] = None):
75
+ module_loader_registry.root_dir = path
76
+ if not modules_to_load:
77
+ modules_to_load = find_modules(path)
78
+
79
+ def _download_module(m):
80
+ if should_download_module(m.module_link):
81
+ logging.info(f'Downloading module {m.address}')
82
+ try:
83
+ content = module_loader_registry.load(m.source_dir, m.module_link,
84
+ "latest" if not m.version else m.version)
85
+ if content is None or not content.loaded():
86
+ log_message = f'Failed to download module {m.address}'
87
+ if not module_loader_registry.download_external_modules:
88
+ log_message += ' (for external modules, the --download-external-modules flag is required)'
89
+ logging.warning(log_message)
90
+ except Exception as e:
91
+ logging.warning(f"Unable to load module ({m.address}): {e}")
92
+
93
+ # To avoid duplicate work, we need to get the distinct module sources
94
+ distinct_modules = list({m.address: m for m in modules_to_load}.values())
95
+
96
+ if run_parallel:
97
+ list(parallel_runner.run_function(_download_module, distinct_modules))
98
+ else:
99
+ for m in distinct_modules:
100
+ _download_module(m)
@@ -0,0 +1,26 @@
1
+ from dataclasses import dataclass
2
+ from typing import Optional
3
+
4
+
5
+ @dataclass
6
+ class ModuleParams:
7
+ def __init__(self, root_dir: str, current_dir: str, source: str, source_version: Optional[str], dest_dir: str,
8
+ external_modules_folder_name: str, inner_module: Optional[str] = None):
9
+ self.root_dir: str = root_dir
10
+ self.current_dir: str = current_dir
11
+ self.module_source: str = source
12
+ self.version: Optional[str] = source_version
13
+ self.dest_dir: str = dest_dir
14
+ self.external_modules_folder_name: str = external_modules_folder_name
15
+ self.inner_module: Optional[str] = inner_module
16
+
17
+ self.token: Optional[str] = None
18
+ self.username: Optional[str] = None
19
+ self.vcs_base_url: Optional[str] = None
20
+ self.module_source_prefix: Optional[str] = None
21
+ self.best_version: Optional[str] = None
22
+
23
+ # terraform cloud / enterprise specific params
24
+ self.tf_host_name: Optional[str] = None
25
+ self.tf_modules_endpoint: Optional[str] = None
26
+ self.tf_modules_versions_endpoint: Optional[str] = None
@@ -0,0 +1,106 @@
1
+ from __future__ import annotations
2
+
3
+ import logging
4
+ import os
5
+ import hashlib
6
+ from typing import Optional, List, TYPE_CHECKING, Set, Dict
7
+
8
+ from s1_cns_cli.s1graph.common.util.consts import DEFAULT_EXTERNAL_MODULES_DIR
9
+ from s1_cns_cli.s1graph.terraform.module_loading.content import ModuleContent
10
+ from s1_cns_cli.s1graph.terraform.module_loading.module_params import ModuleParams
11
+
12
+ if TYPE_CHECKING:
13
+ from s1_cns_cli.s1graph.terraform.module_loading.loader import ModuleLoader
14
+
15
+
16
+ class ModuleLoaderRegistry:
17
+ loaders: List["ModuleLoader"] = [] # noqa: CCE003
18
+ module_content_cache: Dict[str, Optional[ModuleContent]] = {} # noqa: CCE003
19
+
20
+ def __init__(
21
+ self, download_external_modules: bool = False, external_modules_folder_name: str = DEFAULT_EXTERNAL_MODULES_DIR
22
+ ) -> None:
23
+ self.logger = logging.getLogger(__name__)
24
+ self.download_external_modules = download_external_modules
25
+ self.external_modules_folder_name = external_modules_folder_name
26
+ self.failed_urls_cache: Set[str] = set()
27
+ self.root_dir = "" # root dir for storing external modules
28
+
29
+ def load(self, current_dir: str, source: str, source_version: Optional[str]) -> ModuleContent:
30
+ """
31
+ Search all registered loaders for the first one which is able to load the module source type. For more
32
+ information, see `loader.ModuleLoader.load`.
33
+ """
34
+ module_address = f'{source}:{source_version}'
35
+ if module_address in self.module_content_cache:
36
+ logging.debug(f'Used the cache for module {module_address}')
37
+ return self.module_content_cache[module_address]
38
+ else:
39
+ logging.debug(f'Cache miss for {module_address}')
40
+
41
+ if os.name == 'nt':
42
+ # For windows, due to limitations in the allowed characters for path names, the hash of the source is used.
43
+ # https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions
44
+ source_hash = hashlib.md5(source.encode()) # nosec
45
+ local_dir = os.path.join(self.root_dir, self.external_modules_folder_name, source_hash.hexdigest())
46
+ else:
47
+ local_dir = os.path.join(self.root_dir, self.external_modules_folder_name, source)
48
+ inner_module = ""
49
+ next_url = source
50
+ last_exception = None
51
+ content = ModuleContent(None)
52
+ while next_url:
53
+ source = next_url
54
+ next_url = ""
55
+ if source in self.failed_urls_cache:
56
+ break
57
+ for loader in self.loaders:
58
+ if not self.download_external_modules and loader.is_external:
59
+ continue
60
+ try:
61
+ module_params = ModuleParams(root_dir=self.root_dir,
62
+ current_dir=current_dir,
63
+ source=source,
64
+ source_version=source_version,
65
+ dest_dir=local_dir,
66
+ external_modules_folder_name=self.external_modules_folder_name,
67
+ inner_module=inner_module)
68
+ content = loader.load(module_params)
69
+ except Exception as e:
70
+ logging.warning(f'Module {module_address} failed to load via {loader.__class__}')
71
+ last_exception = e
72
+ continue
73
+ if content.next_url:
74
+ next_url = content.next_url
75
+ if module_params.inner_module:
76
+ local_dir = module_params.dest_dir
77
+ inner_module = module_params.inner_module
78
+ break
79
+ if content is None:
80
+ continue
81
+ elif not content.loaded():
82
+ if content.failed_url:
83
+ self.failed_urls_cache.add(content.failed_url)
84
+ self.module_content_cache[module_address] = ModuleContent(None)
85
+ continue
86
+ else:
87
+ self.module_content_cache[module_address] = content
88
+ return content
89
+
90
+ if last_exception is not None:
91
+ raise last_exception
92
+
93
+ self.module_content_cache[module_address] = content
94
+ return content
95
+
96
+ def register(self, loader: "ModuleLoader") -> None:
97
+ self.loaders.append(loader)
98
+
99
+ def reset_module_content_cache(self) -> None:
100
+ self.module_content_cache = {}
101
+
102
+ def clear_all_loaders(self) -> None:
103
+ self.loaders.clear()
104
+
105
+
106
+ module_loader_registry = ModuleLoaderRegistry()
@@ -0,0 +1,2 @@
1
+ from s1_cns_cli.s1graph.terraform.modules.module_utils import * # noqa
2
+ from s1_cns_cli.s1graph.terraform.modules.module_objects import * # noqa
@@ -0,0 +1,94 @@
1
+ from __future__ import annotations
2
+ import json
3
+ from typing import Optional, Any
4
+
5
+
6
+ class TFModule:
7
+ __slots__ = ("path", "name", "foreach_idx", "nested_tf_module")
8
+
9
+ def __init__(self, path: str, name: str, nested_tf_module: Optional[TFModule] = None,
10
+ foreach_idx: Optional[int | str] = None) -> None:
11
+ self.path = path
12
+ self.name = name
13
+ self.foreach_idx = foreach_idx
14
+ self.nested_tf_module = nested_tf_module
15
+
16
+ def __eq__(self, other: Any) -> bool:
17
+ if not isinstance(other, TFModule):
18
+ return False
19
+ return self.path == other.path and self.name == other.name and self.nested_tf_module == other.nested_tf_module and self.foreach_idx == other.foreach_idx
20
+
21
+ def __lt__(self, other: Any) -> bool:
22
+ if not isinstance(other, TFModule):
23
+ return False
24
+ return (self.path, self.name, self.nested_tf_module, self.foreach_idx) < (
25
+ other.path, other.name, other.nested_tf_module, other.foreach_idx)
26
+
27
+ def __repr__(self) -> str:
28
+ return f'path:{self.path}, name:{self.name}, nested_tf_module:{self.nested_tf_module}, foreach_idx:{self.foreach_idx}'
29
+
30
+ def __hash__(self) -> int:
31
+ return hash((self.path, self.name, self.nested_tf_module, self.foreach_idx))
32
+
33
+ def __iter__(self):
34
+ yield from {
35
+ "path": self.path,
36
+ "name": self.name,
37
+ "foreach_idx": self.foreach_idx,
38
+ "nested_tf_module": dict(self.nested_tf_module) if self.nested_tf_module else None
39
+ }.items()
40
+
41
+ def __str__(self):
42
+ from s1_cns_cli.s1graph.common.util.json_utils import CustomJSONEncoder
43
+ return json.dumps(dict(self), cls=CustomJSONEncoder)
44
+
45
+ @staticmethod
46
+ def from_json(json_dct):
47
+ return TFModule(path=json_dct['path'], name=json_dct['name'], foreach_idx=json_dct['foreach_idx'],
48
+ nested_tf_module=TFModule.from_json(json_dct['nested_tf_module']) if json_dct.get(
49
+ 'nested_tf_module') else None)
50
+
51
+
52
+ class TFDefinitionKey:
53
+ __slots__ = ("tf_source_modules", "file_path")
54
+
55
+ def __init__(self, file_path: str, tf_source_modules: Optional[TFModule] = None) -> None:
56
+ self.tf_source_modules = tf_source_modules
57
+ self.file_path = file_path
58
+
59
+ def __eq__(self, other: Any) -> bool:
60
+ if not isinstance(other, TFDefinitionKey):
61
+ return False
62
+ return self.tf_source_modules == other.tf_source_modules and self.file_path == other.file_path
63
+
64
+ def __lt__(self, other: Any) -> bool:
65
+ if not isinstance(other, TFDefinitionKey):
66
+ return False
67
+ return (self.file_path, self.tf_source_modules) < (other.file_path, other.tf_source_modules)
68
+
69
+ def __repr__(self) -> str:
70
+ return f'tf_source_modules:{self.tf_source_modules}, file_path:{self.file_path}'
71
+
72
+ def __hash__(self) -> int:
73
+ return hash((self.file_path, self.tf_source_modules))
74
+
75
+ def __iter__(self):
76
+ yield from {
77
+ "file_path": self.file_path,
78
+ "tf_source_modules": dict(self.tf_source_modules) if self.tf_source_modules else None
79
+ }.items()
80
+
81
+ def __str__(self):
82
+ from s1_cns_cli.s1graph.common.util.json_utils import CustomJSONEncoder
83
+ return json.dumps(self.to_json(), cls=CustomJSONEncoder)
84
+
85
+ def to_json(self):
86
+ to_return = {"file_path": self.file_path, "tf_source_modules": None}
87
+ if self.tf_source_modules:
88
+ to_return["tf_source_modules"] = dict(self.tf_source_modules)
89
+ return to_return
90
+
91
+ @staticmethod
92
+ def from_json(json_dct):
93
+ return TFDefinitionKey(file_path=json_dct['file_path'],
94
+ tf_source_modules=TFModule.from_json(json_dct['tf_source_modules']))