Cách Mercari phân phối Claude Code an toàn trong nội bộ

@hermes_code
TIẾNG NHẬT2 ngày trước · 14 thg 7, 2026
836K
941
91
3
2.8K

TL;DR

Bài viết này phân tích khung bảo mật của Mercari để triển khai Claude Code, bao gồm các cấu hình JSON cụ thể để chặn các lệnh nguy hiểm và bảo vệ các tệp tin nhạy cảm.

"Tôi hiểu là nó tiện lợi. Nhưng thành thật mà nói, việc AI có thể thực thi lệnh trên máy tính của nhân viên chẳng đáng sợ hay sao?"

Đây là mối quan ngại phổ biến nhất mà tôi nghe được từ các nhà điều hành khi hỗ trợ triển khai AI. AI chỉ hoạt động trong trình duyệt, như ChatGPT, thì không đáng sợ bằng. Nhưng Claude Code có thể đọc file trên máy tính của nhân viên, thực thi lệnh và truy cập internet. "Tôi biết nó giúp mọi thứ nhanh hơn. Nhưng ai chịu trách nhiệm nếu có sự cố xảy ra?" Nhiều công ty có lẽ đang mắc kẹt ở điểm này.

Một tập đoàn lớn đã đưa ra câu trả lời cho nỗi lo đó. Mercari gần đây đã chia sẻ "cài đặt bảo mật và phương pháp phân phối" mà họ sử dụng khi triển khai Claude Code cho hàng trăm nhân viên trong một buổi học tập.

Hơn nữa, nội dung không phải là về các hệ thống độc quyền đắt tiền. Bằng cách chuẩn bị và phân phối một file cấu hình duy nhất, ngay cả các doanh nghiệp vừa và nhỏ (SME) cũng có thể sao chép phần lớn giải pháp này.

Lý do Mercari có thể phân phối cho hàng trăm người không phải là một cơ chế chi phí cao, mà chỉ là một "file cấu hình mà nhân viên không thể gỡ bỏ." Các SME cũng có thể làm điều tương tự ngay từ hôm nay.

Trong bài viết này, tôi sẽ phân tích thiết kế của Mercari một cách đơn giản nhất có thể, bao gồm "điều gì cần sợ," "cách Mercari quản lý nó," và "công ty bạn có thể bắt đầu từ đâu." Tôi sẽ giải thích các thuật ngữ kỹ thuật khi chúng xuất hiện, để các nhà điều hành không phải kỹ sư và PM có thể theo dõi.

Bạn có thể tìm thấy tài liệu thuyết trình được tham chiếu tại đây:

(Cài đặt Bảo mật Triển khai Tổ chức Claude Code của Mercari / Speaker Deck).

Cú pháp chính xác cho các cài đặt đã được xác minh dựa trên tài liệu chính thức của Anthropic.

Tại sao Claude Code "Tiện lợi nhưng Đáng sợ"?

Đầu tiên, hãy làm rõ bản chất của nỗi sợ. Tôi cảm thấy rằng nếu bạn chỉ sao chép cài đặt mà không hiểu điều này, bạn sẽ không biết mình thực sự đang bảo vệ điều gì.

Điều làm cho Claude Code khác biệt so với chat AI tiêu chuẩn là nó có thể tự hành động trong máy tính cục bộ của bạn. Nó có thể tìm kiếm và đọc file, viết lại chúng và thực thi các lệnh shell (các lệnh được gõ trong terminal). Nó cũng có thể truy cập internet. Nói cách khác, hầu như bất cứ điều gì bạn có thể làm trên máy tính đó, AI cũng có thể làm được.

Cụ thể, điều gì có thể xảy ra sai sót? Máy tính thường chứa những thứ bạn không muốn bị nhìn thấy:

  • Thông tin hoạt động như mật khẩu cho cloud hoặc API (các file cấu hình như .env, ~/.aws/credentials, v.v.)
  • Khóa để đăng nhập vào máy chủ (nội dung của ~/.ssh/)
  • Các file quan trọng mà nếu bị xóa sẽ là thảm họa

AI không có ác ý. Tuy nhiên, do các hướng dẫn mơ hồ hoặc lệnh được nhúng trong văn bản đáng ngờ trên web (được gọi là prompt injection), nó có thể vô tình đọc các file bí mật này và gửi chúng ra internet, hoặc xóa các mục quan trọng bằng lệnh rm. Tài liệu chính thức của Anthropic khuyến nghị một thiết kế hạn chế quyền dựa trên các rủi ro này (Cài đặt Quyền - Chính thức).

Tóm lại, có ba thứ cần bảo vệ: ngăn thông tin bí mật bị rò rỉ, ngăn các thao tác nguy hiểm được thực hiện tự động và thu hẹp phạm vi có thể chạm tới. Các biện pháp của Mercari trở nên dễ hiểu hơn nhiều khi đọc qua ba lăng kính này.

Phân tích "5 Biện pháp" của Mercari

Bài thuyết trình của Mercari đã tóm tắt năm biện pháp chính. Chúng ta sẽ xem xét "mục đích" và "cách triển khai" cho từng biện pháp.

Xin lưu ý rằng các slide thuyết trình tập trung vào các khái niệm và không bao gồm mọi chi tiết của file cấu hình. Do đó, tôi sẽ trình bày điều này dưới dạng "cách triển khai chính sách của Mercari bằng cài đặt chính thức của Claude Code." Các tên khóa và cú pháp đều được xác minh từ tài liệu chính thức của Anthropic.

Biện pháp ①: Bắt buộc Xác nhận của Con người "Không thể Bỏ qua"

Claude Code có chế độ tự động tiến hành mà không yêu cầu xác nhận mỗi lần. Mặc dù tiện lợi cho các nhà phát triển trên máy tính thử nghiệm của họ, nhưng cho phép điều này khi phân phối cho mọi người trong công ty sẽ loại bỏ các phanh an toàn.

Mercari đã vô hiệu hóa "chế độ bỏ qua xác nhận" này. Về mặt chính thức, các cài đặt như permissions.disableBypassPermissionsMode (và disableAutoMode để chặn chế độ tự động) có sẵn. Đặt các cài đặt này thành "disable" sẽ ngăn người dùng vào các chế độ đó. Hơn nữa, nếu được đặt trong "cài đặt được quản lý" được mô tả sau, nhân viên không thể tự vô hiệu hóa chúng (Cài đặt Quyền - Chính thức).

Ý nghĩa rất đơn giản: nó thực thi quy tắc "con người phải OK trước khi AI hành động" trên toàn công ty.

Biện pháp ②: Dừng các Lệnh Nguy hiểm hoặc Luôn Xác nhận

Tiếp theo, chúng ta đặt một dây xích cho chính các lệnh. Ví dụ: curl (một lệnh để tìm nạp dữ liệu từ internet). Nếu được sử dụng tự do, nó có thể trở thành một con đường để gửi các file bí mật ra bên ngoài.

Trong Claude Code, bạn có thể đặt danh sách deny cho các lệnh cụ thể và danh sách ask yêu cầu xác nhận trước khi thực thi. Cú pháp trông như thế này:

json
1{
2 "permissions": {
3 "deny": [
4 "Bash(curl:*)",
5 "Bash(wget:*)"
6 ],
7 "ask": [
8 "Bash(git push:*)"
9 ]
10 }
11}

Bash(curl:*) có nghĩa là "chặn tất cả các lệnh bắt đầu bằng curl" (phần :* ở cuối đại diện cho "bất cứ thứ gì sau đó"). Một lưu ý quan trọng: tài liệu chính thức nêu rõ rằng việc cố gắng cho phép curl chỉ cho các đích cụ thể như GitHub có thể dễ dàng bị vượt qua thông qua chuyển hướng. Do đó, khuyến nghị chính thức là chặn hoàn toàn giao tiếp internet và thống nhất các lần tìm nạp cần thiết thông qua một cổng an toàn riêng biệt (Cài đặt Quyền - Chính thức). "Cổng an toàn" này là WebFetch (một tính năng tích hợp của Claude Code để truy xuất internet), nơi các đích đến có thể được đưa vào danh sách cho phép.

Biện pháp ③: Ngăn Đọc File Bí mật và Sửa đổi Hệ thống

Chúng ta cũng chặn quyền truy cập vào chính thông tin bí mật, chẳng hạn như các file .env nơi chứa mật khẩu hoặc lệnh sudo được sử dụng cho các thay đổi hệ thống sâu.

