Cộng đồng blog

TRANG CHỦDành cho nhà phát triển Cộng đồng Blog Blog Kỹ sư SCSK Phần 4: Giải thích quyền quản trị cụm của tỷ lệ cá cược bóng đá đêm nay: Sự khác biệt giữa RoleBinding và ClusterRoleBinding

Phần 4: Giải thích các đặc quyền của quản trị viên cụm tỷ lệ cá cược bóng đá đêm nay: Sự khác biệt giữa RoleBinding và ClusterRoleBinding

Xin chào, tôi là Ishikawa đến từ SCSK

tỷ lệ cá cược bóng đá đêm nay có đặc quyền gốc được gọi là cluster-admin Mọi người có xu hướng nghĩ rằng nếu bạn thêm cái này thì bạn có thể làm bất cứ điều gì, nhưng trên thực tế, hành vi sẽ thay đổi tùy thuộc vào cách bạn thêm nó (loại Binding) Hành vi này rất dễ bị hiểu lầm nên tôi sẽ giải thích sự khác biệt ở đây

Loạt

Mục lục

  1. ClusterRoleBinding là gì
  2. Mẫu A: Khi được gán với ClusterRoleBinding
  3. Mẫu B: Khi được gán với RoleBinding
  4. Thử thay đổi ResourceQuota bằng mẫu B
  5. Thử thay đổi ResourceQuota bằng mẫu B
  6. Thử thao tác CRD và Nút bằng mẫu B
  7. Sự khác biệt về giao diện trên bảng điều khiển web
  8. Bạn nên sử dụng cái nào/Tóm tắt

1CụmRoleBinding là gì

Việc xác định vai trò quản trị viên cụm rất đơn giản và mạnh mẽ

$ oc mô tả clusterrole cluster-admin

Định nghĩa: "Mọi thao tác có thể được thực hiện trên tất cả tài nguyên trong tất cả các nhóm API"

2 Mẫu A: Khi được gán với ClusterRoleBinding

Đây là cách tạo một "quản trị viên tỷ lệ cá cược bóng đá đêm nay" chung

$ oc chính sách adm add-cluster-role-to-user cluster-admin <user>

Trong trường hợp này, người dùng thực sự có quyền kiểm soát toàn bộ cụm Không có hạn chế nào như xóa nút, tạo CRD và làm việc với tất cả các dự án

3Mẫu B: Khi được gán với RoleBinding

Điều gì sẽ xảy ra nếu vai trò quyền lực nhất này chỉ được cấp trong một dự án cụ thể (RoleBinding)?
Tạo người dùng xác minh local-super-user và chỉ cấp vai trò quản trị viên cụm cho ocp-prj02

# Cấp quyền quản trị viên cụm bằng Ràng buộc vai trò

Người dùng này sẽ hoạt động như một "siêu người dùng" trong ocp-prj02

4 Hãy thử thay đổi ResourceQuota bằng mẫu B

Trong phiên thứ hai, không thể thay đổi ResourceQuota với vai trò Quản trị viên thông thường
Còn siêu người dùng cục bộ lần này thì sao?

# Chuyển đổi người dùng

Thành công
Đây là tính năng lớn nhất của "quản trị viên cụm liên kết với dự án" Người dùng có đặc quyền này có thể tạo, thay đổi và xóa ResourceQuotas trong dự án, điều này bị cấm đối với vai trò Quản trị viên

Tại sao tôi có thể thay đổi nó?

Vai trò quản trị viên cụm có các động từ quy tắc: ["*"], tài nguyên: ["*"] (có thể thực hiện mọi thao tác trên tất cả tài nguyên) Khi được liên kết với một dự án cụ thể bằng RoleBinding, nó sẽ có hiệu lực đối với các tài nguyên trong dự án (ResourceQuota là tài nguyên của dự án) Mặt khác, vai trò quản trị viên không bao gồm bất kỳ quy tắc nào để chỉnh sửa ResourceQuota ngay từ đầu

