Quản lý người dùng và cấu hình RBAC trên ArgoCD

Tram Ho

Trong bài đăng này, chúng ta sẽ tìm hiểu cách tạo người dùng mới và quản lý Cấu hình RBAC trên ArgoCD.

Theo mặc định, ArgoCD cung cấp cho bạn một người dùng quản trị có toàn quyền truy cập vào hệ thống. Không có vấn đề gì nếu bạn làm việc một mình, nhưng khi nhóm của bạn mở rộng quy mô, sếp sẽ hỏi bạn: “Có cách nào để các nhà phát triển kiểm tra nhật ký trên ArgoCD mà không cần nhờ bạn giúp đỡ không?”. Bạn không thể cung cấp quản trị viên người dùng cho các nhà phát triển, vì vậy chúng tôi phải tạo một tài khoản người dùng mới và gán cho nó các quyền thích hợp.

Tạo tài khoản mới

Trong ArgoCD việc tạo tài khoản mới khá đơn giản, chúng ta chỉ cần thao tác với ConfigMap có tên là argocd-cm trong namespace mà chúng ta cài ArgoCD, ví dụ nếu chúng ta cài vào namespace argocd thì cấu hình mặc định là argocd-cm như sau :

Bạn sao chép cấu hình mặc định và tạo tệp có tên argocd-cm.yaml sau đó dán đoạn cấu hình trên vào. Tiếp theo, chúng tôi cập nhật argocd-cm để tạo người dùng với tên người dùng hanli.

Trong thuộc tính dữ liệu của argocd-cm ConfigMap, chúng ta khai báo người dùng mà chúng ta muốn tạo, định dạng như sau:

Mỗi người dùng có thể có hai khả năng:

  • apiKey – cho phép tạo mã thông báo xác thực để truy cập API
  • đăng nhập – cho phép đăng nhập bằng giao diện người dùng

Trong cấu hình trên, chúng tôi đặt tên cho người dùng là hanli và nó chỉ có thể đăng nhập. Tiếp theo, chúng tôi cập nhật Bản đồ cấu hình.

ArgoCD sẽ tạo một người dùng mới có tên hanli. Tiếp theo, chúng ta cần đặt mật khẩu cho người dùng hanli để nó có thể đăng nhập vào ArgoCD, chúng ta chạy lệnh sau.

Giá trị của current-password của quản trị viên. Bây giờ, người dùng hanli có thể đăng nhập vào ArgoCD, mở giao diện người dùng ArgoCD và đăng nhập.

Với tên người dùng và mật khẩu là hanli mà chúng ta đã cấu hình ở trên. Theo mặc định, khi chúng tôi tạo người dùng mới, người dùng đó chỉ có quyền chỉ đọc và không thể thực hiện bất kỳ hành động nào khác. Ví dụ: người dùng hanli cần khởi động lại Triển khai để tất cả các Nhóm của Triển khai đó được cập nhật lên Bản đồ cấu hình mới, nhưng không thể.

Tiếp theo, chúng ta sẽ học cách gán quyền cho người dùng trên ArgoCD.

Cấu hình RBAC

Để thiết lập thêm role RBAC cho người dùng, chúng ta sẽ thao tác với ConfigMap có tên là argocd-rbac-cm , cấu hình mặc định của nó như sau.

Như chúng ta thấy, nó sẽ có một trường policy.default: role:readonly , trường này sẽ cấp quyền chỉ đọc cho người dùng nếu người dùng đó không được cấp quyền ở bất kỳ đâu. Sao chép và dán nó vào tệp có tên argocd-rbac-cm.yaml , để cấp quyền cho người dùng, chúng tôi sẽ thêm một trường có tên là policy.csv như sau:

Chúng tôi sẽ xác định quyền trong trường policy.csv với định dạng.

Hoặc

<role/user/group> là tên của vai trò hoặc người dùng hoặc nhóm.

Tài nguyên: cụm, dự án, ứng dụng, kho lưu trữ, chứng chỉ, tài khoản, gpgkeys, nhật ký, thực thi

Các hành động: lấy, tạo, cập nhật, xóa, đồng bộ hóa, ghi đè, hành động / <group / kind / action-name>

Chúng tôi muốn người dùng có quyền khởi động lại Triển khai, sau đó chúng tôi sẽ định dạng nó như sau.

Tài nguyên chúng ta sẽ để lại là các ứng dụng và với hành động ở định dạng action/<group/kind/action-name> , sau đó chúng ta sẽ có hành động khởi động lại Triển khai dưới dạng action/apps/Deployment/restart .

Tiếp theo, giá trị <object> chúng ta để default/* , mặc định khi chúng ta cài đặt ArgoCD thì nó sẽ có một dự án tên là default, và nếu chúng ta không tạo thêm dự án thì tất cả các ứng dụng mà chúng ta đang chạy sẽ nằm trong dự án mặc định này. . Và giá trị default/* có nghĩa là chúng ta muốn quyền này được áp dụng cho toàn bộ ứng dụng trong dự án mặc định.

Nếu bạn muốn giới hạn nó trong một ứng dụng, hãy khai báo nó là default/<application-name> .

Tuy nhiên, nếu chúng ta có nhiều người dùng, chúng ta cần sao chép tất cả các quyền trên, lúc này ConfigMap của chúng ta sẽ khá dài dòng, ví dụ:

Chúng tôi có thể rút ngắn nó bằng cách tạo một vai trò chung và gán nó cho những người dùng khác nhau, ví dụ như thế này:

Cập nhật argocd-rbac-cmConfigMap, người dùng của chúng tôi sẽ có các quyền tương ứng.

Xong. Hãy like trang DevOps VN để nhận thông báo về những bài viết sớm nhất.

Sự kết luận

Như vậy là chúng ta đã tìm hiểu cách tạo user và quản lý RBAC Configuration trên ArgoCD, các bạn có thể tham khảo thêm tại đây RBAC Configuration. Nếu có thắc mắc hoặc cần giải đáp rõ hơn, bạn có thể hỏi trong phần bình luận bên dưới.

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo