Bird
Raised Fist0
Kafkadevops~5 mins

Security best practices in Kafka - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of enabling SSL/TLS in Kafka?
SSL/TLS encrypts data in transit between Kafka clients and brokers, protecting it from eavesdropping and tampering.
Click to reveal answer
beginner
Why should Kafka use SASL for authentication?
SASL provides a way to verify the identity of clients and brokers, ensuring only authorized users can connect.
Click to reveal answer
intermediate
What is the role of ACLs (Access Control Lists) in Kafka security?
ACLs control which users or clients can perform actions like reading or writing to topics, helping to enforce permissions.
Click to reveal answer
intermediate
How does Kafka ensure data integrity during transmission?
Kafka uses SSL/TLS to encrypt data and checksums to detect data corruption, ensuring data is not altered in transit.
Click to reveal answer
beginner
What is a best practice for managing Kafka credentials securely?
Store credentials in secure vaults or environment variables, avoid hardcoding them in code or config files, and rotate them regularly.
Click to reveal answer
Which protocol is commonly used to encrypt Kafka client-broker communication?
ATCP
BHTTP
CFTP
DSSL/TLS
What does SASL in Kafka help with?
AAuthentication
BData storage
CMessage formatting
DLoad balancing
What is the main purpose of Kafka ACLs?
AControl access permissions
BEncrypt messages
CCompress data
DMonitor performance
Which of these is NOT a recommended Kafka security practice?
AUsing SSL/TLS encryption
BHardcoding passwords in config files
CImplementing ACLs
DRotating credentials regularly
How can Kafka data integrity be verified during transmission?
AUsing JSON format
BUsing HTTP headers
CUsing checksums
DUsing load balancers
Explain the key security features you should enable when setting up Kafka to protect data and access.
Think about how to protect data in transit, verify users, and control permissions.
You got /4 concepts.
    Describe best practices for managing Kafka credentials and why they are important.
    Consider how to keep passwords safe and reduce risk if leaked.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which of the following is the primary purpose of using SSL/TLS in Kafka security?
      easy
      A. To manage access permissions with ACLs
      B. To authenticate users with usernames and passwords
      C. To encrypt data transmitted between Kafka clients and brokers
      D. To compress messages for faster transmission

      Solution

      1. Step 1: Understand SSL/TLS role in Kafka

        SSL/TLS is used to encrypt data sent over the network to protect it from eavesdropping.
      2. Step 2: Differentiate from other security features

        Authentication uses SASL, and ACLs manage permissions, not encryption.
      3. Final Answer:

        To encrypt data transmitted between Kafka clients and brokers -> Option C
      4. Quick Check:

        SSL/TLS = Encryption [OK]
      Hint: SSL/TLS encrypts data in transit, not authentication or permissions [OK]
      Common Mistakes:
      • Confusing SSL/TLS with authentication methods
      • Thinking ACLs handle encryption
      • Assuming SSL/TLS compresses data
      2. Which of the following is the correct way to enable SASL authentication in Kafka's server.properties file?
      easy
      A. acl.enable=true
      B. security.protocol=PLAINTEXT
      C. ssl.enabled=true
      D. sasl.enabled.mechanisms=PLAIN

      Solution

      1. Step 1: Identify SASL configuration property

        The property sasl.enabled.mechanisms specifies which SASL mechanisms Kafka accepts.
      2. Step 2: Check other options for correctness

        security.protocol=PLAINTEXT disables security, ssl.enabled is not a valid property, and acl.enable is unrelated to SASL.
      3. Final Answer:

        sasl.enabled.mechanisms=PLAIN -> Option D
      4. Quick Check:

        SASL config uses sasl.enabled.mechanisms [OK]
      Hint: SASL uses sasl.enabled.mechanisms property in server.properties [OK]
      Common Mistakes:
      • Using PLAINTEXT disables security
      • Confusing SSL properties with SASL
      • Assuming acl.enable controls authentication
      3. Given the following ACL command, what permission does it grant?
      kafka-acls --add --allow-principal User:Alice --operation Read --topic sales-data
      medium
      A. Alice can read messages from the sales-data topic
      B. Alice can create new topics
      C. Alice can delete the sales-data topic
      D. Alice can write messages to the sales-data topic

      Solution

      1. Step 1: Analyze the ACL command parameters

        The command adds an ACL allowing User:Alice the Read operation on the topic sales-data.
      2. Step 2: Understand the Read operation

        Read permission allows consuming or reading messages from the topic, not writing or deleting.
      3. Final Answer:

        Alice can read messages from the sales-data topic -> Option A
      4. Quick Check:

        ACL Read = Permission to consume messages [OK]
      Hint: Read operation in ACL means permission to consume messages [OK]
      Common Mistakes:
      • Confusing Read with Write permission
      • Assuming Read allows topic deletion
      • Mixing topic creation with ACL permissions
      4. Identify the error in the following Kafka security configuration snippet:
      security.protocol=SASL_PLAINTEXT
      sasl.mechanism=SCRAM-SHA-256
      medium
      A. security.protocol should be SASL_SSL to enable encryption
      B. The property should be sasl.mechanism instead of sasl.mechanisms
      C. SCRAM-SHA-256 is not a valid SASL mechanism
      D. No error, configuration is correct

      Solution

      1. Step 1: Check security.protocol value

        SASL_PLAINTEXT enables SASL but does not encrypt traffic, which is insecure for sensitive data.
      2. Step 2: Recommend secure protocol

        Using SASL_SSL enables SASL authentication with SSL encryption, which is a best practice.
      3. Final Answer:

        security.protocol should be SASL_SSL to enable encryption -> Option A
      4. Quick Check:

        Use SASL_SSL for encrypted SASL connections [OK]
      Hint: SASL_PLAINTEXT lacks encryption; use SASL_SSL for security [OK]
      Common Mistakes:
      • Thinking SASL_PLAINTEXT encrypts data
      • Confusing sasl.mechanism property name
      • Believing SCRAM-SHA-256 is invalid
      5. You want to secure a Kafka cluster so that only authenticated users can produce or consume messages, and all traffic is encrypted. Which combination of settings achieves this best?
      hard
      A. Use PLAINTEXT protocol with ACLs to restrict access, no encryption needed
      B. Enable SSL encryption with security.protocol=SASL_SSL, configure SASL authentication, and set ACLs for user permissions
      C. Enable SASL_PLAINTEXT for authentication and rely on network firewall for encryption
      D. Use SSL only without SASL or ACLs to simplify configuration

      Solution

      1. Step 1: Ensure encryption and authentication

        Using security.protocol=SASL_SSL enables both encryption (SSL) and authentication (SASL).
      2. Step 2: Control access with ACLs

        ACLs restrict which authenticated users can produce or consume messages, enforcing permissions.
      3. Final Answer:

        Enable SSL encryption with security.protocol=SASL_SSL, configure SASL authentication, and set ACLs for user permissions -> Option B
      4. Quick Check:

        Encryption + Authentication + ACLs = Secure Kafka [OK]
      Hint: Combine SASL_SSL, SASL auth, and ACLs for full security [OK]
      Common Mistakes:
      • Using PLAINTEXT disables encryption
      • Relying on firewall instead of encryption
      • Skipping ACLs allows unauthorized access
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard