> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 환경에 시크릿 추가하기

> Replit의 오픈 소스 OIDC 모듈과 단기 제공자 자격 증명으로 외부 시크릿 관리자를 연결하세요.

아래에서 제공자를 선택하고 Replit에 구성을 전달해 시크릿 관리자를 연결한 다음 [재사용 가능한 환경](https://docs.replit.com/ko/build/code/create-reusable-environment.md)에 저장하세요. 예시 식별자를 개발 리소스로 바꾸고, 먼저 제공자의 신뢰와 권한을 구성하세요.
이 모듈은 단기 제공자 자격 증명을 구성할 뿐, 시크릿을 앱에 자동으로 불러오지는 않습니다.

## 시크릿 관리자 연결하기

**AWS Secrets Manager**

```yaml theme={null}
repos:
  - repo: https://github.com/replit/dev-modules
    ref: f9ec152dd804895d59cb01fa71ee01864d932c40
    path: dev-modules
build:
  - run: >-
      bash ./dev-modules/aws-oidc/build.sh
      --role-arn=arn:aws:iam::123456789012:role/replit-development
      --region=us-east-1
```

사전 요건: `https://sts.replit.com`을 대상(audience) `sts.amazonaws.com`의 AWS OIDC 제공자로 등록하고 위의 역할을 생성하세요.
신뢰 범위를 Replit 워크스페이스로 제한하고 필요한 시크릿에 대한 읽기 액세스를 부여하세요.
[AWS 상세 안내](https://github.com/replit/dev-modules/tree/f9ec152dd804895d59cb01fa71ee01864d932c40/aws-oidc)를 참조하세요.

Agent에게 연결된 제공자에서 앱에 필요한 시크릿을 가져와 앱이 사용하도록 구성해 달라고 요청하세요. 특정 프로젝트, 볼트, 시크릿 경로 등 Agent가 찾아볼 위치를 알려 주세요.

**Infisical**

```yaml theme={null}
repos:
  - repo: https://github.com/replit/dev-modules
    ref: f9ec152dd804895d59cb01fa71ee01864d932c40
    path: dev-modules
build:
  - run: >-
      bash ./dev-modules/infisical-oidc/build.sh
      --identity-id="<machine-identity-id>"
      --project-id="<project-id>"
      --environment=dev
```

사전 요건: Replit의 JWKS, 대상(audience) `infisical`, [워크스페이스의 `org_id`](https://github.com/replit/dev-modules/tree/f9ec152dd804895d59cb01fa71ee01864d932c40#how-oidc-works)를 사용하는 JWT 인증으로 머신 ID를 생성하세요.
대상 프로젝트의 개발 환경과 경로에 대한 읽기 액세스를 부여하세요.
[Infisical 상세 안내](https://github.com/replit/dev-modules/tree/f9ec152dd804895d59cb01fa71ee01864d932c40/infisical-oidc)를 참조하세요.

Agent에게 연결된 제공자에서 앱에 필요한 시크릿을 가져와 앱이 사용하도록 구성해 달라고 요청하세요. 특정 프로젝트, 볼트, 시크릿 경로 등 Agent가 찾아볼 위치를 알려 주세요.

**Azure Key Vault**

```yaml theme={null}
repos:
  - repo: https://github.com/replit/dev-modules
    ref: f9ec152dd804895d59cb01fa71ee01864d932c40
    path: dev-modules
build:
  - run: >-
      bash ./dev-modules/azure-oidc/build.sh
      --client-id="<client-id>"
      --tenant-id="<tenant-id>"
      --subscription-id="<subscription-id>"
```

사전 요건: `https://sts.replit.com`을 신뢰하고 대상(audience) `api://AzureADTokenExchange`, subject [`//replit.com/customer/<customer-id>/org/<org-id>`](https://github.com/replit/dev-modules/tree/f9ec152dd804895d59cb01fa71ee01864d932c40#how-oidc-works)를 가진 관리형 ID 또는 앱 등록을 생성하세요.
개발용 Key Vault 시크릿에 대한 읽기 액세스를 부여하세요.
[Azure 상세 안내](https://github.com/replit/dev-modules/tree/f9ec152dd804895d59cb01fa71ee01864d932c40/azure-oidc)를 참조하세요.

Agent에게 연결된 제공자에서 앱에 필요한 시크릿을 가져와 앱이 사용하도록 구성해 달라고 요청하세요. 특정 프로젝트, 볼트, 시크릿 경로 등 Agent가 찾아볼 위치를 알려 주세요.

**HashiCorp Vault**

```yaml theme={null}
repos:
  - repo: https://github.com/replit/dev-modules
    ref: f9ec152dd804895d59cb01fa71ee01864d932c40
    path: dev-modules
build:
  - run: >-
      bash ./dev-modules/vault-oidc/build.sh
      --address=https://vault.example.com
      --role=replit-development
```

사전 요건: Replit을 신뢰하고, [워크스페이스의 `org_id`](https://github.com/replit/dev-modules/tree/f9ec152dd804895d59cb01fa71ee01864d932c40#how-oidc-works)와 대상(audience)으로 Vault 호스트 이름에 바인딩된 JWT 역할을 생성하세요.
대상 시크릿 경로에 대한 읽기 액세스를 부여하고, 환경에서 Vault 서버에 접근할 수 있는지 확인하세요.
[Vault 상세 안내](https://github.com/replit/dev-modules/tree/f9ec152dd804895d59cb01fa71ee01864d932c40/vault-oidc)를 참조하세요.

Agent에게 연결된 제공자에서 앱에 필요한 시크릿을 가져와 앱이 사용하도록 구성해 달라고 요청하세요. 특정 프로젝트, 볼트, 시크릿 경로 등 Agent가 찾아볼 위치를 알려 주세요.

**Google Secret Manager**

```yaml theme={null}
repos:
  - repo: https://github.com/replit/dev-modules
    ref: f9ec152dd804895d59cb01fa71ee01864d932c40
    path: dev-modules
build:
  - run: >-
      bash ./dev-modules/gcp-oidc/build.sh
      --workload-identity-provider=projects/123456789/locations/global/workloadIdentityPools/replit/providers/replit-oidc
      --service-account=replit-dev@my-project.iam.gserviceaccount.com
      --project=my-project
```

사전 요건: `https://sts.replit.com`을 신뢰하고 Replit 워크스페이스로 제한된 Google 워크로드 ID 제공자를 생성하세요.
허용되는 대상(audience)은 `--workload-identity-provider`에 전달한 전체 리소스 이름을 사용한 `//iam.googleapis.com/<provider-resource-name>`과 일치해야 합니다.
위의 서비스 계정을 가장(impersonate)할 수 있도록 허용하고, 해당 계정에 Secret Manager 액세스를 부여하세요.
[Google 상세 안내](https://github.com/replit/dev-modules/tree/f9ec152dd804895d59cb01fa71ee01864d932c40/gcp-oidc)를 참조하세요.

Agent에게 연결된 제공자에서 앱에 필요한 시크릿을 가져와 앱이 사용하도록 구성해 달라고 요청하세요. 특정 프로젝트, 볼트, 시크릿 경로 등 Agent가 찾아볼 위치를 알려 주세요.

> [!NOTE]
>
> 비대화형 앱 명령의 경우 Agent에게 `~/.config/replit-oidc/env.sh`를 로드하고 연결된 제공자 README의 런타임 안내를 따르도록 요청하세요.
> CLI 인증이 SDK 인증이나 자격 증명 갱신을 보장하지는 않습니다. Vault 및 Infisical CLI 헬퍼는 관련 없는 SDK 프로세스에 자격 증명을 제공하지 않습니다.

> **이 챗에서만 필요한 시크릿이 있나요?**
>
> 메시지에 값을 입력하지 말고, Agent에게 이름으로 시크릿을 추가해 달라고 요청하세요. 예를 들면 다음과 같습니다.
>
> ```text theme={null}
> This app needs DEVELOPMENT_API_KEY. Ask me to add it securely for this chat.
> ```
>
> Agent가 값을 입력할 수 있는 보안 입력 양식을 열어 줍니다. 시크릿은 프롬프트에 넣거나 Git에 커밋되지 않고, 비공개 챗 범위로 안전하게 저장됩니다. 필요한 권한만 가진 개발용 자격 증명을 사용하고, 제출하기 전에 양식에 표시된 변수 이름과 범위를 확인하세요. 챗 범위의 시크릿이 다른 챗이나 재사용 가능한 환경 빌드에서 사용 가능하다고 가정하지 마세요.
>
> ![값 필드가 비어 있는 보안 시크릿 입력 양식.](https://mintcdn.com/replit/Scz0QdkCm-76dARz/images/code-contributions/chat-secret-elicitation.png?fit=max\&auto=format\&n=Scz0QdkCm-76dARz\&q=85\&s=0a259e2853c5ec254f1bfb9c58de097b)
>
> 또는 에디터 탭 바에서 \*\*+\*\*를 선택한 다음 **Secrets**를 선택하세요.
>
> ![Secrets가 강조 표시된 에디터의 새 탭 메뉴.](https://mintcdn.com/replit/ZvLiuMLrojYoqf3I/images/code-contributions/open-secrets-tab.jpg?fit=max\&auto=format\&n=ZvLiuMLrojYoqf3I\&q=85\&s=9dfd78422324f9c2c7742688b6ab8c81)
>
> **New Secret**을 선택하고 **Key**와 **Value**를 입력한 다음 **Add Secret**을 선택하세요. 자격 증명은 채팅이 아니라 양식에 입력하세요.
>
> ![Key 필드와 비어 있는 Value 필드가 있는 Add Secret 양식.](https://mintcdn.com/replit/bwyNlFMrtiNdFQiG/images/code-contributions/add-secret-form.jpg?fit=max\&auto=format\&n=bwyNlFMrtiNdFQiG\&q=85\&s=128c3e3878cdfb9e92c569a08d729c07)
