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

# Pulumi

> Kết nối Pulumi với CloudThinker để kiểm kê stack, tìm kiếm tài nguyên, xem xét policy và triển khai có phê duyệt

Kết nối tài khoản Pulumi của bạn để [Alex](/vi/guide/agents/alex) (Cloud Engineer) kiểm tra stack, tìm kiếm tài nguyên do Pulumi quản lý, xem xét vi phạm policy và tra cứu schema Registry thông qua máy chủ MCP được Pulumi lưu trữ. Pulumi dùng **OAuth**, nên bạn không bao giờ phải dán access token của Pulumi vào CloudThinker.

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

* Một **tài khoản Pulumi Cloud** thuộc tổ chức mà bạn muốn CloudThinker kiểm tra.
* Quyền cho phép CloudThinker qua luồng OAuth của Pulumi.

<Info>
  Các tool đọc tổ chức mặc định của tài khoản Pulumi của bạn. Hãy xác thực bằng tài khoản thuộc tổ chức chứa các stack bạn quan tâm, nếu không agent sẽ báo danh sách rỗng.
</Info>

## Thiết lập

<Steps>
  <Step title="Mở CloudThinker">
    Vào **Connections → Pulumi** trong workspace của bạn.
  </Step>

  <Step title="Bắt đầu luồng OAuth">
    Nhấn **Connect** để mở trang ủy quyền của Pulumi.
  </Step>

  <Step title="Ủy quyền cho CloudThinker">
    Đăng nhập bằng tài khoản Pulumi thấy được các stack bạn cần, rồi chấp thuận quyền truy cập.
  </Step>

  <Step title="Quay lại CloudThinker">
    CloudThinker lưu OAuth token và kết nối hiển thị trạng thái **Connected**.
  </Step>
</Steps>

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

Pulumi dùng OAuth nên không có trường nào phải điền. CloudThinker tự lưu token sau khi việc ủy quyền hoàn tất.

| Trường           | Mô tả                                                                           |
| ---------------- | ------------------------------------------------------------------------------- |
| **OAuth token**  | Do Pulumi cấp và được lưu tự động; không cần nhập tay                           |
| **MCP endpoint** | Máy chủ do Pulumi lưu trữ tại `mcp.ai.pulumi.com`; cố định, không cấu hình được |

## Quyền bắt buộc

CloudThinker kế thừa quyền Pulumi được cấp trong lúc OAuth.

* **Thao tác đọc** bao gồm stack, tài nguyên được quản lý, vi phạm policy, thành viên tổ chức, lịch sử task của Neo và schema Registry.
* **Triển khai và Pulumi Neo** cần quyền Pulumi tương ứng **và** [phê duyệt](/vi/guide/approval) rõ ràng trong CloudThinker, vì cả hai đều thay đổi tài nguyên cloud.

<Tip>
  Hãy ủy quyền bằng tài khoản đọc được tổ chức thay vì tài khoản quản trị nó. Quyền đọc đủ cho mọi khả năng bên dưới, trừ hai khả năng vốn đã hỏi bạn trước.
</Tip>

## Khả năng của agent

Sau khi kết nối, Alex có thể:

| Khả năng                | Mô tả                                                               |
| ----------------------- | ------------------------------------------------------------------- |
| **Kiểm kê stack**       | Liệt kê stack trong tổ chức kèm project và lần cập nhật gần nhất    |
| **Tìm kiếm tài nguyên** | Tìm tài nguyên do Pulumi quản lý theo tên, loại, project hoặc stack |
| **Xem xét policy**      | Liệt kê vi phạm policy và nhóm theo mức thực thi                    |
| **Tra cứu Registry**    | Đọc schema resource và function của provider từ Pulumi Registry     |
| **Thành viên tổ chức**  | Liệt kê thành viên và quản trị viên của tổ chức                     |
| **Task của Neo**        | Đọc lịch sử task của Pulumi Neo; điều khiển Neo cần phê duyệt       |
| **Triển khai AWS**      | Triển khai lên AWS chỉ sau khi bạn phê duyệt lệnh gọi               |

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

```text theme={null}
@alex #report list my Pulumi stacks and the organization they belong to
```

### Ví dụ prompt

```text theme={null}
@alex #report which Pulumi stacks have mandatory policy violations
@alex #report find every S3 bucket Pulumi manages and name the stack that owns it
@alex #recommend read the aws:s3/bucket schema and list the settings we leave unset
```

## Tool cần phê duyệt

Bốn tool của Pulumi thay đổi trạng thái thật, nên CloudThinker hỏi trước mỗi lần gọi: **triển khai lên AWS** và ba tool điều khiển Pulumi Neo (bridge, tiếp tục một task, đặt lại hội thoại). Agent nêu rõ stack và tác động, rồi chờ bạn trả lời.

Mọi thứ còn lại trên kết nối này đều là đọc. Đọc một stack không bao giờ kích hoạt lời nhắc, nên câu hỏi về kiểm kê hay policy hoàn tất trong một lượt.

<Warning>
  Chỉ phê duyệt một lần triển khai khi bạn nhận ra stack trong lời nhắc. Một lần triển khai Pulumi tạo ra tài nguyên cloud thật và tính phí vào tài khoản cloud của bạn.
</Warning>

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

<Accordion title="Luồng OAuth không hoàn tất">
  Trình duyệt của bạn có thể đang đăng nhập một tài khoản Pulumi khác. Hãy đăng nhập đúng tài khoản tại app.pulumi.com rồi thử lại **Connect** trong CloudThinker.
</Accordion>

<Accordion title="Agent báo không có stack nào">
  Pulumi trả lời cho tổ chức mặc định của tài khoản bạn. Hãy xác nhận tài khoản đó là thành viên của tổ chức chứa các stack, rồi kết nối lại bằng đúng tài khoản.
</Accordion>

<Accordion title="Agent báo không có quyền với một tổ chức">
  Token chỉ tới được các tổ chức mà người dùng Pulumi của bạn tham gia. Hãy thêm người dùng vào tổ chức trong Pulumi, hoặc kết nối lại bằng tài khoản đã thuộc tổ chức đó.
</Accordion>

<Accordion title="Lời nhắc triển khai cứ hỏi xác nhận">
  Đó là cổng phê duyệt, và nó áp dụng cho từng lệnh gọi. Hãy trả lời lời nhắc ngay trong hội thoại. Xem [Phê duyệt](/vi/guide/approval) để biết CloudThinker xử lý tool bị chặn như thế nào.
</Accordion>

<Accordion title="Thiếu một tool mới của Pulumi">
  CloudThinker chỉ cung cấp danh sách tool Pulumi đã được xem xét. Một tool Pulumi phát hành sau sẽ ẩn cho tới khi CloudThinker xem xét và quyết định nó có cần phê duyệt hay không.
</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ữ cổng phê duyệt** — để triển khai và Pulumi Neo luôn cần phê duyệt; đây là những tool duy nhất ở đây có thể thay đổi cloud của bạn.
- **Kết nối lại có chủ đích** — kết nối chỉ tới được những gì tài khoản ủy quyền tới được, nên hãy đổi tài khoản bằng cách xóa kết nối và ủy quyền lại.

## Liên quan

<CardGroup cols={2}>
  <Card title="Alex Agent" icon="cloud" href="/vi/guide/agents/alex">
    Phân tích hạ tầng cloud và chi phí
  </Card>

  <Card title="Phê duyệt" icon="shield-check" href="/vi/guide/approval">
    Cách CloudThinker chặn các tool thay đổi trạng thái
  </Card>
</CardGroup>