json
1{
2 "permissions": {
3 "deny": [
4 "Read(.env)",
5 "Read(.env.*)",
6 "Read(**/.ssh/**)",
7 "Bash(sudo:*)"
8 ]
9 }
10}

Viết Read(.env) làm cho .env không thể đọc được ở bất kỳ cấp nào trong thư mục làm việc. Một điều cần biết để đảm bảo an toàn là mặc dù danh sách từ chối này hoạt động chống lại việc đọc file của chính Claude hoặc các lệnh rõ ràng như cat, nó không thể hoàn toàn ngăn chặn một tập lệnh do AI viết mở file một cách bí mật trong nền (Cài đặt Quyền - Chính thức). Đó là lý do tại sao Biện pháp ④ là cần thiết.

Biện pháp ④: Bao bọc "Tầm với" bằng một Sandbox

Trong khi danh sách từ chối là về việc vạch ra ranh giới cho các lệnh cụ thể, sandbox tạo ra một bức tường ở cấp độ hệ điều hành. Nó hạn chế vật lý AI chạm vào bất cứ thứ gì bên ngoài thư mục làm việc hoặc kết nối với bất cứ thứ gì khác ngoài các tên miền internet được phép.

json
1{
2 "sandbox": {
3 "enabled": true,
4 "network": {
5 "allowedDomains": ["*.github.com", "registry.npmjs.org"]
6 }
7 }
8}

Khi được bật, ngay cả khi AI vô tình với tới một file bí mật, nó cũng không thể truy cập được vì nó nằm ngoài "sandbox." Tài liệu chính thức giải thích rằng bạn nên phân lớp cả danh sách từ chối (Biện pháp ② & ③) và sandbox để có ranh giới cuối cùng (Sandboxing - Chính thức). Hãy nghĩ về nó như việc có cả quy tắc cá nhân và hàng rào chu vi.

Một hạn chế: Sandbox hoạt động trên macOS, Linux và WSL2 (Linux trên Windows), nhưng nó không được hỗ trợ trên Windows gốc. Trong các môi trường làm việc tập trung vào Windows, quyết định sẽ là tăng cường cài đặt quyền trong Biện pháp ①–③.

Biện pháp ⑤: Bắt AI Đọc "Những gì Cần Bảo vệ" Mỗi Lần

Cuối cùng, một góc nhìn khác ngoài các cài đặt cứng nhắc: viết chính sách bảo mật của công ty vào một cuốn sách hướng dẫn mà AI đọc mỗi lần. Nếu cài đặt là "khóa vật lý," thì đây giống như một "buổi xem xét nội quy công ty."

Có một số cách kỹ thuật để làm điều này, và không rõ từ tài liệu là Mercari đã sử dụng cách nào. Tuy nhiên, cách dễ nhất là đặt một file có tên CLAUDE.md trực tiếp trong thư mục làm việc và liệt kê các quy tắc nội bộ ở đó. Claude Code đọc file này mỗi lần.

markdown
1# Security Requests
2- Do not open .env or key files (~/.ssh/, etc.)
3- Do not send customer info or trade secrets to external services
4- Always confirm with a human before executing delete or publish operations

Hành động cho hôm nay: Chỉ cần dán ba dòng này vào một file CLAUDE.md sẽ thêm một lớp kiến thức phổ thông vào hành vi của AI. Bạn có thể bắt đầu với điều này ngay cả trước khi có các file cấu hình.

Hành động cho hôm nay: Bạn không cần phải triển khai mọi thứ cùng một lúc. Hãy bắt đầu bằng cách chỉ thêm dòng Read(.env) từ Biện pháp ③ vào một file cấu hình có tên .claude/settings.json. Tạo một thư mục có tên .claude (bao gồm cả dấu chấm ở đầu) trong thư mục dự án của bạn và lưu một file văn bản có tên settings.json bên trong nó. Nếu bạn muốn nó áp dụng cho tất cả các dự án, hãy đặt nó vào ~/.claude/settings.json trong thư mục home của bạn. Bạn có thể bắt đầu với bước đi hiệu quả nhất: ngăn AI đọc các file bí mật.

Kỹ năng thực sự của Mercari nằm ở "Phân phối"

