diff --git a/checkov/common/runners/runner_registry.py b/checkov/common/runners/runner_registry.py
index 9805499f7..e8b1f64b2 100644
--- a/checkov/common/runners/runner_registry.py
+++ b/checkov/common/runners/runner_registry.py
@@ -29,7 +29,11 @@ class RunnerRegistry(object):
         return self.scan_reports
 
     def print_reports(self, scan_reports, args):
-        if args.output != "json" and args.output != "junitxml" and args.output != "github_failed_only":
+        if args.output not in (
+            "github_failed_only",
+            "json",
+            "junitxml",
+        ):
             print(f"{self.banner}\n")
         exit_codes = []
         report_jsons = []
diff --git a/checkov/terraform/checks/resource/aws/LaunchConfigurationEBSEncryption.py b/checkov/terraform/checks/resource/aws/LaunchConfigurationEBSEncryption.py
index b94e43aa6..c8f2bd97f 100644
--- a/checkov/terraform/checks/resource/aws/LaunchConfigurationEBSEncryption.py
+++ b/checkov/terraform/checks/resource/aws/LaunchConfigurationEBSEncryption.py
@@ -20,15 +20,25 @@ class LaunchConfigurationEBSEncryption(BaseResourceValueCheck):
         :param conf: aws_launch_configuration configuration
         :return: <CheckResult>
         """
-        have_root_block = 0
         for key in conf.keys():
-            if "block_device" in key and "ephemeral" not in key:
-                if isinstance(conf[key][0], dict) and conf[key][0].get("encrypted") != [True]:
+            if (
+                "block_device" in key
+                and
+                "ephemeral" not in key
+            ):
+                if (
+                    isinstance(conf[key][0], dict)
+                    and
+                    conf[key][0].get("encrypted") != [True]
+                    and
+                    # If present, the encrypted flag will be determined by the snapshot
+                    # Note: checkov does not know if snapshot is encrypted, so we default to PASSED
+                    not conf[key][0].get("snapshot_id")
+                ):
                     return CheckResult.FAILED
-            if "root_block_device" in key:
-                # Issue 496 - TF will create unencrypted EBS root by default if whole root_block_device block is omitted.
-                have_root_block = 1
-        if have_root_block == 0: 
+
+        # Issue 496 - TF will create unencrypted EBS root by default if whole root_block_device block is omitted.
+        if "root_block_device" not in conf.keys():
             return CheckResult.FAILED
 
         return CheckResult.PASSED
diff --git a/checkov/terraform/checks/resource/aws/SecurityGroupRuleDescription.py b/checkov/terraform/checks/resource/aws/SecurityGroupRuleDescription.py
index d1a375f8b..c82526c79 100644
--- a/checkov/terraform/checks/resource/aws/SecurityGroupRuleDescription.py
+++ b/checkov/terraform/checks/resource/aws/SecurityGroupRuleDescription.py
@@ -6,8 +6,13 @@ class SecurityGroupRuleDescription(BaseResourceCheck):
     def __init__(self):
         name = "Ensure every security groups rule has a description"
         id = "CKV_AWS_23"
-        supported_resource = ['aws_security_group', 'aws_security_group_rule', 'aws_db_security_group',
-                              'aws_elasticache_security_group', 'aws_redshift_security_group']
+        supported_resource = [
+            'aws_security_group',
+            'aws_security_group_rule',
+            'aws_db_security_group',
+            'aws_elasticache_security_group',
+            'aws_redshift_security_group',
+        ]
         categories = [CheckCategories.NETWORKING]
         super().__init__(name=name, id=id, categories=categories, supported_resources=supported_resource)
 

LaunchConfigurationEBSEncryption gives false-positives, due to not checking snapshot_id
In the relevant `aws_launch_configuration` Terraform docs https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/launch_configuration

```
encrypted - (Optional) Whether the volume should be encrypted or not. 
Do not use this option if you are using snapshot_id as the encrypted flag will be determined by the snapshot.
(Default: false).
```
The relevant part is **Do not use this option if you are using snapshot_id as the encrypted flag will be determined by the snapshot.** `snapshot_id` is not taken into account in the current check:

https://github.com/bridgecrewio/checkov/blob/d67ec380daf81b889e83d4d7c7d33f490525e899/checkov/terraform/checks/resource/aws/LaunchConfigurationEBSEncryption.py#L16-L34
diff --git a/tests/terraform/checks/resource/aws/test_LaunchConfigurationEBSEncryption.py b/tests/terraform/checks/resource/aws/test_LaunchConfigurationEBSEncryption.py
index 095ba42c8..f38bf0f21 100644
--- a/tests/terraform/checks/resource/aws/test_LaunchConfigurationEBSEncryption.py
+++ b/tests/terraform/checks/resource/aws/test_LaunchConfigurationEBSEncryption.py
@@ -78,6 +78,24 @@ class TestLaunchConfigurationEBSEncryption(unittest.TestCase):
         scan_result = check.scan_resource_conf(conf=resource_conf)
         self.assertEqual(CheckResult.FAILED, scan_result)    
 
+    def test_success_with_snapshot_id(self):
+        hcl_res = hcl2.loads("""
+                        resource "aws_instance" "test" {
+                              ami                  = var.ami_id
+                              instance_type        = var.instance_type
+                              key_name             = var.key_name
+
+                              root_block_device {
+                                volume_type = "gp2"
+                                volume_size = var.root_volume_size
+                                snapshot_id = "snap-1234"
+                              }
+                            }
+                        """)
+        resource_conf = hcl_res['resource'][0]['aws_instance']['test']
+        scan_result = check.scan_resource_conf(conf=resource_conf)
+        self.assertEqual(CheckResult.PASSED, scan_result)
+
     def test_success(self):
         hcl_res = hcl2.loads("""
                         resource "aws_instance" "test" {

pip install -e .
parse_log_pytest
pytest
pytest
apt-get update apt-get install -y git
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs @ file:///croot/attrs_1668696182826/work
bc-python-hcl2==0.3.51
boto3==1.12.43
botocore==1.15.49
certifi @ file:///croot/certifi_1671487769961/work/certifi
chardet==3.0.4
-e git+https://github.com/bridgecrewio/checkov.git@22f2eb96f01a92f46ec79365dac14b3fa64f6f05#egg=checkov
colorama==0.4.3
docopt==0.6.2
docutils==0.15.2
dpath==1.5.0
flit_core @ file:///opt/conda/conda-bld/flit-core_1644941570762/work/source/flit_core
gitdb==4.0.5
GitPython==3.1.7
idna==2.8
importlib-metadata @ file:///tmp/build/80754af9/importlib-metadata_1648562407465/work
importlib-resources==5.12.0
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
jmespath==0.10.0
junit-xml==1.8
lark==1.1.9
lark-parser==0.7.8
packaging @ file:///croot/packaging_1671697413597/work
pluggy @ file:///tmp/build/80754af9/pluggy_1648042572264/work
py @ file:///opt/conda/conda-bld/py_1644396412707/work
pytest==7.1.2
python-dateutil==2.9.0.post0
PyYAML==5.3.1
requests==2.22.0
s3transfer==0.3.7
six==1.15.0
smmap==3.0.5
tabulate==0.8.6
termcolor==1.1.0
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
typing_extensions @ file:///croot/typing_extensions_1669924550328/work
urllib3==1.25.7
zipp @ file:///croot/zipp_1672387121353/work

name: checkov
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - attrs=22.1.0=py37h06a4308_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - flit-core=3.6.0=pyhd3eb1b0_0
  - importlib-metadata=4.11.3=py37h06a4308_0
  - importlib_metadata=4.11.3=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - packaging=22.0=py37h06a4308_0
  - pip=22.3.1=py37h06a4308_0
  - pluggy=1.0.0=py37h06a4308_1
  - py=1.11.0=pyhd3eb1b0_0
  - pytest=7.1.2=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py37h06a4308_0
  - typing_extensions=4.4.0=py37h06a4308_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.11.0=py37h06a4308_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - bc-python-hcl2==0.3.51
      - boto3==1.12.43
      - botocore==1.15.49
      - chardet==3.0.4
      - colorama==0.4.3
      - docopt==0.6.2
      - docutils==0.15.2
      - dpath==1.5.0
      - gitdb==4.0.5
      - gitpython==3.1.7
      - idna==2.8
      - importlib-resources==5.12.0
      - jmespath==0.10.0
      - junit-xml==1.8
      - lark==1.1.9
      - lark-parser==0.7.8
      - python-dateutil==2.9.0.post0
      - pyyaml==5.3.1
      - requests==2.22.0
      - s3transfer==0.3.7
      - six==1.15.0
      - smmap==3.0.5
      - tabulate==0.8.6
      - termcolor==1.1.0
      - urllib3==1.25.7
prefix: /opt/conda/envs/checkov

tests/terraform/checks/resource/aws/test_LaunchConfigurationEBSEncryption.py::TestLaunchConfigurationEBSEncryption::test_success_with_snapshot_id
tests/terraform/checks/resource/aws/test_LaunchConfigurationEBSEncryption.py::TestLaunchConfigurationEBSEncryption::test_failure tests/terraform/checks/resource/aws/test_LaunchConfigurationEBSEncryption.py::TestLaunchConfigurationEBSEncryption::test_failure_missing_element tests/terraform/checks/resource/aws/test_LaunchConfigurationEBSEncryption.py::TestLaunchConfigurationEBSEncryption::test_failure_multiple_blocks tests/terraform/checks/resource/aws/test_LaunchConfigurationEBSEncryption.py::TestLaunchConfigurationEBSEncryption::test_failure_omission_root_block_device_1 tests/terraform/checks/resource/aws/test_LaunchConfigurationEBSEncryption.py::TestLaunchConfigurationEBSEncryption::test_failure_omission_root_block_device_2 tests/terraform/checks/resource/aws/test_LaunchConfigurationEBSEncryption.py::TestLaunchConfigurationEBSEncryption::test_success tests/terraform/checks/resource/aws/test_LaunchConfigurationEBSEncryption.py::TestLaunchConfigurationEBSEncryption::test_success_multiple_ordering
checkov/common/runners/runner_registry.py checkov/terraform/checks/resource/aws/LaunchConfigurationEBSEncryption.py checkov/terraform/checks/resource/aws/SecurityGroupRuleDescription.py
checkov/common/runners/runner_registry.py checkov/terraform/checks/resource/aws/LaunchConfigurationEBSEncryption.py checkov/terraform/checks/resource/aws/SecurityGroupRuleDescription.py