prancer-basic 3.0.22__tar.gz → 3.0.25__tar.gz
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.
- {prancer-basic-3.0.22/src/prancer_basic.egg-info → prancer-basic-3.0.25}/PKG-INFO +1 -1
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/setup.py +1 -1
- {prancer-basic-3.0.22 → prancer-basic-3.0.25/src/prancer_basic.egg-info}/PKG-INFO +1 -1
- prancer-basic-3.0.25/src/processor/__init__.py +3 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/interpreter.py +1 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_aws.py +10 -1
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_azure.py +8 -2
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_google.py +16 -1
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/crawler/utils.py +18 -6
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/config/remote_utils.py +31 -4
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/cli_validator.py +1 -1
- prancer-basic-3.0.22/src/processor/__init__.py +0 -3
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/LICENSE +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/MANIFEST.in +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/README.md +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/setup.cfg +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/prancer_basic.egg-info/SOURCES.txt +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/prancer_basic.egg-info/dependency_links.txt +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/prancer_basic.egg-info/entry_points.txt +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/prancer_basic.egg-info/requires.txt +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/prancer_basic.egg-info/top_level.txt +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/collection_config/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/collection_config/config_handler.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparison_functions.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparisonantlr/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparisonantlr/comparatorLexer.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparisonantlr/comparatorListener.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparisonantlr/comparatorParser.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparisonantlr/compare_types.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparisonantlr/rule_interpreter.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparisonantlr/test_comparator.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/arm/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/arm/secret_azure_iac.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/cloudformation/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/cloudformation/secret_aws_iac.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/common/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/common/sensitive_extension.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/deploymentmanager/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/deploymentmanager/secret_gcp_iac.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/terraform/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/terraform/secret_tf.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/arn_parser.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/git_connector/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/git_connector/git_functions.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/git_connector/git_processor.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/populate_json.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_azure_refactor.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_base.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_custom.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_custom_refactor.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_db.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_exception.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_fs.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_kubernetes.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_utils.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_compliance/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_compliance/compliances.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_crawler/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_crawler/azure_crawler.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_crawler/base_crawler.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_node_pull/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_node_pull/azure_node_pull.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_node_pull/base_node_pull.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/validation.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/vault.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/crawler/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/crawler/master_snapshot.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/database/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/database/database.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/config/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/config/config_utils.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/config/rundata_utils.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/file/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/file/file_utils.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/hcl/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/hcl/hcl_utils.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/hcl/parser.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/hcl/transformer.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/hcl/yacc.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/httpapi/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/httpapi/http_utils.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/httpapi/restapi.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/httpapi/restapi_azure.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/jinja/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/jinja/jinja_utils.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/json/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/json/commentjson.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/json/json_utils.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/cli_generate_azure_vault_key.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/cli_populate_json.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/cli_terraform_to_json.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/compliance_utils.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/jinjatemplates/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/jinjatemplates/fs_connector.json +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/jinjatemplates/git_connector.json +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/jinjatemplates/mastersnapshot.json +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/jinjatemplates/mastertest.json +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/yaml/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/yaml/yaml_utils.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/logging/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/logging/dburl_kv.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/logging/log_handler.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/reporting/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/reporting/json_output.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/ack_processor.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/aso_processor.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/aws_template_processor.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/azure_template_processor.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/base/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/base/base_template_constatns.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/base/base_template_processor.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/google_template_processor.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/helm_chart_template_processor.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/json_template_processor.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/kcc_processor.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/kubernetes_template_processor.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/terraform_template_processor.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/yaml_template_processor.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/aws/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/aws/aws_parser.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/azure/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/azure/azure_parser.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/base/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/base/template_parser.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/google/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/google/google_parser.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/google/util.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/helm/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/helm/helm_parser.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/kubernetes/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/kubernetes/kubernetes_parser.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/expression/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/expression/base_expressions.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/expression/terraform_expressions.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/function/__init__.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/function/collection_functions.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/function/encoding_function.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/function/numeric_functions.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/function/string_functions.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/function/terraform_functions.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/module_parser.py +0 -0
- {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/terraform_parser.py +0 -0
|
@@ -18,7 +18,7 @@ LONG_DESCRIPTION = """
|
|
|
18
18
|
setup(
|
|
19
19
|
name='prancer-basic',
|
|
20
20
|
# also update the version in processor.__init__.py file
|
|
21
|
-
version='3.0.
|
|
21
|
+
version='3.0.25',
|
|
22
22
|
description='Prancer Basic, http://prancer.io/',
|
|
23
23
|
long_description=LONG_DESCRIPTION,
|
|
24
24
|
license = "BSD",
|
|
@@ -34,6 +34,7 @@ from processor.helper.httpapi.restapi_azure import json_source
|
|
|
34
34
|
from processor.helper.httpapi.restapi_azure import get_client_secret
|
|
35
35
|
from processor.connector.snapshot_utils import validate_snapshot_nodes
|
|
36
36
|
from processor.connector.arn_parser import arnparse
|
|
37
|
+
from processor.helper.config.remote_utils import get_value_from_customer_keyvault
|
|
37
38
|
|
|
38
39
|
logger = getlogger()
|
|
39
40
|
_valid_service_names = Session().get_available_services()
|
|
@@ -530,7 +531,10 @@ def get_all_nodes(awsclient, node, snapshot, connector):
|
|
|
530
531
|
list_function = getattr(awsclient, list_function_name, None)
|
|
531
532
|
if list_function and callable(list_function):
|
|
532
533
|
try:
|
|
534
|
+
function_kwargs = node.get("kwargs", {})
|
|
533
535
|
list_kwargs = _get_list_function_kwargs(awsclient.meta._service_model.service_name, list_function_name)
|
|
536
|
+
list_kwargs.update(function_kwargs)
|
|
537
|
+
logger.debug("list_kwargs %s", list_kwargs)
|
|
534
538
|
response = list_function(**list_kwargs)
|
|
535
539
|
list_of_resources = _get_resources_from_list_function(response, list_function_name, awsclient.meta._service_model.service_name)
|
|
536
540
|
# print('list_of_resources: ', list_of_resources)
|
|
@@ -1140,8 +1144,13 @@ def populate_aws_snapshot(snapshot, container=None):
|
|
|
1140
1144
|
if secret_access:
|
|
1141
1145
|
logger.info('Secret Access key from environment variable, Secret: %s', '*' * len(secret_access))
|
|
1142
1146
|
|
|
1147
|
+
isremote = get_from_currentdata('remote')
|
|
1143
1148
|
# Read the client secrets from the vault
|
|
1144
|
-
if not secret_access:
|
|
1149
|
+
if not secret_access and isremote:
|
|
1150
|
+
secret_access = get_value_from_customer_keyvault(access_key)
|
|
1151
|
+
|
|
1152
|
+
# Read the client secrets from the vault
|
|
1153
|
+
if not secret_access and not isremote:
|
|
1145
1154
|
secret_access = get_vault_data(access_key)
|
|
1146
1155
|
if secret_access:
|
|
1147
1156
|
logger.info('Secret Access key from vault Secret: %s', '*' * len(secret_access))
|
|
@@ -27,6 +27,7 @@ from processor.database.database import insert_one_document, COLLECTION, get_col
|
|
|
27
27
|
DATABASE, DBNAME, sort_field, get_documents
|
|
28
28
|
from processor.connector.snapshot_utils import validate_snapshot_nodes
|
|
29
29
|
from processor.templates.azure.azure_parser import AzureTemplateParser
|
|
30
|
+
from processor.helper.config.remote_utils import get_value_from_customer_keyvault
|
|
30
31
|
|
|
31
32
|
|
|
32
33
|
logger = getlogger()
|
|
@@ -320,9 +321,14 @@ def populate_client_secret(client_id, client_secret, snapshot_user):
|
|
|
320
321
|
client_secret = os.getenv(snapshot_user, None)
|
|
321
322
|
if client_secret:
|
|
322
323
|
logger.info('Client Secret from environment variable, Secret: %s', '*' * len(client_secret))
|
|
323
|
-
|
|
324
|
+
|
|
325
|
+
isremote = get_from_currentdata('remote')
|
|
324
326
|
# Read the client secrets from the vault
|
|
325
|
-
if not client_secret:
|
|
327
|
+
if not client_secret and isremote:
|
|
328
|
+
client_secret = get_value_from_customer_keyvault(client_id)
|
|
329
|
+
|
|
330
|
+
# Read the client secrets from the vault
|
|
331
|
+
if not client_secret and not isremote:
|
|
326
332
|
client_secret = get_vault_data(client_id)
|
|
327
333
|
if client_secret:
|
|
328
334
|
logger.info('Client Secret from Vault, Secret: %s', '*' * len(client_secret))
|
|
@@ -33,6 +33,7 @@ from processor.database.database import insert_one_document, sort_field, get_doc
|
|
|
33
33
|
COLLECTION, DATABASE, DBNAME, get_collection_size, create_indexes
|
|
34
34
|
from processor.helper.httpapi.restapi_azure import json_source
|
|
35
35
|
from processor.connector.snapshot_utils import validate_snapshot_nodes
|
|
36
|
+
from processor.helper.config.remote_utils import get_value_from_customer_keyvault
|
|
36
37
|
import requests
|
|
37
38
|
|
|
38
39
|
|
|
@@ -187,6 +188,9 @@ def get_params_for_get_method(response, url_var, project_id):
|
|
|
187
188
|
|
|
188
189
|
elif item == r"{cloud_run_service}":
|
|
189
190
|
params[item] = response['metadata']['name']
|
|
191
|
+
elif item == r"{secret}":
|
|
192
|
+
secret_name = response['name']
|
|
193
|
+
params[item] = secret_name.split('/')[-1]
|
|
190
194
|
|
|
191
195
|
return params
|
|
192
196
|
except Exception as ex:
|
|
@@ -715,9 +719,20 @@ def generate_gce(google_data, project, user):
|
|
|
715
719
|
|
|
716
720
|
if not gce['private_key']:
|
|
717
721
|
raise Exception("Private key does not exist at given private key path : %s " % private_key_path)
|
|
722
|
+
|
|
723
|
+
isremote = get_from_currentdata('remote')
|
|
724
|
+
if not gce['private_key'] and isremote:
|
|
725
|
+
gce['private_key'] = get_value_from_customer_keyvault(gce['private_key_id'])
|
|
726
|
+
logger.info('Private key from customer keyvault, Secret: %s', '*' * len(gce['private_key']))
|
|
718
727
|
|
|
728
|
+
elif not gce['private_key']:
|
|
729
|
+
gce['private_key'] = os.getenv("GCP_PRIVATE_KEY", None)
|
|
730
|
+
if gce['private_key']:
|
|
731
|
+
gce['private_key'] = gce['private_key'].replace("\\n","\n")
|
|
732
|
+
logger.info('Private key from environment variable, Secret: %s', '*' * len(gce['private_key']))
|
|
733
|
+
|
|
719
734
|
# Read the private key from the vault
|
|
720
|
-
if not gce['private_key']:
|
|
735
|
+
if not gce['private_key'] and not isremote:
|
|
721
736
|
private_key = get_vault_data(gce['private_key_id'])
|
|
722
737
|
if private_key:
|
|
723
738
|
gce["private_key"] = private_key.replace("\\n","\n")
|
|
@@ -8,12 +8,15 @@ from processor.logging.log_handler import getlogger
|
|
|
8
8
|
from processor.helper.httpapi.http_utils import http_get_request, http_post_request
|
|
9
9
|
from processor.connector.vault import get_vault_data, set_vault_data
|
|
10
10
|
from processor.connector.snapshot_azure import populate_client_secret
|
|
11
|
+
from processor.helper.config.rundata_utils import get_from_currentdata
|
|
11
12
|
from oauth2client.service_account import ServiceAccountCredentials
|
|
12
13
|
from boto3 import client
|
|
13
14
|
import copy
|
|
14
15
|
import requests
|
|
15
16
|
import tempfile
|
|
16
17
|
import re
|
|
18
|
+
import os
|
|
19
|
+
from processor.helper.config.remote_utils import get_value_from_customer_keyvault
|
|
17
20
|
|
|
18
21
|
logger = getlogger()
|
|
19
22
|
|
|
@@ -195,13 +198,22 @@ def access_token_from_service_account(private_key_id, private_key, client_email,
|
|
|
195
198
|
def get_projects_list(private_key_id, private_key, client_email, client_id, test_user):
|
|
196
199
|
""" Get google projects list """
|
|
197
200
|
project_list = []
|
|
201
|
+
isremote = get_from_currentdata('remote')
|
|
202
|
+
if not private_key and isremote:
|
|
203
|
+
private_key = get_value_from_customer_keyvault(private_key_id)
|
|
204
|
+
logger.info('Private key from customer keyvault, Secret: %s', '*' * len(private_key))
|
|
205
|
+
|
|
198
206
|
if not private_key:
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
207
|
+
private_key = os.getenv("GCP_PRIVATE_KEY", None)
|
|
208
|
+
if private_key:
|
|
209
|
+
private_key = private_key.replace("\\n","\n")
|
|
210
|
+
logger.info('Private key from environment variable, Secret: %s', '*' * len(private_key))
|
|
211
|
+
|
|
212
|
+
if not private_key and not isremote:
|
|
213
|
+
private_key = get_vault_data(private_key_id)
|
|
214
|
+
|
|
215
|
+
if private_key:
|
|
216
|
+
access_token = access_token_from_service_account(private_key_id, private_key, client_email, client_id)
|
|
205
217
|
if access_token:
|
|
206
218
|
hdrs = {"Accept": "application/json", "Authorization": "Bearer %s" % access_token }
|
|
207
219
|
url = "https://cloudresourcemanager.googleapis.com/v1/projects"
|
|
@@ -5,10 +5,12 @@ import datetime
|
|
|
5
5
|
import subprocess
|
|
6
6
|
from urllib import request
|
|
7
7
|
from inspect import currentframe, getframeinfo
|
|
8
|
-
|
|
8
|
+
from processor.helper.config.rundata_utils import get_from_currentdata
|
|
9
9
|
from processor.helper.file.file_utils import exists_file, exists_dir, mkdir_path
|
|
10
|
+
from processor.helper.utils.compliance_utils import get_api_server
|
|
10
11
|
from processor.helper.config.config_utils import COMPLIANCE, CRAWL, CRAWL_AND_COMPLIANCE, framework_dir, config_value, framework_config, \
|
|
11
12
|
CFGFILE, get_config_data
|
|
13
|
+
from processor.helper.httpapi.http_utils import http_get_request_useragent
|
|
12
14
|
|
|
13
15
|
def console_log(message, cf):
|
|
14
16
|
"""Logger like statements only used till logger configuration is read and initialized."""
|
|
@@ -20,10 +22,14 @@ def console_log(message, cf):
|
|
|
20
22
|
print(fmtstr)
|
|
21
23
|
|
|
22
24
|
|
|
23
|
-
def
|
|
25
|
+
def mastersnapshot_type(masersnapshot_data):
|
|
26
|
+
return masersnapshot_data.get("json", {}).get("type", "")
|
|
27
|
+
|
|
28
|
+
def remote_config_ini_setup(collection_data):
|
|
24
29
|
"""Need the config.ini file to read initial configuration data"""
|
|
25
30
|
error = False
|
|
26
31
|
config_ini = None
|
|
32
|
+
mastersnapshot = collection_data["masersnapshots"][0] if collection_data.get("masersnapshots") else {}
|
|
27
33
|
fwdir = os.getenv('FRAMEWORKDIR', None)
|
|
28
34
|
if fwdir:
|
|
29
35
|
if exists_dir(fwdir):
|
|
@@ -60,7 +66,7 @@ def remote_config_ini_setup():
|
|
|
60
66
|
if not opapresent:
|
|
61
67
|
console_log("opa binary required, not present in path or current directory, exiting...", currentframe())
|
|
62
68
|
error = True
|
|
63
|
-
if not error:
|
|
69
|
+
if not error and mastersnapshot_type(mastersnapshot) == "helm":
|
|
64
70
|
helmpresent = check_exe_in_path_and_curdir(config_ini, 'HELM', 'helmexe', 'helm')
|
|
65
71
|
if not helmpresent:
|
|
66
72
|
console_log("helm binary required, not present in path or current directory, exiting...", currentframe())
|
|
@@ -136,4 +142,25 @@ def create_remote_config(config_ini):
|
|
|
136
142
|
cfgparser = configparser.ConfigParser(allow_no_value=True)
|
|
137
143
|
cfgparser.read_dict(cdata)
|
|
138
144
|
with open(config_ini, 'w') as configfile:
|
|
139
|
-
cfgparser.write(configfile)
|
|
145
|
+
cfgparser.write(configfile)
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
def get_value_from_customer_keyvault(key):
|
|
149
|
+
value = None
|
|
150
|
+
env = get_from_currentdata('env')
|
|
151
|
+
apitoken = get_from_currentdata('apitoken')
|
|
152
|
+
company = get_from_currentdata('company')
|
|
153
|
+
|
|
154
|
+
apiserver = get_api_server(env, company)
|
|
155
|
+
vaultapi_uri = f'{apiserver}secret/vault/?key_name={key}'
|
|
156
|
+
if vaultapi_uri:
|
|
157
|
+
hdrs = {
|
|
158
|
+
"Content-Type": "application/json",
|
|
159
|
+
"Authorization" : f"Bearer {apitoken}"
|
|
160
|
+
}
|
|
161
|
+
status, data = http_get_request_useragent(vaultapi_uri, headers=hdrs, useragent=True)
|
|
162
|
+
if status and isinstance(status, int) and status == 200:
|
|
163
|
+
if 'data' in data:
|
|
164
|
+
value = data['data'].get("value")
|
|
165
|
+
|
|
166
|
+
return value
|
|
@@ -297,7 +297,7 @@ Run prancer for a list of snapshots
|
|
|
297
297
|
if status and isinstance(status, int) and status == 200:
|
|
298
298
|
if 'data' in data:
|
|
299
299
|
collectionData = data['data']
|
|
300
|
-
error, cfg_ini = remote_config_ini_setup()
|
|
300
|
+
error, cfg_ini = remote_config_ini_setup(collectionData)
|
|
301
301
|
if error:
|
|
302
302
|
msg = "Unable to setup config.ini, exiting!....."
|
|
303
303
|
console_log(msg, currentframe())
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/prancer_basic.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/collection_config/config_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparison_functions.py
RENAMED
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparisonantlr/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/arm/__init__.py
RENAMED
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/arm/secret_azure_iac.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/common/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/terraform/__init__.py
RENAMED
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/terraform/secret_tf.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/git_connector/__init__.py
RENAMED
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/git_connector/git_functions.py
RENAMED
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/git_connector/git_processor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_azure_refactor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_custom_refactor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_kubernetes.py
RENAMED
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_compliance/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_crawler/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_node_pull/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/cli_populate_json.py
RENAMED
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/cli_terraform_to_json.py
RENAMED
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/compliance_utils.py
RENAMED
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/jinjatemplates/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/ack_processor.py
RENAMED
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/aso_processor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/base/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/kcc_processor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/base/template_parser.py
RENAMED
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/google/google_parser.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/kubernetes/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/terraform_parser.py
RENAMED
|
File without changes
|