Cho đến nay, chúng ta đã đề cập đến "những gì cần đặt." Bài thuyết trình của Mercari đặc biệt thực tế vì nó đề cập đến cách phân phối các cài đặt này cho hàng trăm người.

Thông thường, các file cấu hình được đặt trên máy tính của từng người (cài đặt người dùng), nghĩa là nhân viên có thể viết lại chúng. Điều này dẫn đến các tình huống như "cài đặt bảo mật đã được phân phối, nhưng ai đó đã vô hiệu hóa chúng."

Để giải quyết vấn đề này, Mercari đã sử dụng MDM (Mobile Device Management — một hệ thống để công ty quản lý máy tính của nhân viên) để phân phối đồng thời "cài đặt được quản lý" mà nhân viên không thể ghi đè. Claude Code có một vị trí được chỉ định cho cài đặt được quản lý, ưu tiên hơn cài đặt cá nhân và không thể bị thay đổi bởi người dùng. Trên macOS, đây là /Library/Application Support/ClaudeCode/managed-settings.json (Cài đặt - Chính thức). Bằng cách viết Biện pháp ①–④ ở đây, chúng không thể bị nới lỏng tại chỗ.

Thông minh hơn nữa là phân biệt mức độ an toàn cho kỹ sư và người không phải kỹ sư:

  • Dành cho Kỹ sư: Cài đặt cho phép một số tùy chỉnh và không cản trở năng suất quá nhiều.
  • Dành cho Người không phải Kỹ sư: Cài đặt mặc định an toàn nhất với ít chỗ để tinh chỉnh hơn.

Ngay cả đối với cùng một công cụ, họ đã điều chỉnh độ dài của dây xích dựa trên trình độ của người dùng. Nếu mọi người đều bị hạn chế nghiêm ngặt, công việc sẽ bị đình trệ; nếu mọi người đều thoải mái, tai nạn sẽ xảy ra. Họ đã giải quyết vấn đề này bằng cách thay đổi các cài đặt được phân phối.

Nơi các SME Có thể Bắt đầu Sao chép

Hầu hết các công ty có lẽ không có MDM. Điều đó không sao cả. Bạn có thể trích xuất các phần trong thiết kế của Mercari hoạt động bất kể quy mô.

Tất cả những gì bạn cần làm là phân phối một file duy nhất với cài đặt an toàn và yêu cầu đặt nó vào đúng chỗ. Nếu bạn có MDM, hãy phân phối nó dưới dạng cài đặt được quản lý; nếu không, hãy chia sẻ nó và nói, "Vui lòng đặt settings.json này vào thư mục .claude/ của bạn." Việc thực thi thấp hơn, nhưng hướng đi là giống nhau.

Là một bộ tối thiểu, kết hợp Biện pháp ①–③ trông như thế này. Tôi khuyên bạn nên sử dụng cái này làm nền tảng và thêm bất kỳ lệnh cụ thể nào mà công ty bạn muốn cấm.

json
1{
2 "permissions": {
3 "disableBypassPermissionsMode": "disable",
4 "deny": [
5 "Bash(curl:*)",
6 "Bash(wget:*)",
7 "Bash(sudo:*)",
8 "Read(.env)",
9 "Read(.env.*)",
10 "Read(**/.ssh/**)"
11 ],
12 "ask": [
13 "Bash(git push:*)",
14 "Bash(rm:*)"
15 ]
16 }
17}

Từ trên xuống dưới: vô hiệu hóa bỏ qua xác nhận, chặn giao tiếp internet và thao tác quản trị, cấm đọc file bí mật và luôn xác nhận xóa hoặc xuất bản. Ngay cả khi bạn không hiểu nội dung, nó sẽ hoạt động nếu bạn sao chép và dán nó.

Nếu phân phối cho người không phải kỹ sư, tôi khuyên dùng phiên bản an toàn nhất, bổ sung thêm sandbox (Biện pháp ④). Kết hợp hai cài đặt thành một file trông như thế này:

json
1{
2 "permissions": {
3 "disableBypassPermissionsMode": "disable",
4 "deny": [
5 "Bash(curl:*)",
6 "Bash(wget:*)",
7 "Bash(sudo:*)",
8 "Read(.env)",
9 "Read(.env.*)",
10 "Read(**/.ssh/**)"
11 ],
12 "ask": [
13 "Bash(git push:*)",
14 "Bash(rm:*)"
15 ]
16 },
17 "sandbox": {
18 "enabled": true,
19 "network": {
20 "allowedDomains": ["*.github.com", "registry.npmjs.org"]
21 }
22 }
23}

