> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudthinker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Prove It Ngày 01: Govern

> Đặt ranh giới cho agent, chạy một bài lab AWS chỉ đọc trên tài khoản của chính bạn và viết một báo cáo tối ưu hóa mà bạn có thể bảo vệ.

Ngày 01 của [Prove It](https://docs.cloudthinker.io/vi/learn/workshops/prove-it/overview.md). Đến cuối buổi, bạn sẽ kết nối một agent chỉ đọc với tài khoản AWS của chính mình, hỏi agent nên tối ưu hóa gì, gắn nhãn mọi khẳng định theo mức độ được chứng minh, và nộp một báo cáo cho mỗi nhóm. Buổi trực tiếp diễn ra vào ngày 5/9/2026. Bạn có thể tự làm lại bài lab trên bất kỳ tài khoản AWS nào bạn kiểm soát.

Ý tưởng của ngày hôm nay: repo mã nguồn là một thư mục bạn có thể hoàn tác. Tài khoản cloud là một hệ thống đang chạy. Agent có thể vượt qua mọi test trong repo mà vẫn sai về tài khoản của bạn, vì vậy bạn đặt các cơ chế kiểm soát và yêu cầu bằng chứng trước tiên.

> [!NOTE]
>
> **Dùng trang này cùng CloudThinker.** Dán URL của trang này vào một cuộc chat và thử:
>
> * "Giải thích phần Học của trang này như thể tôi mới làm quen với cloud."
> * "Đố tôi về các nhãn verified, inferred, assumed và blocked."
> * "Giúp tôi lập dàn ý báo cáo Ngày 01 theo ba khối trên trang này."

## Quy tắc của buổi học

* **150 phút.** Học 35 phút, Thực hành 95 phút kèm 10 phút nghỉ, Chia sẻ 20 phút.
* **Tài khoản AWS của bạn được kết nối ở chế độ chỉ đọc.** Hãy dùng tài khoản staging hoặc sandbox nếu có thể. Agent có thể kiểm tra. Agent không thể thay đổi bất cứ thứ gì.
* **Thông tin xác thực ở lại với chủ sở hữu.** Chủ tài khoản tự kết nối trên màn hình của mình bằng một IAM role chỉ đọc, và tắt **Allow writes**.
* **Agent đề xuất. Con người quyết định.** Hôm nay không áp dụng bản sửa nào, trong tài khoản của bạn hay bất kỳ đâu.
* **Che thông tin.** Account ID, ARN, endpoint, hostname và dữ liệu khách hàng phải được loại khỏi báo cáo trước khi chia sẻ hoặc chiếu lên màn hình.
* **Một tệp báo cáo cho mỗi nhóm**, nộp trước khi phần Chia sẻ bắt đầu.

## Học: 35 phút

Năm ý tưởng. Mỗi ý tưởng trở thành một quy tắc bạn dùng trong bài lab.

### 1. Agent là một model cộng với một môi trường

Agent có mục tiêu, ngữ cảnh, model, công cụ và môi trường. Model chọn hành động tiếp theo. Môi trường là nơi hành động đó tác động. Vòng lặp: hành động, quan sát kết quả, hành động lại, kiểm tra, dừng.

| Model chọn | Môi trường quyết định |
| - | - |
| Gọi công cụ nào tiếp theo, với input gì | Những công cụ nào tồn tại |
| Cách đọc kết quả | Mỗi lệnh gọi được làm gì, và với cái gì |
| Khi nào công việc hoàn tất | Hành động có thể hoàn tác hay không |

Model tốt hơn đưa ra lựa chọn tốt hơn, nhưng không thể làm điều gì bạn không trao cho nó.

### 2. Cloud không có một ranh giới workspace duy nhất

Cùng một agent với cùng một skill, nhưng cái giá khi sai ở mỗi nơi một khác.

| | Trong một repo | Trên cloud |
| - | - | - |
| Ranh giới | Một thư mục trên máy của bạn | Nhiều tài khoản, region và role |
| Ai khác bị ảnh hưởng | Chỉ bạn, cho đến khi bạn push | Người dùng thật và các nhóm khác, ngay lúc này |
| Agent thấy được gì | Mọi tệp | Chỉ những gì role của nó được phép gọi |
| Nếu sai | Dễ phát hiện, dễ hoàn tác | Khó phát hiện, đôi khi không thể hoàn tác |

Hàng về khả năng nhìn thấy là hàng mọi người hay bỏ sót. Khi agent không nói gì về một tài nguyên, điều đó không có nghĩa tài nguyên không tồn tại. Có thể role của agent không được phép xem.

Trong CloudThinker, ranh giới nằm bên ngoài agent ở hai nơi: IAM role mà [kết nối AWS](https://docs.cloudthinker.io/vi/guide/connections/aws.md) của bạn dùng quyết định lệnh gọi nào có thể thành công, và cài đặt [Approvals](https://docs.cloudthinker.io/vi/guide/approvals/overview.md) quyết định hành động nào phải chờ một người. Bạn đặt cả hai. Kết nối hôm nay dùng một role chỉ đọc với **Allow writes** tắt, nên không gì có thể thay đổi.

### 3. Tự động phê duyệt cần một ý định được nêu rõ

Một số coding agent có chế độ tự động: thay vì hỏi bạn trước mỗi hành động, một model khác review hành động và chặn những hành động nguy hiểm. Cách này hiệu quả khi bạn có mặt.

* **Khi bạn đang prompt**, model review có thứ để đối chiếu. Bạn đã nói "đừng động vào production", nên các hành động khớp sẽ bị chặn.
* **Khi không ai prompt**, ví dụ một cảnh báo khởi động lượt chạy lúc 3 giờ sáng, không có mục tiêu hay ranh giới nào được nêu. Model review chỉ có các giá trị mặc định, và khi model review dừng lại để hỏi một người, không ai trả lời.

Khi con người rời đi, ý định phải được viết ra:

| Thứ mang ý định | Trả lời câu hỏi gì |
| - | - |
| Runbook | Làm gì |
| Ranh giới | Đến đâu |
| Quyền | Điều gì có thể xảy ra |
| Phê duyệt của con người | Ai ký duyệt trước bước không thể đảo ngược |
| Audit log | Điều gì đã xảy ra |

Trong CloudThinker, đây là nhiệm vụ của [Approvals](https://docs.cloudthinker.io/vi/guide/approvals/overview.md): các Rule bạn viết quyết định trước, sau đó chế độ **Manual** hoặc **Auto** của workspace quyết định điều gì vẫn cần một người. **Manual** là ngoại lệ: chế độ này hỏi một người ngay cả với thao tác ghi mà một Allow Rule bao phủ. Rule chỉ quyết định khi CloudThinker bật [Rule enforcement](https://docs.cloudthinker.io/vi/guide/approvals/rules.md#khắc-phục-sự-cố) cho workspace của bạn; trước đó, Rule chỉ ghi lại phán quyết lẽ ra sẽ đưa ra và chỉ chế độ quyết định, nên **Manual** là cơ chế kiểm soát bạn có thể chứng minh ngay hôm nay.

### 4. Một lệnh gọi công cụ đi qua nhiều lớp

Giữa lúc agent quyết định hành động và lúc một tài nguyên cloud thay đổi, lệnh gọi đi qua nhiều lớp. Mỗi lớp có thể từ chối, và mỗi lớp đều có điểm mù.

| Lớp | Trong CloudThinker | Có thể từ chối gì | Không thấy được gì |
| - | - | - | - |
| Agent, được dẫn dắt theo ý định của bạn | CloudThinker, làm theo prompt của bạn | Tự mình không từ chối gì. Agent chỉ đề xuất. | Lệnh gọi có an toàn hay không |
| Sandbox | Áp dụng cho coding agent trên laptop của bạn. Cuộc chat CloudThinker không chạy trên máy của bạn. | Truy cập vào tệp và mạng của laptop | Tài khoản của bạn. Agent vẫn đọc được mọi key để lại trong sandbox. |
| Chế độ quyền | [Approvals](https://docs.cloudthinker.io/vi/guide/approvals/overview.md): rule của bạn, sau đó **Manual** hoặc **Auto** | Hành động bạn chưa cho phép, hoặc bị một rule hay model review đánh dấu | Bất cứ điều gì các rule không lường trước |
| IAM role | Role mà kết nối AWS của bạn dùng | Mọi lệnh gọi role không được phép thực hiện | Mọi thứ ở trên. IAM chỉ thấy một lệnh gọi đã ký. |
| Tài nguyên | Chính tài nguyên AWS | Không gì cả. Tài nguyên làm theo lệnh. | Nhiều hành động không có cách hoàn tác |

Sandbox bảo vệ laptop. Chỉ IAM bảo vệ tài khoản của bạn. Đó là lý do role hôm nay chỉ đọc ở lớp IAM, chứ không chỉ bằng chỉ thị.

### 5. Mọi khẳng định về cloud cần nguồn, phạm vi và thời điểm

Đặt ba câu hỏi cho mỗi dòng agent đưa ra:

| Câu hỏi | Câu trả lời mẫu |
| - | - |
| **Nguồn:** lệnh gọi nào tạo ra dòng này? | Lệnh gọi trạng thái bucket policy, kèm output thô. |
| **Phạm vi:** tài khoản, region và role nào? | Tài khoản chỉ đọc của bạn, một region, role chỉ đọc. |
| **Thời điểm:** đúng vào lúc nào? | Kiểm tra lúc 10:14 hôm nay. Cloud có thể thay đổi sau đó. |

Sau đó gắn cho mỗi khẳng định một nhãn:

| Nhãn | Ý nghĩa | Ví dụ | Việc cần làm |
| - | - | - | - |
| **Verified** | Output thô chứng minh điều đó | "Bucket X chặn truy cập public, kiểm tra lúc 10:14." | Hành động dựa trên khẳng định này |
| **Inferred** | Suy luận từ một sự thật đã xác minh | "Vậy dữ liệu này có lẽ không bị lộ." | Kiểm tra trước khi dùng |
| **Assumed** | Chưa có gì chứng minh | "Bucket này là một vấn đề bảo mật." | Kiểm thử, hoặc bỏ ra |
| **Blocked** | Role không xem được | "Không liệt kê được các object của bucket." | Ghi lại. Kiểm tra bị chặn cũng là kết quả hợp lệ. |

Các kết luận sự cố của CloudThinker dùng ba nhãn: **Verified** và **Inferred** có nghĩa giống như ở đây, còn **Cause unproven** tương ứng với **Assumed**. **Blocked** không có nhãn trong sản phẩm, nên bạn tự thêm vào.

Phát hiện chỉ mạnh bằng bước yếu nhất của nó. Chỉ một bước chưa kiểm tra ở giữa cũng khiến cả phát hiện thành inferred. Nếu bạn không chỉ ra được nguồn, "chưa đủ bằng chứng" là câu trả lời trung thực, và là một câu trả lời hợp lệ.

## Thực hành: 95 phút

**Nhiệm vụ:** bạn sẽ tối ưu hóa gì trong tài khoản AWS này? Một nhóm, một agent chỉ đọc, một báo cáo.

| Thời điểm | Thời lượng | Bước | Hoàn tất khi |
| - | - | - | - |
| T+0 | 10 phút | Đăng nhập, mời nhóm, đặt phạm vi | Mọi người ở trong một workspace và bạn đã viết một tác vụ có giới hạn: câu hỏi và điểm agent phải dừng |
| T+10 | 10 phút | Kết nối tài khoản AWS | Tài khoản hiển thị **Connected**, **Allow writes** tắt và một cuộc chat đã mở |
| T+20 | 25 phút | Khám phá cùng agent | Bạn có output thô về chi phí, bảo mật, độ tin cậy và hiệu năng |
| T+45 | 10 phút | Nghỉ | Cuộc chat giữ lại output |
| T+55 | 40 phút | Gắn nhãn mọi khẳng định, rồi viết báo cáo | Mọi khẳng định đều có nhãn và nguồn; tệp đã được nộp |

Viết phạm vi ở đầu bản nháp báo cáo. Hai dòng là đủ:

```text theme={null}
Question: what would we optimize in this account for cost and security?
Stop: before proposing any change that deletes data.
```

### Mời nhóm của bạn

Một nhóm, một workspace, để mọi người thấy cùng một kết nối và cùng làm một báo cáo.

**1. Mở Members**

Trên thanh bên, nhấn **More → Workspace settings** và chọn **Members**. Biểu tượng bánh răng trong ô nhập chat (tooltip **Chat Settings**) mở cùng hộp thoại đó.

**Trạng thái thành công:** tab **Members** mở ra với bảng thành viên.

**2. Thêm từng thành viên**

Nhấn **Add Member** và chọn đồng đội. Mỗi hàng hiển thị **Organization Role** và **Workspace Role** của họ, hai vai trò này có thể khác nhau.

![Tab Members trong Chat Settings hiển thị bảng thành viên nhóm và nút Add Member](https://mintcdn.com/cloudthinker/x17Tte95w-p1fCkb/images/workshops/prove-it/04-workspace-members.jpg?fit=max\&auto=format\&n=x17Tte95w-p1fCkb\&q=85\&s=bdf75c26b8c9e1f0c5e326d75a9b6042)

**Trạng thái thành công:** mọi đồng đội đều xuất hiện trong bảng thành viên.

> [!NOTE]
>
> Đồng đội phải thuộc tổ chức của bạn trước khi bạn có thể thêm họ vào workspace. Nếu ai đó không có trong danh sách, Owner hoặc Admin của tổ chức cần mời họ trước: nhấn **Invite members** trong menu tài khoản, hoặc vào **Admin Settings → Organization** và nhấn **Invite Members**. Xem [Mời thành viên](https://docs.cloudthinker.io/vi/guide/organization.md#mời-thành-viên). Thông tin đầy đủ về vai trò: [Thành viên workspace](https://docs.cloudthinker.io/vi/guide/workspace-users.md).

### Kết nối tài khoản AWS

Dùng tài khoản AWS của chính bạn, lý tưởng là tài khoản staging hoặc sandbox, thông qua một IAM role chỉ đọc. Chủ tài khoản tự kết nối trên màn hình của mình, và việc thêm kết nối cần vai trò **Admin** của workspace. Tài liệu tham khảo đầy đủ là [Kết nối AWS](https://docs.cloudthinker.io/vi/guide/connections/aws.md).

**1. Mở Connections**

Đăng nhập tại [app.cloudthinker.io](https://app.cloudthinker.io). Trên thanh bên, nhấn **More → Workspace settings** và chọn **Connections**.

**Trạng thái thành công:** danh sách **Connections** mở ra.

**2. Tạo role chỉ đọc và kết nối**

Chọn **Amazon Web Services** và làm theo các bước **Role-Based (recommended)** trong [Kết nối AWS](https://docs.cloudthinker.io/vi/guide/connections/aws.md): đặt tên tài khoản, chạy script thiết lập trong CloudShell, dán Role ARN và nhấn **Connect**. Script chỉ gắn policy `ReadOnlyAccess` do AWS quản lý.

**Trạng thái thành công:** tài khoản hiển thị trạng thái **Connected**.

**3. Tắt Allow writes**

Mở **Amazon Web Services** trong Connections và tắt công tắc **Allow writes** trên bảng chi tiết. Role đã khiến AWS từ chối mọi thay đổi. Khi tắt công tắc, CloudThinker cũng từ chối chúng, trước khi chúng đến AWS.

**Trạng thái thành công:** **Allow writes** hiển thị là tắt.

**4. Mở một cuộc chat**

Bắt đầu cuộc chat mới và gửi "Give me an overview of this AWS account."

**Trạng thái thành công:** agent trả lời với các region và dịch vụ mà nó thấy được.

> [!WARNING]
>
> **Không thêm được kết nối?** Thêm kết nối cần quyền sửa connector, mà chỉ vai trò **Admin** của workspace mới có. Hãy đề nghị một Admin của workspace kết nối tài khoản, hoặc thay đổi vai trò của bạn. Xem [Vai trò workspace](https://docs.cloudthinker.io/vi/guide/workspace-users.md#vai-trò-workspace).

Không ai nhập thông tin xác thực vào slide, cuộc chat hay tài liệu dùng chung. Chủ tài khoản tự kết nối trên màn hình của mình.

### Hỏi agent những gì

Hầu hết các nhóm đều yêu cầu một danh sách. Thay vào đó, hãy đòi bằng chứng: tài nguyên nào, region nào, khi nào. Ngôn ngữ tự nhiên là đủ; bạn không cần cú pháp đặc biệt nào. Bắt đầu với những câu sau:

```text theme={null}
Give me an overview of this AWS account: regions in use, main services, and what your role could not read.
```

Câu trả lời hữu ích nêu tên các region và dịch vụ mà bạn có thể kiểm tra, và có một danh sách ngắn những thứ bị từ chối. Danh sách bị từ chối đó là khởi đầu cho khối **01: Những gì bạn đã xem xét**.

Nếu làm một mình, hãy so sánh câu trả lời của bạn với mẫu này. Mẫu chỉ minh họa cấu trúc, không phải kết quả thật: region, số lượng và các khoảng trống của bạn sẽ khác.

```text theme={null}
Regions in use: us-east-1 (most resources), ap-southeast-1 (one S3 bucket)
Main services: EC2 (4 instances), EBS (6 volumes, 1 not attached), RDS (1 instance), S3 (3 buckets)
Could not read: Cost Explorer data (not turned on for this account)
```

Nếu câu trả lời không có dòng "could not read", hãy yêu cầu thêm. Nếu câu trả lời liệt kê dịch vụ mà không có số lượng hay region, hãy hỏi agent đã thấy những tài nguyên nào.

```text theme={null}
What would you optimize in this account for cost? For each item, show the call you made and the raw output.
```

Câu trả lời hữu ích gắn mỗi mục với một tài nguyên cụ thể và output cho thấy vấn đề. Mục nào không có tài nguyên hoặc không có output là assumed cho đến khi được chứng minh.

```text theme={null}
Which of these findings can you prove from the output you already have, and which are inferences?
```

Dùng câu trả lời làm lượt gắn nhãn đầu tiên, rồi tự kiểm tra lại. Agent tự gắn nhãn cho công việc của mình không thay thế được bước bạn tự xác minh.

Giữ lại output thô. Bạn cần nó cho mọi khẳng định trong báo cáo.

### Tìm output thô

Mỗi lệnh gọi agent thực hiện hiển thị thành một hàng trong cuộc chat. Nhấn vào hàng để mở rộng: **Input** cho thấy agent đã yêu cầu gì và **Output** cho thấy kết quả trả về. Nhấn **Copy** trong phần **Output** và dán vào phụ lục của báo cáo, kèm thời điểm bạn sao chép.

### Bị kẹt?

| Vấn đề | Việc cần làm |
| - | - |
| Đăng ký hoặc kết nối AWS không hoạt động | Ghép cặp với một nhóm bên cạnh và tiếp tục. Đừng dành cả khối thời gian để gỡ lỗi một chiếc laptop. |
| Agent trả lời bằng các best practice chung chung | Yêu cầu tài nguyên, region và lệnh gọi cụ thể đằng sau mỗi dòng. |
| Agent nói không đọc được thứ gì đó | Tốt. Gắn nhãn blocked và đưa vào phần phạm vi. |

## Kết quả của bạn: một báo cáo

PDF, doc hoặc markdown. Không có template; tự tìm ra một báo cáo tối ưu hóa tốt trông như thế nào là một phần của nhiệm vụ. Ba khối sau là mức tối thiểu.

| Khối | Nội dung |
| - | - |
| **01: Những gì bạn đã xem xét** | Tài khoản, region, role. Những gì role không thấy được. |
| **02: Những gì bạn sẽ tối ưu hóa** | Mỗi phát hiện kèm nguồn, phạm vi và thời điểm, gắn nhãn verified, inferred, assumed hoặc blocked. Ảnh hưởng lớn nhất trước. |
| **03: Điều gì xảy ra tiếp theo** | Thay đổi nào cần một người phê duyệt. Những gì bạn đã loại bỏ, và lý do. |

Một phát hiện được viết tốt (minh họa cho định dạng, không phải kết quả thật):

```text theme={null}
Finding: unattached EBS volume in one region (Verified)
Source: describe-volumes, raw output in appendix A
Scope: staging account, one region, read-only role
Time: checked 2026-09-05 10:42 ICT
Next: owner approves deletion after confirming no snapshot is needed
```

Loại bỏ một phát hiện là kết quả tốt. Kiểm tra bị chặn cũng là kết quả tốt nếu được ghi lại. Chỉ giữ lại một khẳng định không có căn cứ như thể nó đúng mới là kết quả xấu.

Nộp một tệp cho mỗi nhóm trước khi phần Chia sẻ bắt đầu. Che account ID, ARN, endpoint, hostname và dữ liệu khách hàng trước.

### Khi bạn đã xong

Kết nối vẫn ở trong workspace cho đến khi bạn gỡ bỏ, và các cuộc chat trong bài lab tiêu tốn credit như mọi cuộc chat khác. Để gỡ bỏ, mở **More → Workspace settings → Connections**, chọn **Amazon Web Services** và nhấn **Disconnect**. Thao tác này cần vai trò Admin của workspace.

## Chia sẻ: 20 phút

Ban tổ chức đọc các báo cáo trong phần cuối của bài lab và chọn ra những báo cáo tốt nhất, thường là ba. Tại sự kiện, nhóm chạy nhiệm vụ trên tài khoản AWS của chính mình được cộng điểm. Mỗi nhóm được chọn trình bày năm phút từ tệp báo cáo và output thô của agent. Không dùng slide.

| Phút | Trình bày |
| - | - |
| 2 | **Phạm vi và phát hiện hàng đầu.** Những gì bạn đã xem xét, những gì role không thấy được, và phát hiện bạn sẽ sửa đầu tiên. |
| 2 | **Bằng chứng và những gì bạn đã loại bỏ.** Bằng chứng và nhãn của nó. Những gì bạn đã loại bỏ, và lý do. |
| 1 | **Điều gì cần phê duyệt.** Thay đổi nào cần một người duyệt trước khi xảy ra. |

Sau đó cả phòng so sánh: cùng tài khoản, phạm vi khác nhau, phát hiện khác nhau. Với mỗi phát hiện, cả phòng bình chọn điều mà bằng chứng ủng hộ:

* **Observe:** tiếp tục theo dõi. Bằng chứng chưa đủ mạnh để hành động.
* **Recommend:** đề xuất thay đổi cho người sở hữu.
* **Request approval:** thay đổi đã sẵn sàng, và một người ký duyệt trước khi thay đổi xảy ra.
* **Stop:** loại bỏ. Bằng chứng không đứng vững.

## Thuật ngữ

| Thuật ngữ | Ý nghĩa trong Ngày 01 |
| - | - |
| Tác vụ có giới hạn | Tác vụ có mục tiêu, phạm vi, công cụ được phép được nêu rõ, và một điểm mà agent phải dừng. |
| Chỉ đọc | Agent có thể kiểm tra tài nguyên và cấu hình. Agent không thể tạo, thay đổi hay xóa bất cứ thứ gì. |
| Phạm vi | Tài khoản, region và role mà một câu trả lời xuất phát. Là một phần của mọi khẳng định. |
| Quyền tối thiểu | Role chỉ có những quyền mà tác vụ cần. Hôm nay đó là quyền đọc. |
| Verified, inferred, assumed, blocked | Bốn nhãn cho mọi khẳng định trong báo cáo. |
| Phê duyệt của con người | Một người ký duyệt trước khi thay đổi xảy ra. Hôm nay không có gì thay đổi cả: role chỉ đọc và **Allow writes** tắt, nên mọi bản sửa đều chỉ là đề xuất. |
| Dấu vết kiểm toán | Output thô và các lệnh gọi agent đã thực hiện, được lưu lại để có thể kiểm tra lượt chạy sau này. |

## Đọc thêm

* [Anthropic: Building effective agents](https://www.anthropic.com/engineering/building-effective-agents)
* [Kết nối AWS](https://docs.cloudthinker.io/vi/guide/connections/aws.md)
* [Approvals](https://docs.cloudthinker.io/vi/guide/approvals/overview.md)
* [Thành viên workspace](https://docs.cloudthinker.io/vi/guide/workspace-users.md)
* [AWS: IAM security best practices](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)

## Bước tiếp theo

[Ngày 02: Investigate](https://docs.cloudthinker.io/vi/learn/workshops/prove-it/day-02-investigate.md). Một ứng dụng Kubernetes, người dùng không hài lòng, và các dashboard nói rằng mọi thứ đều khỏe mạnh. Cùng quy tắc chỉ đọc, câu hỏi khó hơn: tại sao?

> **[Ngày 02: Investigate](https://docs.cloudthinker.io/vi/learn/workshops/prove-it/day-02-investigate.md)**
>
> Vấn đề nhiễu, các giả thuyết cạnh tranh và bài lab Kubernetes.

> **[Cách Approvals hoạt động](https://docs.cloudthinker.io/vi/guide/approvals/overview.md)**
>
> Xem cách CloudThinker quyết định hành động nào cần một người.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.