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

> Pulumi를 CloudThinker에 연결하여 스택 인벤토리, 리소스 검색, 정책 검토, 승인 기반 배포를 수행합니다

Pulumi 계정을 연결하면 [Alex](/ko/guide/agents/alex) (Cloud Engineer)가 Pulumi가 호스팅하는 MCP 서버를 통해 스택을 점검하고, Pulumi가 관리하는 리소스를 검색하고, 정책 위반을 검토하고, Registry 스키마를 조회할 수 있습니다. Pulumi는 **OAuth**를 사용하므로 Pulumi 액세스 토큰을 CloudThinker에 붙여넣을 필요가 없습니다.

## 사전 요구사항

* CloudThinker가 점검할 조직에 속한 **Pulumi Cloud 계정**.
* Pulumi OAuth 흐름으로 CloudThinker를 승인할 수 있는 권한.

<Info>
  도구는 Pulumi 계정의 기본 조직을 읽습니다. 원하는 스택을 보유한 조직에 속한 계정으로 인증하세요. 그렇지 않으면 에이전트가 빈 목록을 보고합니다.
</Info>

## 설정

<Steps>
  <Step title="CloudThinker 열기">
    워크스페이스에서 **Connections → Pulumi**로 이동합니다.
  </Step>

  <Step title="OAuth 흐름 시작">
    **Connect**를 클릭해 Pulumi 인증 페이지를 엽니다.
  </Step>

  <Step title="CloudThinker 승인">
    원하는 스택을 볼 수 있는 Pulumi 계정으로 로그인한 뒤 접근을 승인합니다.
  </Step>

  <Step title="CloudThinker로 돌아오기">
    CloudThinker가 OAuth 토큰을 저장하고 연결이 **Connected** 상태로 바뀝니다.
  </Step>
</Steps>

## 연결 세부 정보

Pulumi는 OAuth를 사용하므로 입력할 필드가 없습니다. 인증이 끝나면 CloudThinker가 토큰을 자동으로 저장합니다.

| 필드            | 설명                                                  |
| ------------- | --------------------------------------------------- |
| **OAuth 토큰**  | Pulumi가 발급하고 자동으로 저장되며 직접 입력할 필요가 없습니다              |
| **MCP 엔드포인트** | Pulumi가 호스팅하는 `mcp.ai.pulumi.com`이며 고정되어 변경할 수 없습니다 |

## 필요 권한

CloudThinker는 OAuth로 부여된 Pulumi 권한을 그대로 사용합니다.

* **읽기 작업**에는 스택, 관리 리소스, 정책 위반, 조직 구성원, Neo 작업 이력, Registry 스키마가 포함됩니다.
* **배포와 Pulumi Neo**는 해당 Pulumi 권한과 CloudThinker의 명시적 [승인](/ko/guide/approval)이 모두 필요합니다. 둘 다 클라우드 리소스를 변경하기 때문입니다.

<Tip>
  조직을 관리하는 계정이 아니라 조직을 읽을 수 있는 계정으로 인증하세요. 아래 기능 중 이미 사용자에게 확인을 요청하는 두 가지를 제외하면 읽기 권한만으로 충분합니다.
</Tip>

## 에이전트 기능

연결하면 Alex는 다음을 수행할 수 있습니다.

| 기능              | 설명                                      |
| --------------- | --------------------------------------- |
| **스택 인벤토리**     | 조직의 스택을 프로젝트 및 마지막 업데이트와 함께 나열          |
| **리소스 검색**      | Pulumi가 관리하는 리소스를 이름, 유형, 프로젝트, 스택으로 검색 |
| **정책 검토**       | 정책 위반을 나열하고 시행 수준별로 분류                  |
| **Registry 조회** | Pulumi Registry에서 프로바이더 리소스 및 함수 스키마 조회 |
| **조직 구성원**      | 조직의 구성원과 관리자 나열                         |
| **Neo 작업**      | Pulumi Neo 작업 이력 조회. Neo를 실행하려면 승인 필요   |
| **AWS 배포**      | 사용자가 호출을 승인한 경우에만 AWS에 배포               |

