Nhà thầu cần một kho mã riêng cho một dự án giới hạn, và yêu cầu đến dưới dạng «hãy công khai kho mã» hoặc «cấp cho họ quyền truy cập VPN». Cả hai câu trả lời đều bỏ qua câu hỏi thật. Việc phân quyền kho mã và cổng vào mạng là hai lớp riêng biệt, và quyền quan trọng là quyền cho phép người đó đọc hoặc push vào đúng kho mã đó. Mọi thứ còn lại trong bất kỳ gói nào đều là rủi ro thêm. Hãy thiết kế lớp phân quyền trước, rồi quyết định cần ít đường mạng đến mức nào.

Một ví dụ cụ thể hóa điều này: một lập trình viên bên ngoài, một kho mã, không có máy chủ sản xuất, không có giao diện quản trị. Giữ cố định phạm vi đó khi so sánh các cổng vào.

Hai cổng vào, hai ranh giới khác nhau

Một dịch vụ kho mã có thể truy cập công khai vẫn áp dụng xác thực HTTPS hoặc SSH và phân quyền ứng dụng. Truy cập công khai không có nghĩa là đọc ẩn danh. Cái giá là một trình lắng nghe mà bạn phải duy trì, giám sát và vá.

Cổng VPN có thể giữ trình lắng nghe đó ngoài đường công khai, nhưng một tài khoản VPN rộng có thể làm lộ các dịch vụ không liên quan. Một tên máy chủ công khai còn sót lại, một trình lắng nghe SSH hoặc một họ địa chỉ bạn quên có thể phá vỡ ranh giới chỉ VPN mà bạn tưởng mình có. Vì vậy thiết kế chỉ VPN cần một bản kiểm kê trình lắng nghe, không chỉ một quy tắc tường lửa.

So sánh các đường được phép, không phải nhãn. Dù thế nào, hãy giữ xác thực ứng dụng và kiểm tra danh tính máy chủ thông thường.

Vai trò trong kho mã là đơn vị của quyền

Cấp cho nhà thầu một danh tính riêng với vai trò nhỏ nhất hoàn thành công việc. Xem, push, bảo trì và quản trị là các vai trò khác nhau, và một nhóm cấp mọi dự án nội bộ không giống với quyền truy cập một kho mã. Hãy kiểm tra tên vai trò thực tế trên nền tảng của bạn thay vì cho rằng tên nhóm tương ứng với một vai trò.

Liệt kê mọi thao tác mà công việc thực sự cần. Truy cập qua trình duyệt và vận chuyển Git có thể dùng thông tin xác thực hoặc trình lắng nghe khác nhau. Bản dựng tự động, tải gói và webhook có thể chạy như các danh tính riêng với đường giao hàng riêng, và VPN trên máy tính xách tay không kết nối chúng.

Bảo vệ nội dung của kho mã là công việc riêng. Thay đổi đường vào không xóa một bí mật đã có trong lịch sử, không hạn chế một bản sao được ủy quyền và không bảo vệ máy trạm của người đóng góp.

Thông tin xác thực sống lâu hơn con người

Việc rời đi là nơi quyền truy cập kho mã và quyền truy cập mạng lại tách ra. Gỡ phân quyền kho mã và quyền VPN thông qua chủ sở hữu tương ứng, sau đó kiểm tra token cá nhân, khóa SSH, thông tin xác thực tự động hóa và các phiên đang hoạt động. Khóa triển khai là kẻ sống sót kinh điển: nó có thể giữ quyền đọc hoặc ghi đã cấu hình sau khi người đó rời tổ chức. Xóa khỏi danh sách thành viên không phải là rời đi hoàn toàn.

Kiểm kê thông tin xác thực máy theo chủ sở hữu và mục đích trước khi công việc kết thúc, không phải sau đó. Một token tạo cho bản dựng một tuần có thể sống lâu hơn dự án một năm nếu không ai ghi lại vì sao nó tồn tại.

Xác minh thao tác, sự từ chối và việc rời đi

Trước khi bàn giao, hãy thử ba điều: thao tác được phép trên kho mã thành công, một kho mã không liên quan bị từ chối, và danh tính đã nghỉ không vượt qua. Nếu thiết kế chỉ VPN, hãy xác nhận đường công khai trực tiếp cũ không còn thực hiện được thao tác đó.

Giữ mã và hồ sơ đánh giá, nhưng đừng để quyền truy cập bị lãng quên trở thành kế hoạch khôi phục. Một danh sách bằng văn bản gồm danh tính, vai trò và ngày hết hạn là thứ khiến yêu cầu nhà thầu tiếp theo trở thành quy trình có thể lặp lại.

Bài viết liên quan