On this page
The compliance checklist in one paragraph
Neither PCI DSS nor the HIPAA Security Rule names Kafka or Redis, so the work is to show that the broker meets the same controls as any other component in scope: restrict who can reach it, encrypt data in transit, protect stored data, give every user and application an identity with least privilege, log and review access, patch on a schedule, and manage the providers who can touch it. The two gaps that catch teams out are the same in both products: neither open-source Kafka nor open-source Redis encrypts data at rest, so protection for stored card or patient data has to be added before it is written, and neither open-source product documents a built-in tamper-evident audit trail, so access logs have to be shipped off the host. The tables below are grouped by control area, with the PCI DSS v4.0.1 requirement or HIPAA section in each row. Requirement text and product behaviour were checked on 28 October 2026.
Are Kafka and Redis in scope for PCI DSS and HIPAA?
They are in scope when your own scoping says so, and that decision belongs to you and your assessor. PCI DSS v4.0.1 applies to the people, processes and system components that store, process or transmit cardholder data and sensitive authentication data (together, account data), and to components that have unrestricted connectivity to them or could affect their security. A broker that carries payment events, or sits on a network segment with the cardholder data environment, is therefore in scope even if no card number is ever written to a topic. The HIPAA Security Rule applies to electronic protected health information held or transmitted by a covered entity or business associate, so a topic, cache, backup or snapshot that contains ePHI is in scope wherever it runs. HIPAA calls its three groups of controls the administrative, physical and technical safeguards, and the tables below cover all three for a broker.
Two things shrink the work. Keep account data and ePHI out of the broker where you can, by tokenising before you produce or cache it, and segment the brokers from everything that does not need them. Two cautions apply to all the tables that follow: a row is a check that supports a requirement, not proof that you meet it, and requirement wording changes between versions.
PCI DSS: how do you limit who can reach the brokers and harden them?
Allow only the listeners and ports you have approved and written down, remove plaintext and default credentials, and encrypt administrative access. These four checks cover PCI DSS requirements 1, 2.2 and the configuration standards behind them.
| Check | PCI DSS v4.0.1 | Kafka | Redis and Valkey |
|---|---|---|---|
| Limit who can reach the brokers | 1.2.5, 1.3.1, 1.3.2 | Expose only the listeners you use (client, inter-broker, KRaft controller) and document each port and its business need. Allow client traffic from named subnets or security groups only. | Bind to specific interfaces, not all of them. Allow the client port and, in a cluster, the cluster bus port only from application and node addresses. Treat protected mode as a safety net, not a control. |
| Harden the configuration | 2.2.1, 2.2.4, 2.2.5 | Keep a written baseline. Remove PLAINTEXT and SASL_PLAINTEXT listeners, or document the justification and the extra controls (2.2.5). Set auto.create.topics.enable to false where topic creation must be controlled. | Keep a baseline redis.conf or valkey.conf in version control. Restrict dangerous commands such as FLUSHALL, CONFIG, KEYS and DEBUG with ACL rules (-@dangerous). rename-command is marked deprecated. |
| Remove default and sample credentials | 2.2.2 | Kafka does not create users for you, so look for example JAAS entries and shared super.users. If you use OAUTHBEARER, make sure the default unsecured-JWT implementation is not in production; the docs describe it as non-production. | A new instance has a default user with no password and full access. Set a password or turn it off, and create named users with scoped ACLs. |
| Encrypt administrative access | 2.2.7 | Run kafka-topics.sh, kafka-acls.sh and kafka-configs.sh against an SSL or SASL_SSL listener, never a plaintext one. | Use TLS for redis-cli and every admin tool. Keep CONFIG, ACL and DEBUG for admin users only. |
PCI DSS: how do you protect stored and transmitted account data in Kafka and Redis?
Neither product encrypts stored data for you, so make the data unreadable before it is written. PCI DSS 3.5.1.2 says disk-level or partition-level encryption counts on its own only for removable media; on other media the account number must also be made unreadable another way. That rules out relying on an encrypted volume alone for a primary account number in a topic or a cache.
| Check | PCI DSS v4.0.1 | Kafka | Redis and Valkey |
|---|---|---|---|
| Do not retain sensitive authentication data | 3.3.1 | Block CVV, full track data and PIN data at the producer or with schema validation. Records stay in segments until retention expires (log.retention.hours defaults to 168, seven days), and compacted topics keep the latest record per key. | Keep sensitive authentication data out of keys and values. A TTL expires a key, but snapshots, AOF files, replicas and backups taken before expiry still hold it. |
| Render stored PAN unreadable | 3.5.1, 3.5.1.2 | Kafka does not encrypt data at rest: segments, indexes and snapshots are plain bytes. Tokenise, truncate, keyed-hash or encrypt the number before it is produced. Volume encryption alone does not meet 3.5.1.2 on non-removable media. | Open-source Redis has no at-rest encryption feature, and RDB and AOF files hold the dataset. Tokenise or encrypt in the application before the write, or do not store it. Volume encryption alone does not meet 3.5.1.2 on non-removable media. |
| Protect copies and backups | 3.5.1 | Apply the same rule to MirrorMaker 2 targets, tiered-storage remote stores, volume snapshots and any topic exported to a data lake. | Apply it to RDB snapshots, AOF files, replicas and any backup copied to object storage. |
| Manage keys outside the broker | 3.6.1, 3.7.1 | Keep TLS keys and field-encryption keys in a KMS or HSM, not in server.properties. Use config providers (FileConfigProvider, EnvVarConfigProvider) so secrets are not in plain properties. Kafka's docs describe sensitive dynamic configuration in KRaft metadata as not encrypted by Kafka. | Keep tls-key-file and any field-encryption keys under tight file permissions and in a KMS. Keep ACL passwords as SHA256 hashes (#hash rules) in the aclfile, not plain text. |
| Encrypt account data in transit | 4.2.1, 4.2.1.1 | Use SSL or SASL_SSL on client, inter-broker and controller listeners, and keep an inventory of the certificates (4.2.1.1). Requirement 4.2.1 itself covers open, public networks; whether internal broker traffic needs TLS is a scoping decision for you and your QSA. | TLS is optional and off until you set tls-port and the certificate files. Add tls-replication yes and tls-cluster yes so replication and the cluster bus are encrypted. tls-auth-clients defaults to yes, which means mutual TLS. Check your build includes TLS. |
PCI DSS: what access control and authentication do Kafka and Redis need?
Every person and application gets its own identity with the least privilege its job needs, enforced through role-based access controls, authenticated with a strong mechanism and reviewed every six months. Requirements 7 and 8 drive most findings on brokers, because the defaults are open.
| Check | PCI DSS v4.0.1 | Kafka | Redis and Valkey |
|---|---|---|---|
| Grant least privilege | 7.2.1, 7.2.2 | Use the StandardAuthorizer with ACLs per principal, topic and consumer group. Leave allow.everyone.if.no.acl.found at false, so only super users reach a resource with no ACL. Keep super.users short. ZooKeeper mode was removed in Kafka 4.0 (March 2025). | Give each application an ACL user limited to its commands (for example +@read) and key patterns. Key patterns do not restrict FLUSHALL, FLUSHDB or SWAPDB, so deny those commands explicitly. |
| Control application and system accounts | 7.2.5, 8.6.1, 8.6.2, 8.6.3 | One principal per application, with its own SCRAM credential or client certificate. Keep passwords out of scripts and property files with config providers. Rotate on a schedule and on suspected compromise. | One ACL user per application. Load passwords from a secrets store, not from code or config files, and rotate them with ACL SETUSER or the aclfile. Requirement 8.6.2 covers hard-coded passwords for application and system accounts that can log in interactively. |
| Give every person a unique ID | 8.2.1, 8.2.2 | Authenticate administrators as named principals through SASL or mutual TLS. Do not share one super user among engineers. | Create a named ACL user for each administrator. Turn off the default user or give it a password, and avoid shared admin credentials. |
| Use strong authentication and multi-factor authentication | 8.3.1, 8.3.2, 8.3.6, 8.4.2 | Use GSSAPI (Kerberos), OAUTHBEARER with a production token provider, SCRAM-SHA-512 or mutual TLS. Use PLAIN only inside SASL_SSL. Enforce 12-character minimum passwords for human accounts (8.3.6) at the identity provider, and require multi-factor authentication for non-console administrator access into the cardholder data environment (8.4.2). | ACL passwords are stored as SHA256 hashes, so use long random passwords for service users and an identity provider in front of human admin access that enforces multi-factor authentication where 8.4.2 applies. Authenticate over TLS only. |
| Review accounts every six months | 7.2.4 | List ACLs with kafka-acls.sh --list and the SCRAM credentials, compare them with the approved list and record the sign-off. | Export ACL LIST or the aclfile, compare it with the approved list and record the sign-off. Keep the aclfile in version control. |
PCI DSS: how do you log, retain and review Kafka and Redis activity?
Log every access and administrative action, ship the logs off the host, keep 12 months with the latest three immediately available, and review them daily with automated tooling. Neither product gives you this out of the box.
| Check | PCI DSS v4.0.1 | Kafka | Redis and Valkey |
|---|---|---|---|
| Log access and administrative actions | 10.2.1, 10.2.1.2, 10.2.1.4, 10.2.1.5, 10.2.2 | Set the kafka.authorizer.logger log4j logger to INFO to record every denied request, or DEBUG to record allowed requests too. Kafka's docs say there is no built-in tamper-evident audit trail, so ship the log off the broker. | ACL LOG records failed authentication and ACL violations. The open-source docs describe no built-in persistent audit of successful commands, and MONITOR is a debugging command that can cut throughput sharply. Use network or proxy logging, or Redis Software's audit events, which are off by default and go to an external listener. |
| Protect, retain and time-sync logs | 10.3.1 to 10.3.4, 10.5.1, 10.6.1 | Send broker and authorizer logs to a central store with restricted write access, keep 12 months with three immediately available, and synchronise clocks. | ACL LOG is an in-memory list capped by acllog-max-len (128 by default), so export it on a schedule. Keep 12 months, three immediately available, in the central store. |
| Review logs daily and alert on failures | 10.4.1, 10.4.1.1, 10.7.2 | Alert on authorization denials, failed authentications, ACL changes and broker restarts, and automate the daily review. | Alert on new ACL LOG entries, authentication failures and persistence or replication errors, and automate the daily review. |
PCI DSS: how fast must Kafka and Redis be patched, and what else is tested?
Patches for critical vulnerabilities must be installed within one month of release under requirement 6.3.3, and other severities follow your own risk ranking. Version 4.0.1 removed the words "high-security" that v4.0 had in 6.3.3, so check your assessor's reading before you plan a window for high-severity fixes.
| Check | PCI DSS v4.0.1 | Kafka | Redis and Valkey |
|---|---|---|---|
| Patch critical vulnerabilities within one month | 6.3.1, 6.3.3 | Track Apache Kafka security advisories and your distribution's vulnerability notices, give each a risk ranking, and patch critical ones within one month of release. | Track Redis or Valkey security releases the same way. Run a supported release line, and write down who patches and how fast. |
| Inventory custom and third-party components | 6.3.2 | List Kafka Connect plugins, single message transforms, serdes and client libraries. | List modules, client libraries and any Lua scripts in use. |
| Scan and test the brokers | 11.3.1, 11.3.2, 11.4.1 | Include broker and Connect REST ports in quarterly internal scans, in external scans by an approved scanning vendor if any listener is reachable from the internet, and in penetration tests. | Include the Redis port and the cluster bus port in the same scans and tests. |
| Manage third-party providers | 12.8.1, 12.8.2, 12.8.4, 12.8.5 | List every managed-service and support provider that can reach your clusters, hold written agreements, check each provider's PCI DSS status every 12 months and record who owns which requirement. | Do the same for managed Redis and any support vendor with access. |
| Be ready for an incident | 12.10.1 | Write the incident response plan and runbook: revoke ACLs and certificates, rotate SCRAM credentials, preserve logs, notify as the plan requires. | Write the incident response plan and runbook: rotate ACL passwords, disable users, capture ACL LOG, restore from a known-good snapshot. |
HIPAA Security Rule safeguards: which access controls and authentication apply to Kafka and Redis?
Unique identification, authentication, access authorization and audit controls all apply to a broker that holds ePHI. In the tables below, "addressable" does not mean optional: under 45 CFR 164.306(d) you assess the specification and either implement it or document why an equivalent alternative is reasonable. In January 2025 HHS proposed removing the required and addressable distinction (90 FR 898); as of 28 October 2026 no final rule has been published, so the Security Rule text in force is the 2020 text cited here.
| Check | Security Rule section | Status | Kafka | Redis and Valkey |
|---|---|---|---|---|
| Authorize and establish access | 164.308(a)(4)(ii)(B), (C) | Addressable | ACLs per principal, topic and consumer group, approved and reviewed. | ACL users per application and administrator, approved and reviewed. |
| Unique user identification | 164.312(a)(2)(i) | Required | A named principal for every person and application. | A named ACL user for every person and application, with the default user off or password-protected. |
| Emergency access procedure | 164.312(a)(2)(ii) | Required | Document a break-glass super user, keep its credential offline and alert on its use. | Document a break-glass admin ACL user with the same controls. |
| Automatic logoff | 164.312(a)(2)(iii) | Addressable | Limit idle connections and force SASL re-authentication (connections.max.reauth.ms) for administrative sessions. | Use the timeout directive to close idle clients; it is off by default. |
| Person or entity authentication | 164.312(d) | Required | SASL or mutual TLS on every listener. | ACL authentication on every connection, over TLS. |
| Audit controls | 164.312(b) | Required | Authorizer logging at INFO or DEBUG, shipped off the broker. | ACL LOG exported on a schedule, plus network or proxy logging. |
| Review system activity | 164.308(a)(1)(ii)(D) | Required | Review authorizer and broker logs on a set schedule and keep the record. | Review ACL LOG and the logs of your network or proxy layer on a set schedule. |
HIPAA Security Rule safeguards: how do you protect ePHI in transit, at rest and against loss?
Encrypt in transit, add your own protection at rest, and design the cluster so an acknowledged write survives a failure. Encryption at rest and in transit are both addressable specifications (164.312(a)(2)(iv) and 164.312(e)(2)(ii)), so document your decision either way.
| Check | Security Rule section | Status | Kafka | Redis and Valkey |
|---|---|---|---|---|
| Transmission security | 164.312(e)(1), (e)(2)(i), (e)(2)(ii) | Addressable | SSL or SASL_SSL on every listener, including inter-broker and controller. | TLS on client connections, replication and the cluster bus. |
| Encryption at rest | 164.312(a)(2)(iv) | Addressable | Kafka does not encrypt at rest. Use volume encryption against stolen disks and message-level encryption to protect records from broker operators, as Kafka's docs describe. | Open-source Redis has no at-rest encryption feature. Use encrypted volumes and encrypt sensitive values in the application. Redis Software documents file-system encryption. |
| Integrity | 164.312(c)(1), (c)(2) | Standard; (c)(2) addressable | Use acks=all with min.insync.replicas and a replication factor that survive a broker loss. | Replication is asynchronous, so acknowledged writes can be lost on failover. Use persistence and the WAIT command where loss is unacceptable. |
| Data backup, disaster recovery and emergency mode | 164.308(a)(7)(ii)(A) to (C) | Required | Replicate across failure domains and decide whether MirrorMaker 2 or a stretch cluster meets your recovery targets. | Take RDB or AOF backups, run replicas with failover, and store copies encrypted. |
| Test the contingency plan | 164.308(a)(7)(ii)(D) | Addressable | Rehearse a failover and a restore, and record the result. | Restore a snapshot into a test instance on a schedule, and record the result. |
| Security incident response | 164.308(a)(6)(ii) | Required | Write the incident response plan: identify, respond to, mitigate and document incidents, including credential rotation, log preservation and your breach notification procedure. | The same plan, including ACL password rotation and capture of ACL LOG. |
| Media disposal and re-use | 164.310(d)(1), (d)(2)(i), (d)(2)(ii) | Required | Wipe or destroy broker volumes, snapshots and exported segments when you decommission or re-use them. | Wipe volumes and delete RDB files, AOF files and backups when you decommission or re-use them. |
HIPAA Security Rule safeguards: which risk assessment, business associate agreement and documentation duties cover the brokers?
Put the brokers in your risk assessment, sign a business associate agreement with any provider that can reach ePHI, and keep your documentation for six years. These rows are process duties, so the Kafka and Redis columns are the same.
| Check | Security Rule section | Status | What to do for Kafka and Redis |
|---|---|---|---|
| Risk analysis and risk management | 164.308(a)(1)(ii)(A), (B) | Required | Add clusters, topics that carry ePHI, connectors, caches, snapshots and backups to the ePHI inventory and the risk assessment (the HIPAA risk analysis), and record the risk decisions. |
| Periodic evaluation | 164.308(a)(8) | Required | Re-run this checklist after a version upgrade, a new topic or cache that carries ePHI, or a change of provider. |
| Business associate agreements | 164.308(b)(1), 164.314(a) | Required | A managed-service or support provider that can access ePHI may be a business associate. Your compliance team decides, and the vendor contract must be in place before access. |
| Keep documentation for six years | 164.316(b)(1), (b)(2)(i) | Required | Keep configuration baselines, ACL reviews, change records and test results for six years from creation or last effective date. |
HIPAA technical safeguards in plain terms: what do covered entities and healthcare providers owe PHI on a broker?
Every safeguard in the Security Rule comes down to one duty: ensure the confidentiality, integrity and availability of all electronic protected health information (ePHI) you create, receive, maintain or transmit (45 CFR 164.306(a)(1)). A covered entity is a health plan, a health care clearinghouse, or a health care provider that transmits health information electronically in connection with a covered transaction (45 CFR 160.103). If protected health information (PHI) passes through a Kafka topic or sits in a Redis cache, the brokers are part of that duty. The Rule sorts its standards into administrative (164.308), physical (164.310) and technical (164.312) safeguards, and the technical safeguards are the ones you set in the broker.
- Access control. Assign every person and application a unique identity, document emergency access, and consider automatic logoff and encryption (164.312(a)). The Rule does not name role-based access control, so show how your ACLs give each role the permissions it needs and no more.
- Audit logging. Record and examine activity in systems that hold ePHI (164.312(b)), and review audit logs, access reports and security incident reports on a schedule (164.308(a)(1)(ii)(D)). Log access attempts, both allowed and denied, and ship the logs off the broker.
- Authentication. Verify that a person or entity is the one claimed (164.312(d)). The Rule does not require multi-factor authentication (MFA) by name. If you use MFA for administrative access, record it as one of the measures that meets this standard.
- Transmission security. Guard against unauthorized access to ePHI sent over a network (164.312(e)(1)), which is why every listener, replication link and client connection needs TLS.
- Risk analysis and remediation. Assess the risks and vulnerabilities to ePHI, then implement security measures that reduce them to a reasonable and appropriate level (164.308(a)(1)(ii)(A), (B)). Track each gap you find through remediation, set a remediation timeline in your own policy, and keep the record.
- Business associate agreement (BAA). A covered entity may let a business associate handle ePHI only after obtaining satisfactory assurances, in the form of a BAA, that the information will be safeguarded (164.308(b)(1)).
The Rule gives you flexibility of approach: you may use any security measures that reasonably and appropriately implement the standards, taking into account your size, complexity, capabilities, costs and risks (164.306(b)). So these lines show what to document, not a single required configuration. Text checked against 45 CFR Part 164, Subpart C (eCFR) and 45 CFR 160.103 on 28 October 2026. Whether your estate is in scope, and what satisfies your assessor, is a decision for your compliance team.
What evidence should you collect for an assessor?
Collect the same six items for every cluster, dated, so the assessor sees a pattern and not a one-off:
- The written configuration baseline and a diff of the running configuration against it.
- The listener and port inventory with the business reason for each (1.2.5).
- An export of ACLs and users with the date of the last review and the approver (7.2.4).
- The certificate inventory and expiry dates (4.2.1.1).
- Log samples showing a denied request and an administrative change, and the retention setting (10.2, 10.5.1).
- The patch record: advisory, risk ranking, date released, date installed (6.3.3).
Where does AceMQ fit, and where does it not?
AceMQ operates and supports the brokers; it does not assess or attest your compliance, which is your QSA's or auditor's job. For Kafka and Redis estates AceMQ's published evidence for these estates is a written patch and CVE record per advisory, incident and change history, and a written root cause on every P1. The compliance page states a 72-hour target for critical CVEs with a record per advisory, which sits inside the one-month window in 6.3.3. AceMQ supports 160+ customers, has been in business more than 10 years, handles 40+ Severity 1 incidents a year and responds to a P1 in 15 minutes, 24/7.
AceMQ is the wrong choice if you need a PCI assessment, a HIPAA risk analysis or legal advice, or if your brokers are fully hosted by a cloud provider that supplies its own attestation. In that case the provider's evidence matters and the work above shrinks to configuration of your own topics and clients. Regular AceMQ support contracts run $24,000 to $72,000 a year by SLA, scope and deployment.
Method and sources
Requirement numbers and wording come from PCI DSS v4.0.1 (June 2024, PCI Security Standards Council document library) and from 45 CFR Part 164 Subpart C at the eCFR. Version 4.0 was retired on 31 December 2024, and the requirements that were future-dated became mandatory on 31 March 2025. Product behaviour was checked against the Apache Kafka security documentation (release 4.4), the Redis security documentation and the Valkey security documentation on 28 October 2026. Valkey follows Redis for the ACL, TLS and protected-mode behaviour in this checklist, but we did not check its ACL LOG fields, so confirm them for your version.
This page is a configuration checklist, not legal advice or an assessment. Scope, compensating controls and sign-off are decisions for your qualified security assessor or compliance team.
Frequently asked questions
Does PCI DSS require TLS between Kafka brokers and clients inside the network?
Requirement 4.2.1 requires strong cryptography for account data sent over open, public networks, and the standard's guidance calls encryption on internal networks good practice that is not required by that requirement. Whether your internal broker traffic needs TLS depends on your scoping and your assessor. HIPAA 164.312(e) addresses transmission security separately.
Does Kafka or Redis encrypt data at rest?
Not in the open-source releases. Kafka writes log segments, indexes and snapshots as plain bytes and points to volume or message-level encryption. Open-source Redis has no at-rest encryption feature, and its RDB and AOF files hold the dataset. Under PCI DSS 3.5.1.2, volume encryption alone does not protect a stored account number on non-removable media, so protect the data before it is written.
Is Redis or Kafka HIPAA compliant?
Neither HIPAA nor PCI DSS certifies software. The Security Rule applies to covered entities and business associates, so what counts is how you configure and operate the broker and the contracts you hold. This checklist maps configuration to the Security Rule sections that apply.
Are addressable HIPAA specifications optional?
No. Under 45 CFR 164.306(d) an addressable specification must be assessed. You implement it, or document why it is not reasonable and appropriate and put an equivalent alternative in place. Encryption at rest and in transit are both addressable.
Has the HIPAA Security Rule changed?
HHS proposed changes on 6 January 2025 (90 FR 898), including removing the required and addressable distinction. As of 28 October 2026 no final rule has been published, so the existing Subpart C text still applies. Check the Federal Register before you rely on this.
Do I need a business associate agreement for a Kafka or Redis provider?
A provider that creates, receives, maintains, transmits or can access ePHI for you is generally a business associate, and 45 CFR 164.308(b) and 164.314(a) require a written contract before access. Whether a particular provider qualifies is a question for your compliance team or counsel.
How often should the HIPAA risk analysis be updated?
The Security Rule sets no fixed interval. 164.308(a)(8) requires a periodic technical and nontechnical evaluation, repeated in response to environmental or operational changes that affect ePHI, so re-run the risk analysis after a version upgrade, a new topic or cache that carries ePHI, or a change of provider.
What breach notification duties apply if a broker holding ePHI is compromised?
Under the HIPAA Breach Notification Rule (45 CFR 164.400 to 164.414) a covered entity must notify affected individuals without unreasonable delay and no later than 60 calendar days after it discovers a breach of unsecured protected health information. PCI DSS 12.10.1 requires the incident response plan to include notifying the payment brands and acquirer. Write both into the incident response plan, and ask your compliance team which notices apply.
Which PCI DSS version applies?
Version 4.0.1, published in June 2024. Version 4.0 was retired on 31 December 2024, and the future-dated requirements in v4.0.1 became mandatory on 31 March 2025.