5 Hãy thử thay đổi ResourceQuota bằng mẫu B

Việc cấp đặc quyền SCC thì sao?

$ oc chính sách adm add-scc-to-user bất kỳ -z mặc định -n ocp-prj02

Không thành công Bây giờ hãy trực tiếp tạo và cấp tài nguyên RoleBinding

$ oc tạo liên kết vai trò mặc định-anyuid-ràng buộc \

Tôi đã có thể cấp quyền lần này

Tại sao lệnh chính sách oc adm không thành công và việc tạo RoleBinding thành công?

oc adm chính sách add-scc-to-user gây ra lỗi do lệnh nội bộ cố gắng tham chiếu (GET) hệ thống ClusterRoleBinding hiện có:tỷ lệ cá cược bóng đá đêm nay:scc:anyuid Mặc dù siêu người dùng cục bộ là toàn năng trong dự án mục tiêu nhưng đã xảy ra lỗi ở giai đoạn xử lý nội bộ này do nó không có quyền truy cập vào các tài nguyên trong phạm vi cụm

Mặt khác, RBAC của tỷ lệ cá cược bóng đá đêm nay được thiết kế nghiêm ngặt để ngăn chặn việc leo thang đặc quyền, do đó, ngay cả quản trị viên dự án thông thường (người dùng có vai trò quản trị viên) cũng không được phép ràng buộc và cấp các đặc quyền SCC cho những người khác mà họ không có

Tuy nhiên, quá trình tạo RoleBinding thủ công đã thành công vì "siêu người dùng cục bộ" thực hiện thao tác lần này đã được cấp đặc quyền quản trị viên cụm (quản trị viên cấp cao) làm ràng buộc cục bộ cho dự án ocp-prj02 mục tiêu Vì tôi có toàn quyền kiểm soát tất cả các tài nguyên trong dự án (bao gồm khả năng liên kết bất kỳ vai trò nào), nên tôi có thể tạo ràng buộc dưới dạng quyền hợp pháp mà không bị kiểm tra cấp trên phát hiện

Điều này dẫn đến ``tài khoản dịch vụ mặc định'' (và các Pod chạy trong tài khoản đó) trong dự án ``ocp-prj02'' có khả năng khởi chạy các quy trình đặc quyền chỉ sử dụng bất kỳ SCC nào trong dự án đó Không có vấn đề gì nếu hành vi đó là cố ý, nhưng bạn cần cẩn thận nếu hành vi đó là ngoài ý muốn

Khi sử dụng tài khoản dịch vụ và SCC, điều quan trọng là luôn thiết kế các hoạt động dựa trên ``nguyên tắc đặc quyền tối thiểu'' từ quan điểm bảo trì và bảo mật
Lần này, chúng tôi đã chỉ định SCC làm tài khoản dịch vụ mặc định cho mục đích xác minh nhưng không khuyến khích sử dụng tài khoản này cho hoạt động thực tế Nếu bạn đặt đặc quyền mặc định, có nguy cơ các Pod không liên quan khác đang chạy trong dự án đó cũng sẽ có đặc quyền Khi cấp SCC, hãy đảm bảo tạo một tài khoản dịch vụ riêng (ví dụ: my-app-sa) dành riêng cho ứng dụng đó và thiết kế nó để liên kết với nó

6 Hãy thử các thao tác CRD và Node với mẫu B

Còn các hoạt động bên ngoài dự án thì sao?

# Nhận thông tin nút

Không thành công
Ngay cả khi tài nguyên: ["*"] được chỉ định trong định nghĩa vai trò (Quy tắc), miễn là chúng được liên kết bằng RoleBinding thì chỉ những tài nguyên tồn tại trong Không gian tên mới có thể được thao tác Các nút và CRD không thể bị thao túng vì chúng là các tài nguyên không thuộc về Không gian tên (phạm vi cụm)

7 Sự khác biệt về ngoại hình trên bảng điều khiển web

Sự khác biệt này có thể hơi khó hiểu trên bảng điều khiển web

8Bạn nên sử dụng cái nào/Tóm tắt

Mặc dù bị giới hạn trong dự án mục tiêu, quản trị viên cụm cục bộ (mẫu B) cho phép thực hiện các thao tác sau mà vai trò quản trị viên thông thường không thể thực hiện được

  • Làm việc với các ràng buộc bảo mật (SCC):Bạn có thể tự do gắn các đặc quyền (SCC) như bất kỳ quyền nào hoặc đặc quyền vào các tài khoản dịch vụ trong dự án theo quyết định riêng của mình
  • Hoạt động giới hạn tài nguyên:Bạn có thể tạo, sửa đổi và xóa ResourceQuota và LimitRange do chính quản trị viên cơ sở hạ tầng đặt và ghi đè các giới hạn
  • Giới thiệu Toán tử phạm vi không gian tên:Nếu OperatorGroup được định cấu hình trước, có thể cài đặt và quản lý các Toán tử đóng trong một dự án Tuy nhiên, điều này có thể không thực hiện được trong mọi trường hợp vì nó phụ thuộc vào cấu hình OLM
  • Hoạt động tài nguyên tùy chỉnh (CR) không xác định:Các quyền được cấp bằng ký tự đại diện (*), do đó bạn có đầy đủ đặc quyền hoạt động không chỉ đối với các tài nguyên tiêu chuẩn mà còn đối với các CR không xác định được đưa vào bởi các công cụ của bên thứ ba

Dựa trên những điều này, các phương pháp cấp quyền như sau

Phương thức cấp Vai trò Các trường hợp sử dụng được đề xuất và biện pháp phòng ngừa
Liên kết vai trò cụm Quản trị viên tỷ lệ cá cược bóng đá đêm nay [Hoạt động tiêu chuẩn]Chỉ dành cho nhóm vận hành nền tảng và quản lý cơ sở hạ tầng Chỉ cấp đầy đủ đặc quyền khi cần thiết để duy trì và quản lý toàn bộ cụm
Ràng buộc vai trò Quản trị viên cấp cao dự án [Hoạt động đặc biệt]Trong môi trường phát triển, vv, đây là biện pháp cuối cùng khi bạn muốn ủy quyền hoàn toàn quyền quyết định cài đặt Toán tử và quản lý hạn ngạch cho nhóm của mình Theo nguyên tắc chung, nó không nên được sử dụng trong môi trường sản xuất vì nó có nguy cơ khởi động một vùng chứa đặc quyền

Ghi chú hoạt động

Trong môi trường nhiều người thuê, vai trò quản trị viên tiêu chuẩn thường đủ để cấp quyền cho nhóm phát triển và người quản lý dự án "Quản trị viên cụm cục bộ" có nguy cơ leo thang đặc quyền (tự cấp đặc quyền), vì vậy hãy tránh cấp đặc quyền một cách dễ dàng
Ngoài ra, ngay cả khi cần cấp SCC (anyuid, vv) do yêu cầu, tài khoản dịch vụ mặc định của dự án không được có đặc quyền, nhưng hãy đảm bảo tạo một "tài khoản dịch vụ dành riêng cho ứng dụng (ví dụ: my-app-sa)" riêng biệt và đảm bảo thiết kế ràng buộc các đặc quyền tối thiểu

Lần tới, tôi muốn xem xét việc tạo vai trò tùy chỉnh và ghi chú vận hành

Chọn nền tảng container hàng đầu trong ngành

tỷ lệ cá cược bóng đá đêm nay không chỉ nâng cao hiệu quả vận hành cơ sở hạ tầng mà còn cung cấp các chức năng cần thiết để các nhà phát triển ứng dụng có thể tập trung phát triển mã nguồn