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

# FPT Cloud

> Kết nối FPT Cloud bằng personal access token để agent có thể kiểm tra VM, ổ đĩa, mạng, tag và hoạt động, đồng thời chạy các thay đổi VM đã được phê duyệt

Kết nối FPT Cloud để agent CloudThinker có thể kiểm tra VM, ổ đĩa, mạng, bản sao lưu, tag và hoạt động trong các VPC của bạn, và thay đổi chúng thông qua [Approvals](https://docs.cloudthinker.io/vi/guide/approvals/overview.md). Kết nối dùng một **personal access token** và truy cập mọi VPC mà người dùng của token nhìn thấy, nên bạn không cần nhập VPC hay tổ chức.

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

* Một tài khoản FPT Cloud đăng nhập vào [console.fptcloud.com](https://console.fptcloud.com) bằng **FPT ID** hoặc **SSO** của tổ chức.
* Ít nhất một VPC được gán cho người dùng đó. Admin của tổ chức gán VPC trong **IAM**.

> [!NOTE]
>
> Token mang quyền của người dùng tạo ra nó, trong mọi VPC mà người dùng đó nhìn thấy. Dùng một người dùng FPT Cloud riêng cho CloudThinker để giữ phạm vi đó ở mức nhỏ và để kết nối không phụ thuộc vào tài khoản của một cá nhân. Admin của tổ chức thiết lập trong **IAM**:
>
> 1. Tạo người dùng.
> 2. Chỉ gán các VPC bạn muốn chia sẻ.
> 3. Cấp cho người dùng vai trò chỉ đọc trong [Quyền yêu cầu](#quyền-yêu-cầu).
> 4. Đăng nhập bằng người dùng đó để tạo token ở phần Thiết lập.

## Thiết lập

**1. Tạo personal access token**

Đăng nhập vào console FPT Cloud và mở [**Token**](https://console.fptcloud.com/tokens), gần cuối thanh điều hướng bên trái.

1. Nhấn **Create**.
2. Nhập **Name**, chẳng hạn `cloudthinker`.
3. Chọn **Expiration**.
4. Nhấn **Create**, rồi sao chép toàn bộ giá trị token.

FPT Cloud chỉ hiển thị giá trị token một lần. Nếu làm mất, hãy xóa token và tạo token mới.

Khi token hết hạn, kết nối chuyển sang **Error**. Để thay token mới, làm theo [Xoay vòng thông tin xác thực](https://docs.cloudthinker.io/vi/guide/connections/overview.md#xoay-vòng-thông-tin-xác-thực).

**2. Thêm kết nối trong CloudThinker**

Mở **More → Workspace settings → Connections**, chọn **FPT Cloud** và nhập:

* **Alias**: một tên ngắn như `production`. Trường này có sẵn alias gợi ý, `fptcloud-1` cho kết nối đầu tiên, rồi `fptcloud-2`, v.v.
* **Description**: mục đích của kết nối. Mặc định là tên nhà cung cấp.
* **FPT Cloud personal access token**: token bạn đã sao chép.

Nhấn **Connect**.

**Trạng thái thành công:** kết nối hiển thị **Connecting** và **Verifying**, rồi trạng thái **Connected** với thông báo như `FPT Cloud connection verified. VPCs: 3.`

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

| Trường | Bắt buộc | Nội dung cần nhập |
| - | - | - |
| **Alias** | Không | Tên cho kết nối này, gồm chữ thường, chữ số và dấu gạch ngang (tối đa 63 ký tự). Dùng alias khác nhau cho mỗi kết nối FPT Cloud. |
| **Description** | Không | Mục đích của kết nối. Mặc định là **FPT Cloud**. |
| **FPT Cloud personal access token** | Có | Token từ trang **Token** của FPT Cloud. Chỉ gồm chữ cái, chữ số, `.`, `_` và `-`, không có khoảng trắng hoặc xuống dòng. |

Bạn có thể thêm nhiều kết nối FPT Cloud vào một workspace. Chỉ một token đã truy cập được mọi tổ chức và VPC mà người dùng của nó nhìn thấy, nên chỉ thêm kết nối thứ hai khi bạn cần phạm vi của một người dùng khác, ví dụ một người dùng production và một người dùng non-production. Mỗi kết nối cần alias riêng. Khi gắn nhiều kết nối, hãy nêu alias trong câu hỏi, chẳng hạn `Using the production connection, list stopped VMs`.

## Quyền yêu cầu

Token không gắn với một VPC hay một tổ chức. Token mang quyền của người dùng trên toàn bộ FPT Cloud API.

| Bạn muốn agent | Người dùng của token cần |
| - | - |
| Vượt qua bài kiểm tra kết nối | Quyền đăng nhập và ít nhất một VPC được gán |
| Đọc tài nguyên | Quyền truy cập vào từng VPC bạn muốn kiểm tra |
| Thực hiện thay đổi đã phê duyệt | Các mã quyền tương ứng trong bảng bên dưới |

Để chỉ đọc, hãy cấp cho người dùng của token một vai trò trong **IAM → Roles** chỉ chứa các mã đọc: `instance:List`, `instance:Detail`, `instance:ListSnapshot`, `storage:List` và `network:List`. Các vai trò có sẵn **ORG Super Admin** và **VPC Super Admin** cấp toàn quyền quản trị. Chỉ thêm mã ghi cho những thay đổi bạn muốn agent thực hiện:

| Thay đổi | Mã quyền FPT Cloud |
| - | - |
| Tạo VM | `instance:Create` |
| Bật hoặc tắt VM | `instance:StartAndStop` |
| Xóa VM | `instance:Terminate` |
| Tạo hoặc xóa snapshot | `instance:CreateSnapshot`, `instance:DeleteSnapshot` |
| Thay đổi kích thước, gắn, tháo hoặc xóa ổ đĩa | `storage:Resize`, `storage:Attach`, `storage:Detach`, `storage:Delete` |
| Tạo hoặc xóa mạng | `network:Create`, `network:Delete` |

Các mã trên là những mã duy nhất mà agent có thể kiểm tra trước khi hành động. Các hành động sau không có mã nào để agent kiểm tra:

* **Đọc:** tag, hoạt động và bản sao lưu.
* **Thay đổi:** khởi động lại, đổi tên, nhân bản, NIC và lịch.

Với các hành động này, FPT Cloud chỉ kiểm tra vai trò của người dùng khi lệnh gọi chạy, nên quyền bị thiếu sẽ hiển thị thành lỗi quyền vào lúc đó. Nếu điều này xảy ra, hãy nhờ admin của tổ chức mở rộng vai trò.

> [!TIP]
>
> Để xem token có những quyền gì trước khi mở rộng, hãy hỏi: `Which FPT Cloud permissions does my token have in the production VPC?` Agent kiểm tra các mã thông qua FPT Cloud IAM.

## Khả năng của agent

| Khả năng | Agent có thể làm gì |
| - | - |
| **VPC discovery** | Liệt kê các VPC mà token nhìn thấy, kèm tổ chức, region và nền tảng (OpenStack hoặc VMware) |
| **Find a resource** | Tra cứu một địa chỉ IP hoặc một tên trên mọi tổ chức và VPC mà token nhìn thấy |
| **Account-wide scans** | Tìm VM đã dừng, VM có IP công khai, và ổ đĩa hoặc IP công khai chưa gắn trên mọi VPC trong một lượt |
| **VMs** | Danh sách và chi tiết, flavor, image, storage policy, NIC, và các flavor mà VM có thể đổi sang |
| **Networks** | Subnet, NIC, floating IP, backend của load balancer, và tên các security group gắn với từng VM (không gồm rule của chúng) |
| **Storage and backup** | Ổ đĩa, volume, snapshot, lịch snapshot, mức độ bao phủ sao lưu và điểm khôi phục |
| **Tags** | Tag, mức độ bao phủ tag, tài nguyên chưa gắn tag và tag policy |
| **Activity** | Ai đã thay đổi tài nguyên và khi nào, từ nhật ký hoạt động của VPC |
| **Cost estimates** | Ước tính theo giá niêm yết từ đơn giá vCPU, RAM và ổ đĩa của FPT Cloud |
| **Approved changes** | Tạo, bật/tắt, khởi động lại, đổi tên, thay đổi kích thước, nhân bản hoặc xóa VM, và quản lý ổ đĩa, NIC, snapshot, lịch và tag của VM |

Mọi thay đổi đều đi qua [Approvals](https://docs.cloudthinker.io/vi/guide/approvals/overview.md) trước, và agent nêu chính xác ID và tên VM sẽ tác động. Khi token nhìn thấy nhiều VPC, agent hỏi nên dùng VPC nào thay vì đoán.

> [!NOTE]
>
> Agent không thể tạo cluster Kubernetes hoặc cơ sở dữ liệu, không thể đọc rule hoặc port của security group, và không có dữ liệu lịch sử sử dụng CPU hoặc bộ nhớ để điều chỉnh kích thước. Số liệu chi phí là ước tính theo giá niêm yết, không phải số tiền trên hóa đơn: số vCPU, GB RAM và GB ổ đĩa nhân với đơn giá trong danh mục dịch vụ FPT Cloud của VPC, tính 720 giờ mỗi tháng. Danh mục của FPT Cloud không ghi đơn vị tiền tệ, nên số liệu cũng không có. Hãy xác nhận đơn vị tiền tệ trong bảng giá FPT Cloud trước khi chia sẻ số liệu.
>
> Nếu FPT Cloud chấp nhận một thay đổi nhưng lần đọc lại chưa xác nhận kết quả, agent báo thay đổi là đang chờ. Hãy yêu cầu agent kiểm tra trạng thái hiện tại của VM trước khi thử lại, để thay đổi không chạy hai lần.

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

```text theme={null}
List the VPCs my FPT Cloud token can see, with the number of VMs in each
```

Kết quả mong đợi là từng VPC kèm tổ chức, region, nền tảng và số VM.

### Ví dụ prompt

```text theme={null}
Which FPT Cloud VMs have a public IP, and which security groups are attached to them?
List unattached disks and public IPs across all my VPCs with their estimated monthly list price
Reboot the VM web-01 in the production VPC, and show me the exact VM ID first
```

## Khắc phục sự cố

> **FPT Cloud personal access token is required**
>
> Trường token đang trống, hoặc giá trị đã dán có khoảng trắng, xuống dòng hoặc ký tự không được hỗ trợ. Sao chép lại toàn bộ token, rồi kiểm tra kết nối.

> **FPT Cloud rejected the personal access token**
>
> Token đã hết hạn, đã bị xóa, hoặc chưa được sao chép đầy đủ. Trên trang **Token** của FPT Cloud, kiểm tra rằng token đang **Active**. Nếu không, hãy tạo token mới và cập nhật kết nối.

> **FPT Cloud token lacks permission to list its VPCs**
>
> FPT Cloud đã từ chối liệt kê VPC của người dùng. Nhờ admin của tổ chức kiểm tra vai trò của người dùng trong **IAM**, rồi kiểm tra lại.

> **FPT Cloud token has no assigned VPC**
>
> Người dùng của token không có VPC nào. Nhờ admin của tổ chức gán một VPC trong **IAM**, hoặc tạo token từ người dùng đã có VPC.

> **FPT Cloud rate limit reached, or FPT Cloud is temporarily unavailable**
>
> FPT Cloud đang giới hạn request hoặc trả về lỗi máy chủ. Chờ vài phút, rồi kiểm tra lại kết nối.

> **FPT Cloud could not be reached from the executor**
>
> CloudThinker không thể mở kết nối đến FPT Cloud. Chờ vài phút, rồi kiểm tra lại kết nối.

> **Alias '...' is invalid. Must be lowercase alphanumeric with hyphens, starting with a letter or digit, max 63 chars.**
>
> Chỉ dùng chữ thường, chữ số và dấu gạch ngang, bắt đầu bằng chữ cái hoặc chữ số, và không quá 63 ký tự, chẳng hạn `fpt-production`.

> **Alias '...' is already used by your fptcloud connection.**
>
> Đã có một kết nối FPT Cloud khác trong workspace này dùng alias đó. Hãy chọn alias khác.

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

- **Đặt thời hạn ngắn**: chọn **Expiration** ngắn nhất phù hợp, và tạo token mới trước khi token cũ hết hạn.
- **Xóa token để thu hồi quyền truy cập**: xóa token trên trang **Token** của FPT Cloud sẽ dừng mọi quyền truy cập qua kết nối này.

## Liên quan

> **[Kết nối](https://docs.cloudthinker.io/vi/guide/connections/overview.md)**
>
> Xem mọi dịch vụ bạn có thể kết nối và cách trạng thái kết nối hoạt động.

> **[Approvals](https://docs.cloudthinker.io/vi/guide/approvals/overview.md)**
>
> Quyết định thay đổi FPT Cloud nào được chạy, chờ một người, hoặc bị từ chối.


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