cartography icon indicating copy to clipboard operation
cartography copied to clipboard

Analysis job failure: aws_s3acl_analysis.json

Open jychp opened this issue 7 months ago • 0 comments

Description: The aws_s3acl_analysis.json analysis job fail if AWS module is not called in the same execution.

The analysis job seems to rely on a AWS_ID parameter that is only presents in the COMMON_JOB_PARAMETERS if the aws intel populate him from config.

To Reproduce:

uv run cartography --selected-modules analysis --analysis-job-directory ./cartography/data/jobs/analysis/

Logs:

ERROR:cartography.graph.job:Unhandled error while executing statement in job 'AWS S3 Acl exposure analysis': {code: Neo.ClientError.Statement.ParameterMissing} {message: Expected parameter(s): AWS_ID}
ERROR:cartography.intel.analysis:An exception occurred while executing discovered analysis job: cartography/data/jobs/analysis/aws_s3acl_analysis.json
Traceback (most recent call last):
  File "/home/jychp/Repos/cartography/cartography/intel/analysis.py", line 34, in run
    GraphJob.run_from_json_file(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        path,
        ^^^^^
        neo4j_session,
        ^^^^^^^^^^^^^^
        {"UPDATE_TAG": config.update_tag},
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/jychp/Repos/cartography/cartography/graph/job.py", line 229, in run_from_json_file
    job.run(neo4j_session)
    ~~~~~~~^^^^^^^^^^^^^^^
  File "/home/jychp/Repos/cartography/cartography/graph/job.py", line 100, in run
    stm.run(neo4j_session)
    ~~~~~~~^^^^^^^^^^^^^^^
  File "/home/jychp/Repos/cartography/cartography/graph/statement.py", line 77, in run
    session.write_transaction(self._run_noniterative)
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jychp/Repos/cartography/.venv/lib/python3.13/site-packages/neo4j/_meta.py", line 243, in inner
    return f(*args, **kwargs)
  File "/home/jychp/Repos/cartography/.venv/lib/python3.13/site-packages/neo4j/_sync/work/session.py", line 848, in write_transaction
    return self._run_transaction(
           ~~~~~~~~~~~~~~~~~~~~~^
        WRITE_ACCESS,
        ^^^^^^^^^^^^^
    ...<3 lines>...
        kwargs,
        ^^^^^^^
    )
    ^
  File "/home/jychp/Repos/cartography/.venv/lib/python3.13/site-packages/neo4j/_sync/work/session.py", line 583, in _run_transaction
    result = transaction_function(tx, *args, **kwargs)
  File "/home/jychp/Repos/cartography/cartography/graph/statement.py", line 99, in _run_noniterative
    result: neo4j.Result = tx.run(self.query, self.parameters)
                           ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jychp/Repos/cartography/.venv/lib/python3.13/site-packages/neo4j/_sync/work/transaction.py", line 206, in run
    result._tx_ready_run(query, parameters)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/home/jychp/Repos/cartography/.venv/lib/python3.13/site-packages/neo4j/_sync/work/result.py", line 177, in _tx_ready_run
    self._run(query, parameters, None, None, None, None, None, None)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jychp/Repos/cartography/.venv/lib/python3.13/site-packages/neo4j/_sync/work/result.py", line 236, in _run
    self._attach()
    ~~~~~~~~~~~~^^
  File "/home/jychp/Repos/cartography/.venv/lib/python3.13/site-packages/neo4j/_sync/work/result.py", line 430, in _attach
    self._connection.fetch_message()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/jychp/Repos/cartography/.venv/lib/python3.13/site-packages/neo4j/_sync/io/_common.py", line 184, in inner
    func(*args, **kwargs)
    ~~~~^^^^^^^^^^^^^^^^^
  File "/home/jychp/Repos/cartography/.venv/lib/python3.13/site-packages/neo4j/_sync/io/_bolt.py", line 864, in fetch_message
    res = self._process_message(tag, fields)
  File "/home/jychp/Repos/cartography/.venv/lib/python3.13/site-packages/neo4j/_sync/io/_bolt4.py", line 498, in _process_message
    response.on_failure(summary_metadata or {})
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jychp/Repos/cartography/.venv/lib/python3.13/site-packages/neo4j/_sync/io/_common.py", line 254, in on_failure
    raise self._hydrate_error(metadata)
neo4j.exceptions.ClientError: {code: Neo.ClientError.Statement.ParameterMissing} {message: Expected parameter(s): AWS_ID}

Please complete the following information::

  • Cartography release version or commit hash https://github.com/cartography-cncf/cartography/releases/tag/0.103.0
  • Python version: 3.13.3
  • OS (feel free to omit this if you don't think it's relevant to your issue): Archlinux

jychp avatar May 27 '25 08:05 jychp