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

# Credentials

> Lưu API key và token một lần để agent dùng chúng trong lệnh, mà không ai phải dán secret vào chat.

Credential là một secret, như API key hoặc service token, mà bạn lưu một lần trong workspace. CloudThinker mã hóa secret và truyền cho agent dưới dạng biến môi trường mỗi khi agent chạy lệnh, nên không ai phải dán secret vào chat. Nếu một lệnh in ra giá trị, CloudThinker thay giá trị đó bằng placeholder khi key có tên giống secret (chứa `KEY`, `TOKEN`, `SECRET` hoặc `PASSWORD`) và giá trị dài từ 6 ký tự trở lên. Các giá trị khác chỉ được che nếu khớp với một định dạng secret đã biết. Xem [Giá trị nằm ngoài chat](#cách-agent-dùng-credential).

## Credentials, kết nối hay BYOK?

CloudThinker giữ secret ở ba nơi. Chọn nơi phù hợp với thứ bạn cần lưu.

| Bạn muốn cấp cho agent | Dùng | Ở đâu |
| - | - | - |
| Quyền truy cập tài khoản cloud, cơ sở dữ liệu hoặc công cụ giám sát | [Kết nối](https://docs.cloudthinker.io/vi/guide/connections/overview.md) | **More → Workspace settings → Connections** |
| Bất kỳ secret nào khác mà lệnh cần, như API key của nhà cung cấp hoặc webhook secret | **Credentials** (trang này) | **More → Workspace settings → Credentials** |
| Key của nhà cung cấp LLM riêng để chạy suy luận model | [BYOK](https://docs.cloudthinker.io/vi/guide/byok.md) | **Admin Settings → BYOK** cho key của tổ chức, hoặc **More → Workspace settings → BYOK** cho key của workspace |

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

* Vai trò **Admin** trong workspace. Developer và Viewer thấy thẻ "Credentials are restricted" thay vì danh sách. Xem [vai trò workspace](https://docs.cloudthinker.io/vi/guide/workspace-users.md).
* Một ngoại lệ: form bảo mật mà agent hiển thị trong chat (xem [Cách agent dùng credential](#cách-agent-dùng-credential)) không kiểm tra vai trò workspace. Bất kỳ thành viên nào có thể chat, kể cả Developer, đều có thể gửi form này.

## Thêm credential

**1. Mở trang Credentials**

Trong thanh bên, nhấn **More → Workspace settings**, rồi **Credentials**. Danh sách hiển thị key, mô tả, người thêm và thời điểm cập nhật gần nhất của từng credential. Giá trị không bao giờ được hiển thị.

**2. Nhấn Add Credential**

Điền form:

| Trường | Nội dung cần nhập |
| - | - |
| **Key** | Tên biến môi trường mà agent thấy, ví dụ `STRIPE_API_KEY`. Chỉ chữ in hoa, chữ số và dấu gạch dưới, và không được bắt đầu bằng chữ số. Tối đa 255 ký tự. |
| **Value** | Chính secret đó. |
| **Description** | Tùy chọn, tối đa 1.024 ký tự. Ghi rõ secret dùng để làm gì và lấy từ đâu, để admin tiếp theo biết có an toàn để xoay vòng không. |

**3. Nhấn Save**

**Trạng thái thành công:** credential xuất hiện trong danh sách cùng key và mô tả. Agent nhận được credential ở lệnh tiếp theo.

> [!NOTE]
>
> Form từ chối các key dành riêng. Quyền truy cập cloud và Git đến từ [Kết nối](https://docs.cloudthinker.io/vi/guide/connections/overview.md), và Cyber tự quản lý các key đăng nhập của riêng mình.
>
> * Mọi key bắt đầu bằng `AWS_`, `GOOGLE_`, `AZURE_`, `KUBECONFIG`, `GITHUB_TOKEN`, `GITLAB_TOKEN`, `BITBUCKET_TOKEN` hoặc `APPSEC_RUN_GENERATOR_INSTRUCTIONS_`
> * `CYBER_AUTH`, `CYBER_AUTH_JSON`, `CYBER_COOKIE`, `APPSEC_AUTH`, `APPSEC_AUTH_JSON`, `APPSEC_COOKIE`, và mọi key bắt đầu bằng một trong số đó theo sau là `_`

## Nhập file .env

Dùng cách này khi bạn đã lưu secret trong file dotenv. File được phân tích trong trình duyệt của bạn, và chỉ các hàng bạn chọn mới được gửi đi.

**1. Mở hộp thoại nhập**

Trên **More → Workspace settings → Credentials**, nhấn **Import .env**.

**2. Thêm file**

Chọn **Paste** và dán nội dung, hoặc chọn **Upload a file** và chọn file `.env`, `.env.local` hoặc file `.env.*` khác. Mỗi lần nhập nhận file từ 64 KiB trở xuống với tối đa 50 key. Nhấn **Review credentials**.

| Trong file | Cách đọc |
| - | - |
| `export KEY=value` | Tiền tố `export` bị bỏ qua. |
| `# comment`, hoặc `value # comment` | Bị bỏ qua. Dấu `#` không nằm trong dấu ngoặc và đứng sau khoảng trắng sẽ bắt đầu một comment. |
| `"..."` hoặc `'...'` | Dấu ngoặc được bỏ đi. Giá trị nằm trong dấu ngoặc có thể trải trên nhiều dòng, phù hợp với PEM key và JSON. Trong dấu ngoặc kép (`"`), `\n`, `\t`, `\"` và `\\` được giải mã. |
| `KEY=` | Bị bỏ qua vì trống. |
| Key không hợp lệ, như `my-key`, hoặc key khai báo hai lần | Được liệt kê là lỗi theo dòng, ví dụ "Line 4 has an invalid key." |

**3. Chọn các hàng cần lưu**

Các hàng được chia thành hai nhóm:

| Nhóm | Chọn một hàng sẽ làm gì |
| - | - |
| **New** | Tạo credential. |
| **Already in this workspace** | Ghi đè giá trị đã lưu. Để không chọn nếu muốn giữ giá trị hiện tại. |

Các hàng có key dành riêng được đánh dấu "This key is managed by the platform." và không thể nhập.

**4. Nhấn Import**

Nút hiển thị số hàng bạn đã chọn, ví dụ **Import 3**.

**Trạng thái thành công:** các key đã nhập xuất hiện trong danh sách.

## Dùng credential trong chat

Gõ `$` trong ô chat để mở bộ chọn credential, rồi chọn một key. Key được chèn dưới dạng `$KEY`, nên bạn có thể chỉ cho agent một secret mà không cần dán secret.

```text theme={null}
Summarize this month's failed payments from the Stripe API using $STRIPE_API_KEY
```

Agent đọc giá trị từ môi trường của mình và chỉ báo cáo lại bằng tên key. Bộ chọn `$` chỉ hiển thị cho thành viên có quyền quản lý credential. Xem [Lệnh và cú pháp](https://docs.cloudthinker.io/vi/guide/commands.md) để biết các token khác bạn có thể gõ.

## Cách agent dùng credential

| Hành vi | Ý nghĩa với bạn |
| - | - |
| Mọi credential đều có sẵn cho mọi lệnh | Agent nhận tất cả credential của workspace dưới dạng biến môi trường, dù prompt của bạn có nhắc đến chúng hay không. Bạn không thể giới hạn một credential cho một agent, một loại lượt chạy hay một Automation. Hãy giữ secret mà chỉ một số công việc được thấy trong một workspace riêng. |
| Agent có thể yêu cầu secret còn thiếu | Nếu một tác vụ cần key mà workspace chưa có, agent hiển thị một form bảo mật trong chat. Những gì bạn gửi được lưu thành credential của workspace, và danh sách hiển thị "Added by" kèm tên agent. Form không kiểm tra vai trò workspace, nên bất kỳ thành viên nào có thể chat, kể cả Developer, đều có thể tạo credential workspace theo cách này, hoặc ghi đè một credential hiện có. |
| Giá trị nằm ngoài chat | Bạn và agent tham chiếu credential bằng tên key, và danh sách Credentials không bao giờ hiển thị giá trị. Khi output của lệnh chứa giá trị credential, CloudThinker thay giá trị đó bằng placeholder trước khi model, chat hoặc output được lưu nhìn thấy. CloudThinker khớp chính xác với các giá trị bạn đã lưu, cộng thêm các định dạng secret đã biết như cloud key. Khớp chính xác áp dụng cho giá trị được lưu dưới tên trông giống secret, như tên chứa `KEY`, `TOKEN`, `SECRET` hoặc `PASSWORD`. Giá trị dưới tên thông thường như `REGION`, hoặc ngắn hơn 6 ký tự, chỉ bị bắt nếu khớp với định dạng đã biết, nên `env` vẫn có thể in giá trị đó ra. Xem [Bảo vệ dữ liệu](https://docs.cloudthinker.io/vi/guide/security/data-protection.md). |
| Lệnh gửi credential đi qua Approvals | Lệnh gửi credential đến dịch vụ khác, như `curl` với `$STRIPE_API_KEY` trong header, được [Approvals](https://docs.cloudthinker.io/vi/guide/approvals/overview.md) kiểm tra giống như một lệnh gọi đến kết nối. Ưu tiên key của nhà cung cấp chỉ đọc hoặc có phạm vi hẹp, để một thao tác ghi nhầm không gây nhiều hậu quả. |

> [!WARNING]
>
> Nếu agent yêu cầu một key đã tồn tại, gửi form sẽ thay giá trị đã lưu, bất kể ai gửi. Khi key có thể đang được một automation khác dùng, hãy kiểm tra danh sách trước.

## Sửa hoặc xóa credential

* **Sửa:** nhấn biểu tượng bút chì trên hàng của credential (tooltip **Edit credential**). Thay đổi mô tả, hoặc nhập giá trị mới để thay secret. Để trống giá trị để giữ secret đã lưu. Để xoay vòng secret, nhập giá trị mới ở đây: các lệnh nhận giá trị mới từ lượt chạy tiếp theo.
* **Đổi tên:** bạn không thể đổi tên key. Thêm credential dưới key mới, cập nhật mọi thứ đang dùng tên cũ, rồi xóa key cũ.
* **Xóa:** nhấn biểu tượng thùng rác (tooltip **Delete credential**) và xác nhận. Mọi agent đọc credential này mất quyền truy cập ở lệnh tiếp theo. Không thể hoàn tác.

## Bảo mật

* Giá trị được mã hóa khi lưu trữ bằng Fernet (AES kèm kiểm tra toàn vẹn HMAC) và không bao giờ được gửi lại trình duyệt.
* Trên Scale, Scale Plus và Enterprise, mỗi thao tác tạo, cập nhật và xóa được ghi trong [Audit Logs](https://docs.cloudthinker.io/vi/guide/security/audit-logs.md) thuộc danh mục Security. Free và Team không có Audit Logs. Mục log không chứa cả tên key lẫn giá trị, vì số người đọc được audit log nhiều hơn số người quản lý được credential. Để biết key nào đã thay đổi, đối chiếu thời gian của mục log với ngày **Updated** trên từng hàng của danh sách Credentials.

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

> **Form báo 'Uppercase letters, digits, and underscores only'**
>
> Key có chữ thường, dấu gạch ngang, khoảng trắng, hoặc bắt đầu bằng chữ số. Đổi tên key, ví dụ `stripe-key` thành `STRIPE_KEY`.

> **Key là key dành riêng ('uses reserved prefix')**
>
> Key nằm trong danh sách dành riêng ở trên, hoặc là tên chính xác như `CYBER_AUTH` hoặc theo tiền tố như `AWS_`. Thông báo đều hiển thị "uses reserved prefix" trong cả hai trường hợp. Thay vào đó hãy thêm quyền truy cập đó dưới dạng [kết nối](https://docs.cloudthinker.io/vi/guide/connections/overview.md), hoặc đổi tên key nếu key dành cho dịch vụ khác.

> **'A credential named ... already exists'**
>
> **Add Credential** không bao giờ ghi đè. Sửa credential hiện có để thay giá trị, hoặc dùng **Import .env** và chọn hàng trong **Already in this workspace**.

> **Tôi không thấy danh sách Credentials hoặc bộ chọn \$**
>
> Cả hai đều cần vai trò **Admin** của workspace. Đề nghị một admin workspace thêm secret, hoặc thay đổi vai trò của bạn.

## Bước tiếp theo

> **[Kết nối](https://docs.cloudthinker.io/vi/guide/connections/overview.md)**
>
> Cấp cho agent quyền truy cập tài khoản cloud, cơ sở dữ liệu và công cụ của bạn

> **[Approvals](https://docs.cloudthinker.io/vi/guide/approvals/overview.md)**
>
> Quyết định thao tác ghi nào của agent tự chạy và thao tác nào chờ người duyệt

> **[Bring your own key](https://docs.cloudthinker.io/vi/guide/byok.md)**
>
> Chạy suy luận model trên key nhà cung cấp LLM của riêng bạn

> **[Audit Logs](https://docs.cloudthinker.io/vi/guide/security/audit-logs.md)**
>
> Xem credential được tạo, thay đổi hoặc xóa khi nào và bởi ai


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