Chuyển tới nội dung chính

Tổng quan ACL

Truy cập vào database Kafka được kiểm soát qua hai bước độc lập, và nhầm lẫn giữa chúng là lý do phổ biến khiến ứng dụng kết nối thành công rồi lỗi ở mọi thao tác.

BướcLàm gìThiếu nó thì
Kafka userXác thực client với database qua SASLClient không kết nối được
ACLPhân quyền cho user đó trên từng topic và consumer groupClient kết nối được nhưng không truy cập được gì

Producer, consumer và Kafka Connect đều xác thực dưới danh nghĩa một Kafka user. Tính năng này chỉ áp dụng cho engine Kafka.

ghi chú

Kafka user không có ACL thì không truy cập được gì. Hãy cấp ACL sau khi tạo user.

Các cơ chế SASL

User được tạo với một trong ba cơ chế: PLAIN, SCRAM-SHA256 hoặc SCRAM-SHA512. Lựa chọn này không chỉ là chuyện mạnh yếu.

cảnh báo

Tạo hoặc cập nhật user với SASL/PLAIN sẽ khởi động lại database Kafka, làm gián đoạn producer và consumer. Cơ chế SCRAM thì không. Hãy ưu tiên SCRAM, hoặc đặt lịch thay đổi PLAIN ngoài giờ cao điểm.

ACL cấp được những gì

ACL áp dụng ở mức database và có hiệu lực ngay, không cần khởi động lại. Mỗi ACL nêu một resource type, một prefix, và các thao tác được phép trên đó. Một user giữ được nhiều ACL.

Với Topic:

Thao tácCho phép
AllMọi thao tác trên topic.
AlterSửa các tham số DANGER của topic trong Kafka UI.
AlterConfigsSửa các tham số không thuộc nhóm DANGER của topic trong Kafka UI.
ReadĐọc nội dung topic.
WriteGhi dữ liệu vào topic.

Với Consumer group:

Thao tácCho phép
DeleteXóa group.
DescribeXem chi tiết group.
ReadĐọc nội dung group.

Prefix quyết định phạm vi. Nhập All để phủ mọi topic hoặc mọi consumer group; giá trị khác sẽ phủ các resource có tên bắt đầu bằng giá trị đó.

Làm sao cho an toàn

  • Tạo một user cho mỗi ứng dụng hoặc dịch vụ, để thu hồi quyền mà không ảnh hưởng những cái khác.
  • Cấp theo prefix thay vì theo từng resource. ACL theo prefix vẫn đúng khi số topic tăng lên.
  • Tách quyền producer và consumer sang các user khác nhau nếu kiến trúc của bạn cho phép.
  • Chỉ cấp All khi có lý do cụ thể.
  • Đổi mật khẩu định kỳ, và rà lại danh sách ACL để gỡ những gì ứng dụng không còn dùng.
  • Tránh tạo user vào giờ cao điểm, vì cơ chế PLAIN kích hoạt khởi động lại.

Bước tiếp theo