### 연결 확인

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

### 예시 프롬프트

```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
```

## 승인이 필요한 도구

실제 상태를 바꾸는 Pulumi 도구는 네 개이며, CloudThinker는 호출할 때마다 먼저 확인합니다. **AWS 배포**와 Pulumi Neo를 구동하는 세 도구(브리지, 작업 계속, 대화 초기화)입니다. 에이전트는 스택과 영향을 밝힌 뒤 사용자의 응답을 기다립니다.

이 연결의 나머지 기능은 모두 읽기입니다. 스택을 읽을 때는 확인 요청이 뜨지 않으므로 인벤토리나 정책 질문은 한 번의 턴으로 끝납니다.

<Warning>
  프롬프트에 표시된 스택을 확실히 알아볼 때만 배포를 승인하세요. Pulumi 배포는 실제 클라우드 리소스를 만들고 클라우드 계정에 요금이 청구됩니다.
</Warning>

## 문제 해결

<Accordion title="OAuth 흐름이 완료되지 않음">
  브라우저가 다른 Pulumi 계정으로 로그인되어 있을 수 있습니다. app.pulumi.com에서 원하는 계정으로 로그인한 뒤 CloudThinker에서 **Connect**를 다시 시도하세요.
</Accordion>

<Accordion title="에이전트가 스택을 찾지 못함">
  Pulumi는 계정의 기본 조직을 기준으로 응답합니다. 해당 계정이 스택을 보유한 조직의 구성원인지 확인한 뒤 올바른 계정으로 다시 연결하세요.
</Accordion>

<Accordion title="조직에 접근할 수 없다고 표시됨">
  토큰은 Pulumi 사용자가 속한 조직에만 도달합니다. Pulumi에서 해당 사용자를 조직에 추가하거나, 이미 속해 있는 계정으로 다시 연결하세요.
</Accordion>

<Accordion title="배포할 때마다 확인을 요청함">
  이는 승인 게이트이며 호출마다 동작합니다. 대화에서 확인에 응답하세요. CloudThinker가 게이트 도구를 처리하는 방식은 [승인](/ko/guide/approval)을 참고하세요.
</Accordion>

<Accordion title="새로운 Pulumi 도구가 보이지 않음">
  CloudThinker는 검토를 마친 Pulumi 도구만 노출합니다. Pulumi가 나중에 출시한 도구는 CloudThinker가 검토하고 승인 필요 여부를 정할 때까지 숨겨집니다.
</Accordion>

## 보안

* **최소 권한** — 에이전트가 사용 사례에 필요한 권한만 부여하세요. 읽기 전용으로 시작한 후 필요에 따라 확장하세요.
* **기본 읽기 전용** — 에이전트가 이 연결을 통해 변경 작업을 수행하게 할 것이 아니라면 읽기 전용 자격증명을 사용하세요.
* **자격증명 교체** — 정기 일정에 따라 키와 토큰을 교체하세요. 연결을 업데이트하면 CloudThinker가 새 값을 자동으로 반영합니다.
* **오프보딩 시 취소** — 연결을 삭제하거나 팀원이 퇴사할 때 프로바이더에서 자격증명을 제거하세요.

- **게이트를 유지하세요** — 배포와 Pulumi Neo는 승인 대상으로 두세요. 여기서 클라우드를 바꿀 수 있는 도구는 이 둘뿐입니다.
- **연결은 신중하게 다시 맺으세요** — 연결의 도달 범위는 인증한 계정의 도달 범위와 같습니다. 계정을 바꾸려면 연결을 삭제하고 다시 인증하세요.

## 관련 항목

<CardGroup cols={2}>
  <Card title="Alex Agent" icon="cloud" href="/ko/guide/agents/alex">
    클라우드 인프라 및 비용 분석
  </Card>

  <Card title="승인" icon="shield-check" href="/ko/guide/approval">
    상태를 바꾸는 도구를 CloudThinker가 게이트하는 방식
  </Card>
</CardGroup>
