TRANG CHỦDành cho nhà phát triển Cộng đồng Blog Blog Kỹ sư SCSK Phần 5: Thiết kế vai trò tùy chỉnh tỷ lệ cá cược: Tạo điểm để vận hành với ít đặc quyền nhất
Phần 5: Thiết kế vai trò tùy chỉnh tỷ lệ cá cược: Tạo điểm để vận hành với ít đặc quyền nhất
Xin chào, tôi là Ishikawa đến từ SCSK
Cho đến nay, chúng ta đã xem xét các vai trò mặc định do tỷ lệ cá cược cung cấp (quản trị viên, quản trị viên cụm, vv) Tuy nhiên, trong các tình huống thực tế, các yêu cầu chi tiết như ``Tôi muốn xem nhật ký, nhưng tôi không muốn cho phép Pod vào Pod và thực thi các lệnh (Exec)'' hoặc ``Tôi chỉ muốn khởi động lại Pod'' có thể phát sinh
Loạt
- Phần 1: Giới thiệu về quản lý quyền tỷ lệ cá cược: Quyền ban đầu ngay sau khi tạo người dùng và kiểm soát việc tạo dự án
- Phần 2: Vai trò Quản trị viên tỷ lệ cá cược là gì? Lời giải thích thực tế về những gì bạn có thể và không thể làm
- Phần 3: ClusterRoleBinding của tỷ lệ cá cược là gì? Tác động của việc cấp vai trò Quản trị viên cho toàn bộ cụm
- Phần 4: Giải thích quyền quản trị cụm của tỷ lệ cá cược: Sự khác biệt giữa RoleBinding và ClusterRoleBinding
- Phần 5: Thiết kế vai trò tùy chỉnh tỷ lệ cá cược: Tạo điểm để vận hành với ít đặc quyền nhất
- Phần 6: Thiết kế tỷ lệ cá cược RBAC: Cách cấp đặc quyền phù hợp cho từng nhóm
- Phần 7: Liên tục cải tiến việc quản lý đặc quyền tỷ lệ cá cược: Những điểm chính để kiểm tra và đánh giá RBAC
Mục lục
- Các trường hợp cần có vai trò tùy chỉnh
- Tạo và áp dụng các vai trò tùy chỉnh (ví dụ YAML)
- Tập hợp ClusterRole là gì
- Ghi chú về nhãn tổng hợp cho quản trị viên
- Rủi ro bảo trì trong quá trình nâng cấp
- Tóm tắt
1 Các trường hợp cần có vai trò tùy chỉnh
Các yêu cầu sau có thể không được đáp ứng bởi vai trò mặc định
- Trình đọc bản đồ cấu hình:Tôi muốn hiển thị Sơ đồ cấu hình nhưng không muốn hiển thị bất kỳ nội dung nào khác, chẳng hạn như Bí mật
- Trình đọc nhật ký:Tôi muốn hiển thị nhật ký Pod nhưng không muốn hiển thị mã nguồn hoặc bí mật
- Người khởi động lại:Tôi muốn cho phép khởi động lại ứng dụng nhưng tôi muốn cấm thay đổi cài đặt
2 Tạo và áp dụng các vai trò tùy chỉnh (ví dụ YAML)
Ví dụ: hãy tạo một vai trò "chỉ có thể xem và cập nhật ConfigMap (không thể tạo hoặc xóa)"
custom-cm-updateryaml
loại: Vai trò
# Tạo vai trò tùy chỉnh
Bây giờ, người dùng devuser01 sẽ chỉ có thể viết lại ConfigMap
Nếu là yêu cầu đơn giản thì có thể viết như thế này, nhưng trong thực tế hoạt động của doanh nghiệp thường phát sinh yêu cầu như ``Tôi muốn cấp mọi đặc quyền tham chiếu ngoại trừ Bí mật''
Tuy nhiên, có một hạn chế về thông số kỹ thuật rất quan trọng khi thiết kế RBAC cho Kubernetes và tỷ lệ cá cược Đó là bởi vì cơ chế RBAC là"Phương pháp hoàn thành danh sách trắng (phương pháp cộng điểm)"
Do không tồn tại khái niệm “Từ chối (từ chối rõ ràng)” nên hệ thống không cho phép viết linh hoạt như “Cho phép * (tất cả) và chỉ loại trừ Bí mật” Vì vậy để đạt được yêu cầu này"Tạo một ClusterRole tùy chỉnh liệt kê rõ ràng tất cả tài nguyên mà không bao gồm Bí mật"Phương pháp triển khai cụ thể bao gồm một trong các phương pháp sau
- Sử dụng tập lệnh, vv để trích xuất và liệt kê trực tiếp tất cả API cũng như tài nguyên từ máy chủ API đang chạy
- Xuất vai trò đọc cụm do tỷ lệ cá cược cung cấp và tạo vai trò tùy chỉnh dựa trên vai trò đó
Nếu chọn phương pháp thứ hai dựa trên trình đọc cụm, bạn không chỉ phải xóa mô tả tài nguyên bí mật khỏi tệp YAML đã xuất mà còn phải đảm bảo xóa khối Quy tắc tổng hợp cho phép hệ thống tự động tiếp thu các đặc quyền khác
3Tập hợp ClusterRole là gì
Khi tạo vai trò tùy chỉnh, có một số tính năng cần lưu ý, đặc biệt là khi tạo ClusterRole Đó làQuy tắc tổng hợpCác vai trò mặc định của tỷ lệ cá cược (quản trị viên, chỉnh sửa, xem) thực tế không được xác định tĩnh Bao gồm các quy tắc "thu thập" từ các vai trò khác
4Ghi chú về nhãn tổng hợp cho quản trị viên
Hãy thử tạo ClusterRole mới bằng YAML bên dưới
nguy hiểm-scc-aggregationyaml
apiVersion: rbacauthorizationk8sio/v1
Tạo ClusterRole với nhãn rbacauthorizationk8sio/aggregate-to-admin: "true" tự động thêm đặc quyền này (Sử dụng SCC đặc quyền) cho tất cả người dùng có vai trò "Quản trị viên" trong cụm
tổng hợp với quản trị viên: "true" là"Tổng hợp (kết hợp) vai trò và quy tắc của quản trị viên"Nếu bạn nhập cài đặt này, bộ điều khiển tỷ lệ cá cược sẽ tự động ghi lại nội dung của ClusterRole quản trị viên mặc định
Điều này thuận tiện nhưng ngoài ý muốn"Phân quyền"
Ban đầu, trong thông số kỹ thuật tỷ lệ cá cược chính thức, hàm tổng hợp này được định nghĩa là **``một hàm để kết hợp các đặc quyền của tài nguyên tùy chỉnh (CRD)** được người dùng thêm vào các vai trò hiện có''Điều gì sẽ xảy ra nếu bạn sử dụng nó với các tài nguyên bảo mật mạnh (SCC) tiêu chuẩn? Như chúng ta đã thấy cho đến nay, vai trò quản trị viên thông thường không thể cấp bất kỳ quyền nào cho ServiceAccount, ngay cả trong dự án của chính nó Tuy nhiên, với cài đặt này,Quản trị viên quản trị cho tất cả các dự áncó thể tự do khởi động các thùng chứa đặc quyền (các thùng chứa có đặc quyền root hoặc đặc quyền truy cập vào hệ điều hành máy chủ) trong dự án của riêng mình
Hơn nữa, nếu việc tạo được bao gồm trong các động từ trên thì người dùng được cấp quản trị viên thông qua ClusterRoleBinding (xem Phần 3) sẽ có thể đăng ký các quy tắc bảo mật của riêng họ (SCC tùy chỉnh) với các đặc quyền mạnh mẽ cho toàn bộ hệ thống Lưu ý rằng vì SCC là tài nguyên có phạm vi cụm nên điều này không ảnh hưởng đến người dùng được cấp quản trị viên thông qua RoleBinding Bằng cách này, việc thay đổi đặc quyền của tài nguyên tiêu chuẩn sử dụng chức năng tổng hợp phải được xử lý cực kỳ cẩn thận (về nguyên tắc là tránh) trong thiết kế và vận hành
5Rủi ro bảo trì trong quá trình nâng cấp
Nếu bạn trực tiếp chỉnh sửa vai trò tùy chỉnh, đặc biệt là vai trò mặc định, vai trò đó có thể bị đặt lại khi cập nhật tỷ lệ cá cượctỷ lệ cá cược cố gắng hoàn nguyên các vai trò mặc định (ví dụ: quản trị viên) về "những gì lẽ ra phải là" trong quá trình nâng cấp, do đó, các quy tắc được thêm theo cách thủ công có thể biến mất
Các phương pháp hay nhất:
- Không chỉnh sửa vai trò mặc định
- Tạo vai trò tùy chỉnh bằng tên khác
- Khi sử dụng chức năng Tổng hợp, hãy đặt nhãn sau khi hiểu đầy đủ phạm vi ảnh hưởng
6Tóm tắt
Vai trò tùy chỉnh cho phép quản lý quyền linh hoạt nhưng làm tăng chi phí quản lý và thiết kế Bí quyết để giảm tải hoạt động về lâu dài là luôn tự hỏi bản thân: "Tôi có thực sự cần sự kiểm soát chi tiết đó không?" và sử dụng kết hợp các vai trò mặc định (quản trị viên, chỉnh sửa, xem) bất cứ khi nào có thể
Lần tới, chúng tôi sẽ xem xét các quyền phù hợp cho từng nhóm