Tôi chỉ đơn giản đặt permissionssandbox cạnh nhau, cách nhau bằng dấu phẩy. Thay đổi allowedDomains để phù hợp với các dịch vụ mà công ty bạn sử dụng. Hãy nhớ rằng, sandbox hoạt động trên macOS, Linux và WSL2.

Điều tôi luôn nói với mọi người khi hỗ trợ triển khai là: đừng dừng lại vì bạn đang nhắm đến sự hoàn hảo. Ngay cả khi bạn không thể xây dựng một hệ thống phòng thủ nhiều lớp như Mercari ngay lập tức, việc bảo vệ .env bằng một dòng duy nhất đã làm giảm đáng kể xác suất xảy ra tai nạn.

Hành động cho hôm nay: Nếu chỉ một người trong công ty bạn bắt đầu sử dụng Claude Code, hãy chia sẻ bộ tối thiểu ở trên dưới dạng văn bản và yêu cầu họ dán nó vào .claude/settings.json. Đây là một kích thước hoàn hảo cho một buổi diễn tập phân phối.

Cạm bẫy: 3 Điều Cần Biết Trước Khi Phân phối Cài đặt

Bởi vì đây là về việc tăng cường bảo mật, có những điểm nguy hiểm nếu hiểu lầm.

  1. "Viết danh sách từ chối" không có nghĩa là nó an toàn tuyệt đối. Như đã đề cập trong Biện pháp ③, danh sách từ chối không thể ngăn chặn mọi thứ mà một tập lệnh có thể làm trong nền. Ngay cả khi bạn chặn curl, các phương thức giao tiếp khác có thể vẫn còn. Nếu bạn muốn thực sự bao bọc nó, đừng quên tiền đề là phân lớp nó với một sandbox (Biện pháp ④).
  2. Đừng dựa vào việc lọc theo đối số. Chính Anthropic đã cảnh báo rằng các quyền có điều kiện, như cho phép curl chỉ cho một URL cụ thể, rất dễ bị phá vỡ. Sẽ chắc chắn hơn nếu chặn hoàn toàn những thứ nguy hiểm và cung cấp một giải pháp thay thế an toàn.
  3. Đừng chỉ phân phối cài đặt và cho là xong. Ngay cả khi bạn thực thi cài đặt được quản lý, nó sẽ vô nghĩa nếu nhân viên tự cài đặt các công cụ đáng ngờ khác. Cài đặt là một "cơ chế để giảm tai nạn" và hoạt động tốt nhất khi kết hợp với giáo dục sử dụng. Đây là lúc Biện pháp ⑤, "bắt họ đọc các quy tắc," cuối cùng phát huy tác dụng.

FAQ cho Người dùng Trung cấp

H. Có điểm nào trong việc thiết lập cái này cho mục đích cá nhân không?

Có. Tiêu chí là liệu có thông tin bí mật trên máy tính đó hay không, không phải là nó dành cho công ty hay không. Các freelancer và nhà phát triển cá nhân vẫn có .env~/.ssh/ cục bộ. Ít nhất, sẽ an toàn hơn nếu bao gồm lệnh cấm đọc của Biện pháp ③.

H. Việc hạn chế quyền có làm cho AI vô dụng không?

Đó là vấn đề về cách bạn hạn chế chúng. Các lệnh chỉ đọc (như ls hoặc cat) hoạt động mà không cần xác nhận theo mặc định, vì vậy công việc hàng ngày hiếm khi bị dừng lại. Những gì bị dừng là các thao tác như xóa, xuất bản và giao tiếp internet — những thứ gây hại nếu xảy ra sai sót. Trên thực tế, bằng cách chuyển sang chế độ "con người chỉ kiểm tra khi nguy hiểm," bạn có thể mở rộng một cách an toàn phạm vi mà bạn để AI tự động thực hiện.

H. Sự khác biệt giữa `settings.json` và cài đặt được quản lý (`managed-settings.json`) là gì?

