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

# ARIA의 시크릿

> API 토큰 등의 개인 시크릿을 저장해 두면 ARIA가 샌드박스에서 환경 변수로 사용할 수 있습니다.

<Note>
  [W\&B Multi-tenant Cloud](/ko/products/wandb/platform/hosting#wb-multi-tenant-cloud)에서만 사용 가능합니다.
</Note>

*개인 시크릿*은 API 토큰처럼 본인만 사용할 수 있는 민감한 값을 저장합니다. ARIA에 개인 시크릿에 대한 액세스 권한을 부여하면 해당 시크릿이 ARIA가 코드를 실행하는 샌드박스의 환경 변수로 제공되므로, ARIA가 사용자를 대신해 외부 서비스에 인증할 수 있습니다. 예를 들어 GitHub 개인 액세스 토큰을 저장해 두면 ARIA가 저장소를 조회하거나, 브랜치에 커밋하거나, 풀 리퀘스트를 열 수 있습니다. 자세한 내용은 [GitHub 저장소 연결](#connect-a-github-repository)을 참조하세요.

개인 시크릿은 Admin이 팀 설정에서 관리하는 [팀 시크릿](/ko/products/wandb/platform/secrets)과는 별개입니다. 개인 시크릿은 본인과 계정 전환기에서 선택한 조직으로 범위가 한정됩니다. 예를 들어 GitHub 토큰을 개인 시크릿으로 저장하면 팀의 다른 구성원은 이를 사용할 수 없습니다. 이름이 같은 팀 시크릿이 있으면 개인 시크릿이 우선 적용됩니다.

<h2 id="how-aria-uses-a-granted-secret">
  ARIA가 부여된 시크릿을 사용하는 방식
</h2>

ARIA에 개인 시크릿에 대한 액세스 권한을 부여하면, 대화에서 다음 메시지를 보낼 때부터 ARIA의 샌드박스에 시크릿과 이름이 정확히 같은 환경 변수가 제공됩니다. 새 채팅을 시작할 필요는 없습니다. 액세스 권한을 철회할 때도 마찬가지로, 다음 메시지부터 해당 변수가 샌드박스에서 제거됩니다.

다음 사항에 유의하세요.

* 채팅에 표시되는 샌드박스 출력에서는 시크릿 값이 마스킹됩니다.
* 부여된 시크릿으로 `WANDB_API_KEY`와 같은 관리형 환경 변수를 대체할 수는 없습니다. 이름이 관리형 변수와 충돌하거나 유효한 환경 변수 이름이 아닌 시크릿은 건너뛰며, 샌드박스에 전달되지 않습니다.
* ARIA는 사용자가 부여한 시크릿만, 해당 대화가 속한 조직 내에서만 사용할 수 있습니다.

<Warning>
  부여된 시크릿은 ARIA가 사용자를 대신해 샌드박스에서 실행하는 모든 코드에서 사용할 수 있습니다. ARIA가 시크릿으로 할 수 있는 작업은 해당 자격 증명의 권한에 따라 결정됩니다. 예를 들어 읽기 액세스 권한이 있는 GitHub 토큰으로는 ARIA가 코드와 결과를 읽을 수 있고, 쓰기 및 풀 리퀘스트 권한이 있는 토큰으로는 변경 사항을 커밋하고 풀 리퀘스트를 생성할 수도 있습니다.
</Warning>

<h2 id="create-a-personal-secret">
  개인 시크릿 만들기
</h2>

개인 시크릿을 만들고 ARIA가 사용할 수 있도록 허용하려면 다음 단계를 따르세요.

1. 페이지 오른쪽 상단에서 **User menu** 드롭다운을 선택한 다음 **Settings**를 선택하세요.
2. **Personal secrets** 섹션까지 스크롤하세요.
3. **New secret**을 클릭하세요. 아직 개인 시크릿이 없다면 **Create new secret**을 클릭하세요.
4. 시크릿의 **Name**을 환경 변수 형식으로 입력하세요. 문자, 숫자, 밑줄(`_`)만 사용할 수 있으며 숫자로 시작할 수 없습니다. 예: `GITHUB_TOKEN`

   같은 이름의 팀 시크릿이 이미 있으면 드로어에 안내 메시지가 표시됩니다. 이 경우 개인 시크릿이 팀 시크릿보다 우선 적용됩니다.
5. **Value** 필드에 민감한 값을 붙여 넣으세요.
6. 시크릿을 만드는 즉시 ARIA에 액세스 권한을 부여하려면 **Allow ARIA to use this secret**을 기본값인 켜짐 상태로 두세요. ARIA에 액세스 권한을 부여하지 않고 시크릿만 저장하려면 이 옵션을 끄세요.
7. **Save secret**을 클릭하세요.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/wtrJ2D-kpZzEJkTy/products/aria/_media/aria-secrets-new-secret-drawer.png?fit=max&auto=format&n=wtrJ2D-kpZzEJkTy&q=85&s=5e4561e5ce0a68dcfeedaed7f2970b1a" alt="Name, Value 필드와 Allow ARIA to use this secret 토글이 있는 Create new secret 드로어" width="479" height="479" data-path="products/aria/_media/aria-secrets-new-secret-drawer.png" />
</Frame>

<h2 id="grant-or-revoke-arias-access">
  ARIA의 액세스 권한 부여 또는 철회
</h2>

ARIA가 사용할 수 있는 개인 시크릿은 사용자 설정이나 ARIA 패널에서 언제든지 변경할 수 있습니다. 어느 쪽에서 변경하든 대화에서 다음 메시지를 보낼 때부터 적용됩니다.

<h3 id="from-your-user-settings">
  사용자 설정에서
</h3>

사용자 설정의 **Personal secrets** 섹션을 보면 각 시크릿 행에 **ARIA access** 스위치가 있습니다. 스위치를 켜면 ARIA에 해당 시크릿에 대한 액세스 권한이 부여되고, 끄면 권한이 철회됩니다.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/wtrJ2D-kpZzEJkTy/products/aria/_media/aria-secrets-personal-secrets.png?fit=max&auto=format&n=wtrJ2D-kpZzEJkTy&q=85&s=8d7c9a1e2b378aa129380fdd81b3b2f5" alt="각 시크릿 행에 ARIA access 스위치가 표시된 사용자 설정의 Personal secrets 섹션" width="768" height="463" data-path="products/aria/_media/aria-secrets-personal-secrets.png" />
</Frame>

<h3 id="from-the-aria-panel">
  ARIA 패널에서
</h3>

1. ARIA 채팅 창에서 채팅 이력 사이드바가 숨겨져 있다면 **<Icon icon="panel-left-open" />** (**Reveal chat history**)를 클릭하여 여세요.
2. **Customize** 섹션에서 **Secrets**를 클릭하세요. 패널에 현재 조직에 있는 개인 시크릿 목록이 표시되며, summary에서 ARIA가 사용할 수 있는 시크릿 수를 확인할 수 있습니다.
3. ARIA에 액세스 권한을 부여하려면 해당 시크릿의 스위치를 켜고, 권한을 철회하려면 스위치를 끄세요.

시크릿을 직접 생성하고 관리하려면 패널 상단의 **<Icon icon="arrow-up-right" />** (**Manage personal secrets in settings**)를 클릭하세요. 사용자 설정의 **Personal secrets** 섹션이 열립니다.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/wtrJ2D-kpZzEJkTy/products/aria/_media/aria-secrets-customize-pane.png?fit=max&auto=format&n=wtrJ2D-kpZzEJkTy&q=85&s=bcc4f9799ae1d22dcf079b197a89b640" alt="ARIA가 시크릿 3개 중 2개를 사용할 수 있으며 시크릿마다 스위치가 있는 ARIA Secrets 패널" width="520" height="412" data-path="products/aria/_media/aria-secrets-customize-pane.png" />
</Frame>

<h2 id="connect-a-github-repository">
  GitHub 저장소 연결
</h2>

ARIA에서 시크릿은 주로 GitHub 연결에 사용됩니다. GitHub 개인 액세스 토큰을 개인 시크릿으로 저장해 두면 ARIA가 저장소의 코드를 읽을 수 있으며, 토큰 권한이 허용하는 경우 브랜치에 커밋하고 풀 리퀘스트를 생성할 수도 있습니다. GitHub 측에서는 토큰 외에 따로 설치하거나 승인할 항목이 없으므로, ARIA가 수행할 수 있는 작업 범위는 직접 생성한 토큰에 따라 결정됩니다.

시작하려면 채팅 창에서 **Connect my GitHub repo** 추천 칩을 클릭하거나 `/connect-github`를 입력해 전송하세요. 이 칩은 프로젝트 워크스페이스 등 대부분의 페이지에 표시되지만, 독립형 ARIA 뷰에는 표시되지 않습니다. ARIA가 연결할 저장소와 해당 저장소에 대한 쓰기 권한 필요 여부를 물은 다음, 아래 단계를 차례로 안내합니다.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/wtrJ2D-kpZzEJkTy/products/aria/_media/aria-secrets-connect-github-chip.png?fit=max&auto=format&n=wtrJ2D-kpZzEJkTy&q=85&s=ababbe153859c039cedb598ee1c1197e" alt="Connect my GitHub repo를 포함한 ARIA의 추천 칩" width="270" height="336" data-path="products/aria/_media/aria-secrets-connect-github-chip.png" />
</Frame>

<h3 id="1-create-a-github-personal-access-token">
  1. GitHub 개인 액세스 토큰 생성
</h3>

GitHub에서 **Settings** > **Developer settings** > **Personal access tokens**로 이동하여 토큰을 생성하세요.

* **Fine-grained token**(권장): 리소스 소유자를 본인 계정 또는 저장소를 소유한 조직으로 설정하고, **Repository access**를 연결하려는 저장소로 제한한 다음, ARIA가 수행할 작업에 맞게 **Repository permissions**를 설정하세요. 읽기만 하려면 **Contents**를 Read-only로, 커밋도 하려면 Read and write로 설정하고, 풀 리퀘스트를 생성하려면 **Pull requests**를 Read and write로 설정하세요. 읽기 전용 **Metadata** 액세스는 GitHub에서 자동으로 추가됩니다. 토큰을 사용하려면 조직 소유자의 승인이 필요할 수 있습니다.
* **Classic token**: `repo` 범위는 비공개 저장소의 읽기, 커밋, 브랜치, 풀 리퀘스트 권한을 포함하며, `public_repo`는 공개 저장소에 대한 권한을 포함합니다. SAML SSO를 사용하는 조직이라면 **Configure SSO**에서 해당 조직에 대해 토큰을 추가로 승인하세요.

토큰 값은 생성 시점에 한 번만 표시되므로 페이지를 벗어나기 전에 복사해 두세요.

<h3 id="2-save-the-token-as-a-personal-secret-and-grant-aria-access">
  2. 토큰을 개인 시크릿으로 저장하고 ARIA에 액세스 권한 부여
</h3>

[개인 시크릿 만들기](#create-a-personal-secret)의 단계에 따라 토큰을 저장하세요. 이름은 관례적으로 쓰는 `GITHUB_TOKEN`으로 지정하거나 유효한 환경 변수 이름이면 무엇이든 사용할 수 있습니다. 또한 이 시크릿에 대한 ARIA의 액세스가 켜져 있는지 확인하세요.

다음 메시지부터 토큰이 지정한 이름의 환경 변수로 ARIA의 샌드박스에 전달됩니다.

<h3 id="3-approve-network-access-to-github">
  3. GitHub에 대한 네트워크 액세스 승인
</h3>

기본적으로 ARIA가 코드를 실행하는 샌드박스는 Weights & Biases 서비스에는 연결할 수 있지만 그 밖의 대부분의 도메인은 차단하므로, GitHub에 연결하려면 네트워크 액세스 권한도 따로 부여해야 합니다. ARIA는 GitHub에 연결해야 할 때 작업에 필요한 도메인에 대한 액세스를 채팅에서 요청하고, 그 이유를 설명한 뒤 응답을 기다립니다. GitHub API 호출에는 `api.github.com`이, 클론이나 푸시에는 `github.com`이 필요합니다. 승인하려면 **Grant access**를, 거부하려면 **Deny**를 클릭하세요. 부여한 권한은 요청이 발생한 메시지에만 적용되는 것이 아니라 현재 채팅 세션이 끝날 때까지 유지되며, 다른 채팅에는 적용되지 않습니다. 자세한 내용은 [네트워크 액세스 부여](/ko/products/aria/chat#grant-network-access)를 참조하세요.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/wtrJ2D-kpZzEJkTy/products/aria/_media/aria-secrets-network-access.png?fit=max&auto=format&n=wtrJ2D-kpZzEJkTy&q=85&s=4406a25305c421eb133b8a3d3892f748" alt="api.github.com에 대한 네트워크 액세스를 요청하는 ARIA와 Deny 및 Grant access 버튼" width="520" height="619" data-path="products/aria/_media/aria-secrets-network-access.png" />
</Frame>

<h3 id="what-aria-can-do-once-connected">
  연결 후 ARIA가 할 수 있는 작업
</h3>

토큰이 부여되고 네트워크 액세스가 승인되면, ARIA에게 평소에 쓰는 말로 저장소 작업을 요청하세요. 토큰 권한에 따라 ARIA는 다음 작업을 할 수 있습니다.

* 저장소를 클론하거나 특정 파일을 가져오는 등 코드를 조회하고 분석합니다.
* 변경 사항을 브랜치에 커밋하고 푸시합니다.
* 변경 사항이 담긴 풀 리퀘스트를 엽니다.

예를 들어, 저장소를 연결한 후 다음과 같이 요청할 수 있습니다.

```text title="User prompt" theme={"system"}
my-org/training-scripts를 클론하고 train.py에 검증 메트릭을 추가한 다음 pull request를 생성해 줘.
```

<h3 id="troubleshoot-the-connection">
  연결 문제 해결
</h3>

GitHub 요청이 실패하면 ARIA가 GitHub에서 반환한 오류를 알려 주고 해결 방법을 제안합니다. 일반적인 원인은 다음과 같습니다.

* **`401 Bad credentials`**: GitHub에서 토큰을 거부했습니다. 토큰이 잘못 입력되었거나, 만료되었거나, 철회되었을 수 있습니다. 새 토큰을 생성하고 **Personal secrets**에서 시크릿 값을 업데이트한 다음 요청을 다시 보내세요.
* **분명히 존재하는 저장소에서 `404 Not Found`가 반환되는 경우**: 토큰으로 비공개 저장소를 볼 수 없으면 GitHub는 403이 아닌 404를 반환합니다. 토큰이 해당 저장소에 액세스할 수 있는지 확인하세요.
  * 세분화된(fine-grained) 토큰: 리소스 소유자가 저장소를 소유한 계정 또는 조직이어야 하고, **Repository access**에 저장소가 포함되어 있어야 합니다. 또한 조직에서 승인을 요구하는 경우 조직 소유자가 토큰을 승인해야 합니다.
  * 클래식 토큰: `repo` 범위가 있어야 하며, SAML SSO를 사용하는 조직이라면 해당 조직에 대해 토큰이 승인되어 있어야 합니다.
* **커밋하거나 풀 리퀘스트를 열 때 `403 Forbidden`이 반환되는 경우**: 토큰에 저장소 읽기 권한은 있지만 쓰기 권한이 없습니다. **Contents**와 **Pull requests**에 각각 Read and write 권한을 부여하거나, `repo` 범위가 있는 클래식 토큰을 사용하세요.
* **ARIA가 시크릿이 설정되지 않았다고 응답하는 경우**: 해당 시크릿의 **ARIA access** 스위치를 켠 다음 메시지를 다시 보내세요. 마지막 메시지를 보낸 후에 액세스 권한을 부여한 시크릿은 다음 메시지부터 ARIA에서 인식됩니다.
