security-policies/bundle/compliance/policy/process/ensure_ciphers.rego (30 lines of code) (raw):

package compliance.policy.process.ensure_ciphers import future.keywords.if import future.keywords.in import data.benchmark_data_adapter import data.compliance.lib.common as lib_common import data.compliance.policy.process.data_adapter process_args := benchmark_data_adapter.process_args is_process_args_includes_non_supported_cipher(supported_ciphers) if { ciphers := split(process_args["--tls-cipher-suites"], ",") some cipher in ciphers not is_supported_cipher(supported_ciphers, cipher) } is_process_config_includes_non_supported_cipher(supported_ciphers) if { not process_args["--tls-cipher-suites"] ciphers := data_adapter.process_config.config.TLSCipherSuites cipher := ciphers[_] not is_supported_cipher(supported_ciphers, cipher) } is_supported_cipher(supported_ciphers, cipher) if { cipher in supported_ciphers } finding(rule_evaluation) := lib_common.generate_result_without_expected( lib_common.calculate_result(rule_evaluation), { "process_args": process_args, "process_config": data_adapter.process_config, }, ) apiserver_filter := data_adapter.is_kube_apiserver kubelet_filter := data_adapter.is_kubelet