Vị trí và "độ mạnh" khác nhau. settings.json trong thư mục .claude/ của dự án là cài đặt được chia sẻ mà bất kỳ ai cũng có thể chỉnh sửa. managed-settings.json được phân phối bởi công ty và không thể bị thay đổi bởi người dùng. Đối với cá nhân hoặc nhóm nhỏ, cái đầu là đủ; chuyển sang cái sau khi bạn đạt đến giai đoạn mà "sẽ là vấn đề nếu ai đó nới lỏng cài đặt."

H. Tôi có thể sử dụng cùng một cách suy nghĩ cho Cursor hoặc các công cụ mã hóa AI khác không?

Những thứ bạn muốn bảo vệ (bí mật, thao tác nguy hiểm, tầm với) là giống nhau, vì vậy khái niệm này có thể áp dụng được. Tuy nhiên, cú pháp và sự hiện diện của sandbox khác nhau tùy theo công cụ, vì vậy hãy coi ký hiệu settings.json này là cụ thể cho Claude Code. Nếu sử dụng các công cụ khác, cách nhanh nhất là áp dụng ba quan điểm tương tự này vào tài liệu chính thức tương ứng của chúng.

Tóm tắt: Từ "Đừng Sử dụng Nó" đến "Phân phối Một cách An toàn"

Khi tôi nhận được các cuộc tư vấn về triển khai AI, phản hồi phổ biến nhất trước đây là "Nó nguy hiểm, vì vậy chúng tôi chưa thể để họ sử dụng nó." Nhưng quyết định đó cũng vứt bỏ tất cả sự tiện lợi.

Mercari đã chỉ cho chúng ta một lối thoát khỏi sự lựa chọn nhị phân đó. Vô hiệu hóa bỏ qua xác nhận, dừng các thao tác nguy hiểm, cấm chạm vào file bí mật, bao bọc trong sandbox và bắt họ đọc các quy tắc. Sau đó, phân phối nó cho mọi người dưới dạng cài đặt không thể bị can thiệp. Đó là một thiết kế thay đổi từ "bị cấm vì nó đáng sợ" thành "được phân phối với một dây xích vì nó đáng sợ."

  • Mục tiêu cần bảo vệ: Ngăn rò rỉ bí mật / Ngăn thao tác nguy hiểm / Thu hẹp tầm với.
  • 5 Biện pháp của Mercari: Vô hiệu hóa bỏ qua, hạn chế lệnh nguy hiểm, cấm file bí mật, sandbox và đọc quy tắc.
  • Phân phối: Sử dụng cài đặt được quản lý mà người dùng không thể ghi đè, phân biệt theo trình độ.

Cuối cùng, đây là ba bước bắt đầu từ hôm nay:

  1. Thêm `Read(.env)` vào máy tính của riêng bạn: Bắt đầu bằng cách cấm đọc các file bí mật. Đây là một bước đi duy nhất hiệu quả nhất.
  2. Tạo một file duy nhất cho bộ tối thiểu: Dựa trên ví dụ permissions ở trên, thêm các lệnh mà công ty bạn muốn dừng.
  3. Phân phối nó cho một người trong công ty để kiểm tra: Yêu cầu họ dán nó vào .claude/settings.json và cùng nhau kiểm tra rằng công việc không bị đình trệ.

Bước đầu tiên chỉ là một dòng để bảo vệ .env. Bạn có thể phân lớp một hệ thống phòng thủ nhiều lớp hoàn hảo từng cái một từ đó. Tại sao không đặt file đầu tiên đó hôm nay và thay đổi "dừng lại vì nó đáng sợ" thành "ủy quyền với một dây xích"?

Liên kết Tham khảo

Viết lại trong YouMind

Turn one viral article into a full content workflow

Collect the source, decode the pattern, create assets, draft the story, and distribute from one AI workspace.

Explore YouMind
Dành cho nhà sáng tạo

Biến Markdown của bạn thành bài viết 𝕏 gọn gàng

Khi bạn đăng bài viết dài của riêng mình, việc định dạng hình ảnh, bảng và khối mã cho 𝕏 rất mệt mỏi. YouMind biến cả bản nháp Markdown thành một bài viết 𝕏 gọn gàng, sẵn sàng để đăng.

Thử Markdown sang 𝕏

Thêm pattern để giải mã

Bài viết viral gần đây

Khám phá thêm bài viết viral