> ## 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.

# Cloudflare

> Kết nối Cloudflare với CloudThinker để quản lý DNS, tối ưu CDN, và cấu hình bảo mật

Kết nối tài khoản Cloudflare của bạn để cho phép các agent CloudThinker truy cập tài liệu, phân tích lưu lượng DNS và truy vấn dữ liệu analytics.

Cloudflare xác thực bằng **API token** được giới hạn theo quyền cụ thể. Chỉ chọn các dịch vụ bạn cần — mỗi dịch vụ yêu cầu bộ quyền token riêng.

***

## Điều kiện tiên quyết

* Tài khoản Cloudflare với quyền truy cập API.
* **Account ID** của bạn (tìm thấy ở thanh bên phải của Cloudflare dashboard).
* Một **API token** với quyền cho các dịch vụ bạn đã chọn.

<Info>
  Bạn có thể kết hợp quyền cho nhiều dịch vụ vào một token. Giới hạn token chỉ cho các zone và quyền mà CloudThinker cần.
</Info>

***

## Thiết lập

<Steps>
  <Step title="Lấy Account ID của bạn">
    Đăng nhập vào [Cloudflare Dashboard](https://dash.cloudflare.com/) → chọn bất kỳ domain nào → sao chép **Account ID** từ thanh bên phải trong phần API.
  </Step>

  <Step title="Tạo API token">
    Vào **My Profile → API Tokens → Create Token** và chọn **Create Custom Token**. Thêm quyền cho các dịch vụ bạn muốn bật (xem [Quyền cần thiết](#quyền-cần-thiết) bên dưới). Sao chép token ngay — Cloudflare sẽ không hiển thị lại.
  </Step>

  <Step title="Kết nối trong CloudThinker">
    Điều hướng đến **Connections → Cloudflare** và nhập:

    * **API Token**: token bạn đã tạo
    * **Account ID**: Cloudflare account ID của bạn
    * **Enabled Services**: chọn các dịch vụ bạn muốn sử dụng

    Nhấp **Connect**. CloudThinker xác minh thông tin xác thực và hiển thị trạng thái **Connected**.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/cloudthinker/f645vAiA_merh7DD/images/cloudflare/01-connection-dialog.png?fit=max&auto=format&n=f645vAiA_merh7DD&q=85&s=1b39199c51c0187bb31b519f623ce333" alt="Hộp thoại kết nối Cloudflare hiển thị các trường API token, Account ID và chọn dịch vụ" width="1610" height="1018" data-path="images/cloudflare/01-connection-dialog.png" />
</Frame>

<p style={{textAlign: 'center', fontSize: '0.9em', color: '#666', marginTop: '8px'}}>Hộp thoại kết nối Cloudflare với API token, Account ID và lựa chọn dịch vụ</p>

<Warning>
  Sao chép API token ngay sau khi tạo. Cloudflare sẽ không hiển thị lại và bạn cần tạo token mới nếu bị mất.
</Warning>

### Tạo API token

<Steps>
  <Step title="Điều hướng đến API Tokens">
    Vào [Cloudflare Dashboard](https://dash.cloudflare.com/) → **My Profile** (góc trên phải) → **API Tokens**.
  </Step>

  <Step title="Tạo custom token">
    Nhấp **Create Token** → **Create Custom Token** (ở dưới cùng).
  </Step>

  <Step title="Cấu hình quyền">
    Thêm quyền cho các dịch vụ bạn đã chọn:

    **Cho DNS Analytics:**

    * Account → Account Settings → Read
    * Zone → Zone → Read
    * Zone → Analytics → Read
    * Zone → DNS → Read

    **Cho GraphQL Analytics:**

    * Account → Account Analytics → Read
    * Zone → Zone Analytics → Read
  </Step>

  <Step title="Đặt tài nguyên zone">
    Trong **Zone Resources**, chọn **Include → All zones** (hoặc các zone cụ thể).
  </Step>

  <Step title="Tạo và sao chép">
    Nhấp **Continue to summary → Create Token** và sao chép giá trị token ngay lập tức.
  </Step>
</Steps>

***

## Chi tiết kết nối

| Trường                      | Mô tả                                                             | Ví dụ |
| --------------------------- | ----------------------------------------------------------------- | ----- |
| **CLOUDFLARE\_API\_TOKEN**  | API token được tạo trong hồ sơ Cloudflare của bạn                 | —     |
| **CLOUDFLARE\_ACCOUNT\_ID** | Cloudflare account ID của bạn từ dashboard                        | —     |
| **ENABLED\_SERVICES**       | Dịch vụ cần bật (Documentation, DNS Analytics, GraphQL Analytics) | —     |

***

## Quyền cần thiết

### Documentation

Không cần quyền đặc biệt. Dịch vụ này cung cấp quyền truy cập vào tài liệu công khai của Cloudflare.

### DNS Analytics

| Quyền            | Cấp truy cập |
| ---------------- | ------------ |
| Zone             | Read         |
| Analytics        | Read         |
| DNS              | Read         |
| Account Settings | Read         |

### GraphQL Analytics

| Quyền             | Cấp truy cập |
| ----------------- | ------------ |
| Account Analytics | Read         |
| Zone Analytics    | Read         |

<Tip>
  Kết hợp quyền cho nhiều dịch vụ vào một token. Khi có thể, hãy giới hạn token cho các zone cụ thể thay vì tất cả zone.
</Tip>

***

## Khả năng của agent

Sau khi kết nối, các agent có thể tương tác với các dịch vụ bạn đã bật.

| Khả năng              | Mô tả                                                                                |
| --------------------- | ------------------------------------------------------------------------------------ |
| **Documentation**     | Tìm kiếm và tham khảo tài liệu chính thức của Cloudflare trong quá trình xử lý sự cố |
| **DNS Analytics**     | Truy vấn mẫu lưu lượng DNS, xác định bất thường và phân tích khối lượng truy vấn     |
| **GraphQL Analytics** | Chạy truy vấn analytics nâng cao cho báo cáo lưu lượng và bảo mật tùy chỉnh          |

### Xác minh kết nối

```text theme={null}
@alex check the Cloudflare connection and list accessible zones and enabled services
```

### Ví dụ câu lệnh

```text theme={null}
@oliver search Cloudflare documentation for WAF best practices and #recommend rule configuration changes
@alex pull DNS analytics for the last 24 hours and #report on query volume and top error types
@alex run a GraphQL analytics query for zone traffic over the last 7 days and #chart the results
```

***

## Xử lý sự cố

<Accordion title="Xác thực thất bại">
  Xác minh API token đúng và chưa bị thu hồi. Kiểm tra token có đủ quyền cho các dịch vụ đã chọn và Account ID khớp với tài khoản tạo token.
</Accordion>

<Accordion title="Thiếu dữ liệu analytics">
  Xác minh token có quyền đọc Analytics. Dữ liệu analytics có thể mất tới 24 giờ để xuất hiện cho zone mới. Kiểm tra rằng các zone có lưu lượng đang tạo dữ liệu.
</Accordion>

<Accordion title="DNS Analytics không hoạt động">
  Đảm bảo đủ bốn quyền: Zone, Analytics, DNS và Account Settings. Xác minh token có quyền truy cập vào các zone cụ thể bạn đang truy vấn và DNS được proxy qua Cloudflare (biểu tượng đám mây cam được bật).
</Accordion>

<Accordion title="Truy vấn GraphQL thất bại">
  Xác minh quyền Account Analytics và Zone Analytics đã được cấp. Kiểm tra cú pháp truy vấn theo GraphQL schema của Cloudflare và đảm bảo bạn đang truy vấn trong phạm vi thời gian cho phép.
</Accordion>

***

## Bảo mật

* **Quyền tối thiểu** — chỉ cấp các quyền mà agent cần cho trường hợp sử dụng của bạn; bắt đầu với quyền chỉ đọc và mở rộng sau.
* **Chỉ đọc theo mặc định** — sử dụng thông tin xác thực chỉ đọc trừ khi bạn muốn agent thực hiện thay đổi qua kết nối này.
* **Xoay vòng thông tin xác thực** — xoay vòng khóa và token theo lịch trình thông thường của bạn; CloudThinker sẽ lấy giá trị mới khi bạn cập nhật kết nối.
* **Thu hồi khi bàn giao** — xóa thông tin xác thực tại nhà cung cấp khi bạn xóa một kết nối hoặc khi đồng nghiệp rời nhóm.

- **Giới hạn zone** — giới hạn API token cho các zone cụ thể thay vì "All zones" khi có thể để giảm blast radius.
- **Giới hạn IP** — thêm hạn chế IP allowlist cho token nếu dải IP CloudThinker của bạn ổn định.

***

## Liên quan

<CardGroup cols={2}>
  <Card title="Kết nối MCP" icon="https://mintcdn.com/cloudthinker/aLd-ttc-SCW-aFky/images/icons/mcp.svg?fit=max&auto=format&n=aLd-ttc-SCW-aFky&q=85&s=c89b6087a9d233901dea5e354452eff6" href="/vi/guide/connections/mcp" width="24" height="24" data-path="images/icons/mcp.svg">
    Tìm hiểu về tích hợp dựa trên MCP
  </Card>

  <Card title="Kết nối AWS" icon="https://mintcdn.com/cloudthinker/aLd-ttc-SCW-aFky/images/icons/aws.svg?fit=max&auto=format&n=aLd-ttc-SCW-aFky&q=85&s=45d526a3e9345214c0345f277da2e829" href="/vi/guide/connections/aws" width="24" height="24" data-path="images/icons/aws.svg">
    Kết nối hạ tầng AWS của bạn
  </Card>
</CardGroup>
