_Just sixteen, a pickup truck, out of money, out of luck
I've got nowhere to call my own, hit the gas, and here I go
I'm running free yeah, I'm running free
I'm running free yeah, oh I'm running free_
[Iron Maiden's Running Free](https://www.youtube.com/watch?v=iUpaMRxlRUc) song was published as single of their first album back in 1980. This song is all about running wild and running free as we do at Prowler, making cloud security open and transparent, easy to use and easy to customize, for you and thousands of organizations around the world.
_hit the gas, and here I go!_ This version is full of new features and important improvements requested by our vibrant community. Go ahead and smash your electric guitar and use Prowler straightaway by yourself or just using our service at [prowler.com](https://prowler.com).
Enjoy it! π€π½π₯
New features to highlight in this version:
βοΈ **Custom Checks Metadata**
- Now you can override the **Severity** from a check using the `--custom-checks-metadata-file custom_checks_metadata.yaml`. (Thanks venkyvajrala for the feature!)
> See more in https://docs.prowler.cloud/en/latest/tutorials/custom-checks-metadata/
π· **Custom AWS Role Session name**
- Now you can customize the Role Session name that Prowler uses when assuming an AWS Role with `--role-session-name <role_session_name>`.
> See more in https://docs.prowler.cloud/en/latest/tutorials/aws/role-assumption/#custom-role-session-name
π§ **Scan only AWS enabled regions**
- Prowler now only scans AWS regions if they are enabled making the scan faster without the need to review services in regions that are not enabled.
𧡠**Improved threading using ThreadPoolExecutor**
- For the AWS Service now we use a [`ThreadPoolExecutor`](https://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor) to improve concurrency management and allowing to parallelise per resources not only per regions. Thanks to Fennerr for the improvement!
π **Bug fixing**
- Now the AWS Lambda service scans each Lambda function for secrets without the need to persist the code in memory therefore reducing drastically the memory usage.
- Tons of bug fixes in services, outputs, checks and some other core functions.
Features
* feat(cognito): add Amazon Cognito service by sergargar in https://github.com/prowler-cloud/prowler/pull/3060
* feat(custom_checks_metadata): Add checks metadata overide for severity by venkyvajrala in https://github.com/prowler-cloud/prowler/pull/3038
* feat(aws): Added AWS role session name parameter by Fennerr in https://github.com/prowler-cloud/prowler/pull/3234
* feat(securityhub): Send only FAILs but storing all in the output files by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3195
Fixes
* fix(access-analyzer): Handle ValidationException by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3165
* fix(allowlist): Analyse single and multi account allowlist if present by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3210
* fix(apigw_restapi_auth check): add method auth testing by n4ch04 in https://github.com/prowler-cloud/prowler/pull/3183
* fix(aws_regions): Get enabled regions by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3095
* fix(clean local output dirs): change function description by n4ch04 in https://github.com/prowler-cloud/prowler/pull/3068
* fix(cloudtrail): Handle UnsupportedOperationException by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3166
* fix(codeartifact): solve dependency confusion check by congon4tor in https://github.com/prowler-cloud/prowler/pull/2999
* fix(deps): Add missing jsonschema by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3052
* fix(docs): csv fields by n4ch04 in https://github.com/prowler-cloud/prowler/pull/3092
* fix(docs): typo in reporting/csv by n4ch04 in https://github.com/prowler-cloud/prowler/pull/3094
* fix(elasticache): Handle CacheClusterNotFound by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3174
* fix(fms): Handle PolicyComplianceStatusList key error by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3230
* fix(gcp): fix UnknownApiNameOrVersion error by sergargar in https://github.com/prowler-cloud/prowler/pull/3202
* fix(gcp): improve logging messages by sergargar in https://github.com/prowler-cloud/prowler/pull/3185
* fix(gcp provider): move generate_client for consistency by n4ch04 in https://github.com/prowler-cloud/prowler/pull/3064
* fix(generate_regional_clients): Global is not needed anymore by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3162
* fix(iam): Handle NoSuchEntity in list_group_policies by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3197
* fix(json-ocsf): add profile only for AWS provider by sergargar in https://github.com/prowler-cloud/prowler/pull/3051
* fix(lambda): memory leakage with lambda function code by Fennerr in https://github.com/prowler-cloud/prowler/pull/3167
* fix(organizations_scp_check_deny_regions): enhance check logic by sergargar in https://github.com/prowler-cloud/prowler/pull/3239
* fix(outputs): initialize_file_descriptor is called dynamically by n4ch04 in https://github.com/prowler-cloud/prowler/pull/3050
* fix(s3): Handle NoSuchBucket in the service by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3173
* fix(s3): handle NoSuchBucketPolicy error by sergargar in https://github.com/prowler-cloud/prowler/pull/3217
* fix(send_to_s3_bucket): don't kill exec when fail by n4ch04 in https://github.com/prowler-cloud/prowler/pull/3088
* fix(set_azure_audit_info): assign correct logging when no auth by n4ch04 in https://github.com/prowler-cloud/prowler/pull/3063
* fix(threading): Improved threading for the AWS Service by Fennerr in https://github.com/prowler-cloud/prowler/pull/3175
* fix(trustedadvisor): handle missing dict key by n4ch04 in https://github.com/prowler-cloud/prowler/pull/3075
* fix(trustedadvisor): solve trustedadvisor check metadata by sergargar in https://github.com/prowler-cloud/prowler/pull/3216
* fix(vpc_different_regions): Handle if there are no VPC by williambrady in https://github.com/prowler-cloud/prowler/pull/3081
* revert(clean local dirs): delete clean local dirs output feature by n4ch04 in https://github.com/prowler-cloud/prowler/pull/3087
Chores
* chore(actions): not launch linters for mkdocs.yml by n4ch04 in https://github.com/prowler-cloud/prowler/pull/3093
* chore(actions prowler4): add prowler 4.0 branch to actions by n4ch04 in https://github.com/prowler-cloud/prowler/pull/3184
* chore(elb): Improve status in elbv2_insecure_ssl_ciphers by Fennerr in https://github.com/prowler-cloud/prowler/pull/3169
* chore(ens): do not apply recomendation type to score by sergargar in https://github.com/prowler-cloud/prowler/pull/3058
* chore(moto): install all moto dependencies by sergargar in https://github.com/prowler-cloud/prowler/pull/3048
* chore(python): update python version constraint <3.12 by sergargar in https://github.com/prowler-cloud/prowler/pull/3047
* chore(s3 bucket input validation): validates input bucket by n4ch04 in https://github.com/prowler-cloud/prowler/pull/3198
* chore(sqs_...not_publicly_accessible): less restrictive condition test by n4ch04 in https://github.com/prowler-cloud/prowler/pull/3211
* chore: Ρhanged concatenation of strings to f-strings to improve readability by eukub in https://github.com/prowler-cloud/prowler/pull/3227
* chore(exception): handle error in describing regions by sergargar in https://github.com/prowler-cloud/prowler/pull/3241
* chore(role arguments): enhance role arguments validation by sergargar in https://github.com/prowler-cloud/prowler/pull/3240
* chore(regions_update): Changes in regions for AWS services. by sergargar in https://github.com/prowler-cloud/prowler/pull/3045, https://github.com/prowler-cloud/prowler/pull/3168, https://github.com/prowler-cloud/prowler/pull/3059, https://github.com/prowler-cloud/prowler/pull/3079, https://github.com/prowler-cloud/prowler/pull/3065, https://github.com/prowler-cloud/prowler/pull/3074, https://github.com/prowler-cloud/prowler/pull/3182, https://github.com/prowler-cloud/prowler/pull/3189, https://github.com/prowler-cloud/prowler/pull/3196
* refactor(cloudwatch): simplify logic by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3172
* refactor(load_checks_to_execute): Refactor function and add tests by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3066
* refactor(severities): Define it in one place by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3086
Docs
* docs(aws): Added debug information to inspect retries in API calls by Fennerr in https://github.com/prowler-cloud/prowler/pull/3186
* docs(cloudshell): Add missing steps to workaround by AlexGidarakos in https://github.com/prowler-cloud/prowler/pull/3191
* docs(cloudshell): Add workaround to clone from github by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3190
* docs(cloudshell): Update AWS CloudShell installation steps by AlexGidarakos in https://github.com/prowler-cloud/prowler/pull/3192
* docs(parallel-execution): Combining the output files by Fennerr in https://github.com/prowler-cloud/prowler/pull/3096
* docs(parallel-execution): How to execute it in parallel by Fennerr in https://github.com/prowler-cloud/prowler/pull/3091
Dependencies
* build(deps): bump cryptography from 41.0.4 to 41.0.6 by dependabot in https://github.com/prowler-cloud/prowler/pull/3078
* build(deps): bump google-api-python-client from 2.110.0 to 2.111.0 by dependabot in https://github.com/prowler-cloud/prowler/pull/3224
* build(deps): bump google-auth-httplib2 from 0.1.1 to 0.2.0 by dependabot in https://github.com/prowler-cloud/prowler/pull/3207
* build(deps): bump jsonschema from 4.18.0 to 4.20.0 by dependabot in https://github.com/prowler-cloud/prowler/pull/3057
* build(deps): bump mkdocs-material from 9.5.2 to 9.5.3 by dependabot in https://github.com/prowler-cloud/prowler/pull/3220
* build(deps): bump shodan from 1.30.1 to 1.31.0 by dependabot in https://github.com/prowler-cloud/prowler/pull/3221
* build(deps): bump slack-sdk from 3.26.0 to 3.26.1 by dependabot in https://github.com/prowler-cloud/prowler/pull/3107
* build(deps): bump tj-actions/changed-files from 39 to 41 in /.github/workflows by dependabot in https://github.com/prowler-cloud/prowler/pull/3235
* build(deps-dev): bump bandit from 1.7.5 to 1.7.6 by dependabot in https://github.com/prowler-cloud/prowler/pull/3179
* build(deps-dev): bump coverage from 7.3.4 to 7.4.0 by dependabot in https://github.com/prowler-cloud/prowler/pull/3233
* build(deps-dev): bump docker from 6.1.3 to 7.0.0 by dependabot in https://github.com/prowler-cloud/prowler/pull/3180
* build(deps-dev): bump freezegun from 1.3.1 to 1.4.0 by dependabot in https://github.com/prowler-cloud/prowler/pull/3222
* build(deps-dev): bump moto from 4.2.11 to 4.2.12 by dependabot in https://github.com/prowler-cloud/prowler/pull/3205
* build(deps-dev): bump pylint from 3.0.2 to 3.0.3 by dependabot in https://github.com/prowler-cloud/prowler/pull/3203
* build(deps-dev): bump pytest-xdist from 3.4.0 to 3.5.0 by dependabot in https://github.com/prowler-cloud/prowler/pull/3071
* build(deps-dev): bump pytest from 7.4.3 to 7.4.4 by dependabot in https://github.com/prowler-cloud/prowler/pull/3232
Tests
* test(audit_info): refactor services tests by n4ch04 and jfagoagas in https://github.com/prowler-cloud/prowler/pull/3103, https://github.com/prowler-cloud/prowler/pull/3112, https://github.com/prowler-cloud/prowler/pull/3099, https://github.com/prowler-cloud/prowler/pull/3098, https://github.com/prowler-cloud/prowler/pull/3100, https://github.com/prowler-cloud/prowler/pull/3102, https://github.com/prowler-cloud/prowler/pull/3101, https://github.com/prowler-cloud/prowler/pull/3104, https://github.com/prowler-cloud/prowler/pull/3105, https://github.com/prowler-cloud/prowler/pull/3110, https://github.com/prowler-cloud/prowler/pull/3116, https://github.com/prowler-cloud/prowler/pull/3119, https://github.com/prowler-cloud/prowler/pull/3118, https://github.com/prowler-cloud/prowler/pull/3117, https://github.com/prowler-cloud/prowler/pull/3121, https://github.com/prowler-cloud/prowler/pull/3120, https://github.com/prowler-cloud/prowler/pull/3122, https://github.com/prowler-cloud/prowler/pull/3125, https://github.com/prowler-cloud/prowler/pull/3123, https://github.com/prowler-cloud/prowler/pull/3124, https://github.com/prowler-cloud/prowler/pull/3126, https://github.com/prowler-cloud/prowler/pull/3127, https://github.com/prowler-cloud/prowler/pull/3129, https://github.com/prowler-cloud/prowler/pull/3130, https://github.com/prowler-cloud/prowler/pull/3128, https://github.com/prowler-cloud/prowler/pull/3133, https://github.com/prowler-cloud/prowler/pull/3134, https://github.com/prowler-cloud/prowler/pull/3135, https://github.com/prowler-cloud/prowler/pull/3131, https://github.com/prowler-cloud/prowler/pull/3136, https://github.com/prowler-cloud/prowler/pull/3137, https://github.com/prowler-cloud/prowler/pull/3138, https://github.com/prowler-cloud/prowler/pull/3139, https://github.com/prowler-cloud/prowler/pull/3140, https://github.com/prowler-cloud/prowler/pull/3141, https://github.com/prowler-cloud/prowler/pull/3143, https://github.com/prowler-cloud/prowler/pull/3142, https://github.com/prowler-cloud/prowler/pull/3145, https://github.com/prowler-cloud/prowler/pull/3144, https://github.com/prowler-cloud/prowler/pull/3146, https://github.com/prowler-cloud/prowler/pull/3147, https://github.com/prowler-cloud/prowler/pull/3150, https://github.com/prowler-cloud/prowler/pull/3149, https://github.com/prowler-cloud/prowler/pull/3148, https://github.com/prowler-cloud/prowler/pull/3151, https://github.com/prowler-cloud/prowler/pull/3152, https://github.com/prowler-cloud/prowler/pull/3155, https://github.com/prowler-cloud/prowler/pull/3156, https://github.com/prowler-cloud/prowler/pull/3157, https://github.com/prowler-cloud/prowler/pull/3153, https://github.com/prowler-cloud/prowler/pull/3158, https://github.com/prowler-cloud/prowler/pull/3154, https://github.com/prowler-cloud/prowler/pull/3159, https://github.com/prowler-cloud/prowler/pull/3161, https://github.com/prowler-cloud/prowler/pull/3132, https://github.com/prowler-cloud/prowler/pull/3111, https://github.com/prowler-cloud/prowler/pull/3160, https://github.com/prowler-cloud/prowler/pull/3097, https://github.com/prowler-cloud/prowler/pull/3163, https://github.com/prowler-cloud/prowler/pull/3164, https://github.com/prowler-cloud/prowler/pull/3113, https://github.com/prowler-cloud/prowler/pull/3114, https://github.com/prowler-cloud/prowler/pull/3115
* test(aws_account_id): refactor by jfagoagas in https://github.com/prowler-cloud/prowler/pull/3161
New Contributors
* venkyvajrala made their first contribution in https://github.com/prowler-cloud/prowler/pull/3038
* AlexGidarakos made their first contribution in https://github.com/prowler-cloud/prowler/pull/3191
* eukub made their first contribution in https://github.com/prowler-cloud/prowler/pull/3227
**Full Changelog**: https://github.com/prowler-cloud/prowler/compare/3.11.3...3.12.0