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

# 샌드박스에 AI 객체 저장소 액세스 권한 부여

> 샌드박스가 기본 제공 OIDC 토큰을 임시 AI 객체 저장소 사용자 인증 정보로 교환할 수 있도록 설정합니다

모든 CoreWeave 샌드박스에는 내장 OIDC 토큰을 포함할 수 있으며, 이 토큰을 [워크로드 아이덴티티 제휴(WIF)](/products/storage/object-storage/auth-access/workload-identity-federation/about)를 통해 임시 CoreWeave AI 객체 저장소 사용자 인증 정보로 교환합니다. 샌드박스 컨트롤 플레인은 토큰을 발급하여 컨테이너에 마운트하고 AWS SDK가 읽는 환경 변수를 설정하므로, 장기 액세스 키를 주입하지 않아도 샌드박스에서 버킷을 읽고 쓸 수 있습니다.

이 페이지는 조직별로 신뢰 관계를 한 번 설정하는 관리자와, 이후 개별 샌드박스에서 객체 저장소 액세스를 요청하는 연구자를 위한 문서입니다. 설정을 마치면 샌드박스에서 자동으로 만료되는 사용자 인증 정보를 사용하여 버킷에 대해 `aws s3` 명령어나 Boto3 코드를 실행할 수 있습니다.

<h2 id="how-it-works">
  작동 방식
</h2>

샌드박스 게이트웨이는 고정된 CoreWeave 발급자 `https://oidc.cwsandbox.com`를 사용해 각 샌드박스에 JSON Web Token(JWT)을 발급합니다. AI Object Storage는 조직의 워크로드 페더레이션 설정을 기준으로 이 토큰을 검증하고, 토큰의 `iss` 및 `sub` 클레임에서 역할 ID를 도출한 다음, 액세스 정책에 따라 범위가 제한된 임시 자격 증명을 반환합니다.

다음 세 가지 설정이 서로 맞아야 합니다.

| 설정 | 위치 | 역할 |
| - | - | - |
| OIDC 워크로드 페더레이션 설정 | Cloud Console의 **Organization** > **IAM** | AI Object Storage가 `https://oidc.cwsandbox.com`에서 발급한 토큰을 신뢰하도록 합니다. **Config ID**를 생성합니다. |
| 조직 액세스 정책 | AI Object Storage | 도출된 샌드박스 역할에 토큰 교환 권한과 버킷 작업 권한을 부여합니다. |
| 샌드박스 WIF 설정 | 샌드박스 컨트롤 플레인 | 샌드박스 컨트롤 플레인이 Config ID를 참조하도록 지정하고, 샌드박스가 요청할 수 있는 버킷과 권한 수준을 제한합니다. |

도출된 역할 ID는 `role/https://oidc.cwsandbox.com:user:[USER-ID]` 형식이며, 여기서 `[USER-ID]`는 API 액세스 토큰으로 샌드박스를 시작한 호출자의 CoreWeave 사용자 ID입니다. 주체(subject)가 사용자마다 다르므로, 액세스 정책에서는 각 사용자의 역할을 일일이 나열하거나 끝에 와일드카드를 붙여 해당 발급자의 모든 역할과 일치시켜야 합니다. 자세한 내용은 [샌드박스 역할에 권한 부여](#step-2-grant-permissions-to-the-sandbox-role)를 참조하세요.

샌드박스 내부에서는 자격 증명을 가져오는 프로세스를 따로 실행할 필요가 없습니다. AWS SDK의 컨테이너 자격 증명 공급자가 마운트된 토큰을 읽어 CoreWeave 자격 증명 엔드포인트를 호출하고, 자격 증명이 만료되기 전에 자동으로 갱신합니다.

<h2 id="before-you-begin">
  시작하기 전에
</h2>

Admin이 수행하는 단계에는 다음이 필요합니다.

* AI Object Storage가 활성화된 CoreWeave 조직과 하나 이상의 버킷. 버킷을 생성하려면 [버킷 생성](/products/storage/object-storage/buckets/create-bucket)을 참조하세요.
* 조직의 Admin 권한: **IAM Admin** 및 **Object Storage Admin** 역할 또는 이에 상응하는 기존 액세스 권한.
* 샌드박스 WIF 설정을 지정할 수 있는 ID 및 액세스 관리(IAM)의 `SANDBOX_ADMIN` 액션. Cloud Console의 [Access Policies](https://console.coreweave.com/organization/iam/access-policies) 페이지에서 이 권한을 부여하세요.
* Cloud Console의 [Settings](https://console.coreweave.com/account/settings) 페이지에 표시되는 CoreWeave 조직 ID.
* CoreWeave API 액세스 토큰. [Tokens](https://console.coreweave.com/tokens) 페이지에서 생성하고 **Token Secret** 값을 복사하세요. 자세한 내용은 [API 액세스 토큰 관리](/security/authn-authz/manage-api-access-tokens)를 참조하세요.

이 페이지의 `curl` 예시에서 토큰을 읽을 수 있도록 토큰을 환경 변수로 내보내세요. `[API-ACCESS-TOKEN]`을 CoreWeave API 액세스 토큰으로 바꾸세요.

```bash theme={"system"}
export TOKEN="[API-ACCESS-TOKEN]"
```

연구자 단계를 진행하려면 정상적으로 작동하는 샌드박스 설정이 필요합니다. 아직 설정하지 않았다면 먼저 [시작하기](/ko/products/sandboxes/get-started)를 따르세요.

<h2 id="step-1-create-an-oidc-workload-federation-config">
  1단계: OIDC 워크로드 페더레이션 설정 만들기
</h2>

AI Object Storage가 샌드박스 토큰을 허용하도록 조직에 샌드박스 issuer를 등록하세요.

1. Cloud Console에서 [Workload Federation](https://console.coreweave.com/organization/iam/workload-federation/oidc) 페이지로 이동하세요.

2. **Create OIDC configuration**을 클릭하세요.

3. 다음 값을 입력하세요.

   * **Name**: 이 설정을 식별하는 이름입니다(예: `coreweave-sandboxes`).
   * **Issuer URL**: `https://oidc.cwsandbox.com`
   * **Client ID (Audience)**: `https://oidc.cwsandbox.com`
   * **Description** (선택): 이 설정에 대한 설명입니다.

4. **Create**를 클릭하세요.

<Warning>
  issuer 호스트 이름에는 하이픈이 없습니다. 샌드박스 토큰에는 issuer claim `https://oidc.cwsandbox.com`이 포함되며, 토큰 검증 시 이 값과 정확히 일치하는지 비교합니다. 따라서 `https://oidc.cw-sandbox.com`으로 만든 설정은 절대 일치하지 않습니다.
</Warning>

설정이 생성되면 Workload Federation 페이지에 해당 설정의 **Config ID**가 표시됩니다. [3단계](#step-3-register-the-wif-configuration-with-the-sandbox-control-plane)에서 필요하므로 이 값을 복사해 두세요.

이제 AI Object Storage에서 샌드박스 토큰을 검증할 수 있지만, 이를 통해 부여되는 역할에는 아직 권한이 없습니다.

<h2 id="step-2-grant-permissions-to-the-sandbox-role">
  2단계: 샌드박스 역할에 권한 부여
</h2>

조직 액세스 정책은 샌드박스가 받은 자격 증명으로 수행할 수 있는 작업을 결정합니다. 두 가지 권한 부여가 필요하며, 토큰 교환 액션은 전역으로 적용되는 반면 S3 액션은 버킷으로 범위가 제한되므로 별도의 구문으로 작성해야 합니다.

다음 정책은 토큰 교환 권한을 부여합니다. `cwobject:CreateAccessKeyOIDC` 액션은 모든 리소스에 적용되므로 해당 구문은 `"resources": ["*"]`를 사용합니다. `[USER-ID]`를 샌드박스를 시작하는 API 액세스 토큰의 소유자인 CoreWeave 사용자의 ID로 바꾸세요:

```json highlight={9-14} theme={"system"}
{
  "policy": {
    "version": "v1alpha1",
    "name": "allow-sandbox-oidc-key-creation",
    "statements": [
      {
        "name": "allow-create-access-key-from-sandbox-oidc",
        "effect": "Allow",
        "actions": [
          "cwobject:CreateAccessKeyOIDC"
        ],
        "resources": ["*"],
        "principals": [
          "role/https://oidc.cwsandbox.com:user:[USER-ID]"
        ]
      }
    ]
  }
}
```

각 주체를 일일이 나열하지 않고 조직의 모든 사용자를 포함할 수 있도록, 보안 주체는 끝에 와일드카드를 허용합니다: `role/https://oidc.cwsandbox.com:*`. 발급자 부분은 여전히 정확히 일치해야 하므로, 이 권한 부여는 샌드박스 토큰에만 적용되며 페더레이션한 다른 ID 공급자에는 적용되지 않습니다.

다음으로, 자격 증명에 버킷 작업 권한을 부여하세요. `[BUCKET-NAME]`을 샌드박스에서 사용하는 버킷으로 바꾸세요:

```json highlight={16-19} theme={"system"}
{
  "policy": {
    "version": "v1alpha1",
    "name": "sandbox-read-write-bucket",
    "statements": [
      {
        "name": "allow-sandbox-rw-bucket",
        "effect": "Allow",
        "actions": [
          "s3:Get*",
          "s3:List*",
          "s3:Put*",
          "s3:DeleteObject"
        ],
        "resources": [
          "[BUCKET-NAME]",
          "[BUCKET-NAME]/*"
        ],
        "principals": [
          "role/https://oidc.cwsandbox.com:*"
        ]
      }
    ]
  }
}
```

두 번째 정책이 없으면 토큰 교환은 성공하지만 모든 버킷 오퍼레이션이 거부됩니다. 전체 스키마는 [조직 액세스 정책](/products/storage/object-storage/auth-access/organization-policies/about)을 참조하세요.

두 구문이 모두 설정되어 있으면 샌드박스 역할은 토큰을 자격 증명으로 교환하고 나열한 버킷에서 작업을 수행할 수 있습니다.

대부분의 배포에는 조직 액세스 정책만으로 충분합니다. 조직 간 액세스가 필요하거나 토큰의 클레임을 사용하여 액세스를 제한하려는 경우에만 [버킷 액세스 정책](/products/storage/object-storage/auth-access/bucket-access/bucket-policies)을 추가하세요. 버킷 정책에서는 동일한 보안 주체가 전체 ARN 형식인 `arn:aws:iam::[ORG-ID]:role/https://oidc.cwsandbox.com:*`으로 지정되며, 클레임은 `oidc:[ORG-ID]:[CLAIM]`이라는 조건 키로 참조됩니다. 샌드박스 토큰에 포함된 클레임은 [토큰 클레임](#token-claims)을 참조하세요.

<h2 id="step-3-register-the-wif-configuration-with-the-sandbox-control-plane">
  3단계: 샌드박스 control plane에 WIF 설정 등록하기
</h2>

샌드박스 control plane에 토큰 발급 시 기준으로 삼을 워크로드 페더레이션 설정을 지정하고, 조직 내 샌드박스가 요청할 수 있는 권한의 상한을 설정하세요. 설정은 조직당 하나만 존재하며, 이 요청은 멱등성 있는 upsert로 처리됩니다.

`[WIF-CONFIG-ID]`는 [1단계](#step-1-create-an-oidc-workload-federation-config)에서 확인한 Config ID로, `[BUCKET-NAME]`은 허용하려는 각 버킷 이름으로 바꾸세요.

```bash title="Set the sandbox WIF configuration" theme={"system"}
curl -X PUT "https://api.cwsandbox.com/v1beta2/object-storage/wif-config" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "wifConfigId": "[WIF-CONFIG-ID]",
    "enabled": true,
    "allowedBuckets": ["[BUCKET-NAME]"],
    "maxPermission": "OBJECT_STORAGE_PERMISSION_READ_WRITE"
  }'
```

각 필드는 다음과 같이 동작합니다:

| 필드 | 필수 | 설명 |
| - | - | - |
| `wifConfigId` | Yes | Cloud Console의 워크로드 연합 설정에 있는 설정 ID입니다. |
| `maxPermission` | Yes | 샌드박스가 요청할 수 있는 최대 액세스 수준: `OBJECT_STORAGE_PERMISSION_READ` 또는 `OBJECT_STORAGE_PERMISSION_READ_WRITE`. |
| `enabled` | 아니요 | 기본값은 `true`입니다. 설정을 삭제하지 않고 객체 저장소 액세스를 끄려면 `false`로 설정하세요. |
| `allowedBuckets` | 아니요 | 샌드박스가 요청할 수 있는 버킷 이름입니다. 목록이 비어 있으면 모든 버킷을 허용합니다. |

조직은 인증된 호출자에 따라 결정되므로 요청 본문에는 조직 필드가 없으며, 호출자는 자신의 조직 설정만 관리할 수 있습니다.

설정이 저장되었는지 확인하세요:

```bash title="Get the sandbox WIF configuration" theme={"system"}
curl "https://api.cwsandbox.com/v1beta2/object-storage/wif-config" \
  -H "Authorization: Bearer $TOKEN"
```

새 객체 저장소 자격 증명 발급을 중단하려면 설정을 삭제하세요:

```bash title="Delete the sandbox WIF configuration" theme={"system"}
curl -X DELETE "https://api.cwsandbox.com/v1beta2/object-storage/wif-config" \
  -H "Authorization: Bearer $TOKEN"
```

설정을 삭제하면 객체 저장소 액세스를 요청하는 새 샌드박스 요청이 거부됩니다. 이미 실행 중인 샌드박스는 토큰이 만료될 때까지 계속 작동합니다.

필드별 레퍼런스는 컨트롤 플레인 API 레퍼런스의 [객체 저장소 WIF 설정 지정](/ko/products/sandboxes/reference/control-plane-api)을 참조하세요.

<h2 id="step-4-request-object-storage-access-when-you-start-a-sandbox">
  4단계: 샌드박스를 시작할 때 객체 저장소 액세스 요청
</h2>

1\~3단계는 조직의 Admin이 한 번만 수행하는 설정입니다. 나머지 단계는 연구자가 객체 저장소가 필요한 각 샌드박스에 대해 수행합니다.

객체 저장소 액세스는 샌드박스별로 명시적으로 활성화해야 합니다. 시작 요청에 `objectStorageAccess`를 추가하고, 샌드박스에 필요한 버킷과 권한 수준을 지정하세요. `[CONTAINER-IMAGE]`를 샌드박스에서 실행할 이미지로 바꾸세요:

```bash title="Start a sandbox with object storage access" highlight={7-12} theme={"system"}
curl -X POST "https://api.cwsandbox.com/v1beta2/sandboxes" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "containerImage": "[CONTAINER-IMAGE]",
    "command": "sleep",
    "args": ["3600"],
    "objectStorageAccess": {
      "buckets": ["[BUCKET-NAME]"],
      "permission": "OBJECT_STORAGE_PERMISSION_READ_WRITE"
    }
  }'
```

두 필드 모두 [3단계](#step-3-register-the-wif-configuration-with-the-sandbox-control-plane)의 조직 설정에 따라 제한됩니다. `buckets` 목록은 `allowedBuckets`의 부분 집합이어야 하며, `permission`은 `maxPermission`을 초과할 수 없습니다. 조직에서 허용하는 범위를 초과하는 요청은 거부되며, 조직에 활성 WIF 설정이 없는 상태에서 이루어진 요청도 거부됩니다.

최대 허용 범위보다 좁은 범위를 요청하는 것이 좋습니다. 트레이닝 데이터를 읽기만 하는 샌드박스는 조직의 최대 허용 권한이 읽기-쓰기인 경우에도 `OBJECT_STORAGE_PERMISSION_READ`를 요청해야 합니다.

<h2 id="step-5-use-the-credentials-inside-the-sandbox">
  5단계: 샌드박스 내부에서 자격 증명 사용하기
</h2>

샌드박스가 `objectStorageAccess`로 시작되면 컨트롤 플레인이 OIDC 토큰을 마운트하고, AWS SDK가 [컨테이너 자격 증명](https://docs.aws.amazon.com/sdkref/latest/guide/feature-container-credentials.html)에 사용하는 환경 변수를 설정합니다.

| 변수 | 값 |
| - | - |
| `AWS_CONTAINER_CREDENTIALS_FULL_URI` | `https://api.coreweave.com/v1/cwobject/temporary-credentials/oidc/[ORG-ID]` |
| `AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE` | `/var/run/secrets/sandbox/storage-token/osa-token` |
| `AWS_ENDPOINT_URL_S3` | AI Object Storage 엔드포인트(예: `https://cwobject.com`) |

토큰 자체는 `/var/run/secrets/sandbox/storage-token/osa-token`에 있는 읽기 전용 파일입니다. 이 토큰을 직접 읽을 필요는 없으며, 샌드박스 외부로 복사하거나 다른 워크로드에 전달해서는 안 됩니다.

자격 증명 교환은 클라이언트 라이브러리가 처리합니다. 버킷의 리전을 설정한 다음 원하는 S3 호환 클라이언트를 사용하세요. `[AVAILABILITY-ZONE]`을 버킷이 있는 가용 영역(예: `US-EAST-04A`)으로 바꾸세요.

```bash title="List objects from inside a sandbox" theme={"system"}
export AWS_REGION="[AVAILABILITY-ZONE]"

aws configure set s3.addressing_style virtual

aws s3 ls s3://[BUCKET-NAME]/
```

AI Object Storage에는 가상 호스트 방식의 주소 지정이 필요합니다. 경로 방식의 요청은 `PathStyleRequestNotAllowed` 오류로 실패합니다.

Boto3는 동일한 환경 변수를 사용하므로 자격 증명을 명시적으로 지정할 필요가 없습니다. 다음 예시는 샌드박스 환경에서 엔드포인트와 리전을 조회하여 버킷에 있는 객체 목록을 표시합니다.

```python title="list_objects.py" theme={"system"}
import os

import boto3
from botocore.client import Config

boto_config = Config(
    region_name=os.environ['AWS_REGION'],
    s3={'addressing_style': 'virtual'}
)

s3 = boto3.client(
    's3',
    endpoint_url=os.environ['AWS_ENDPOINT_URL_S3'],
    config=boto_config
)

response = s3.list_objects_v2(Bucket=os.environ['BUCKET_NAME'])

for item in response.get('Contents', []):
    print(item['Key'], item['Size'])
```

`BUCKET_NAME`을 액세스 권한을 부여한 버킷으로 설정하고 샌드박스 내에서 실행하세요:

```bash theme={"system"}
export BUCKET_NAME="[BUCKET-NAME]"

python list_objects.py
```

성공 시 출력에는 각 객체 키와 바이트 단위의 크기가 목록으로 표시됩니다:

```text title="Example output" theme={"system"}
datasets/train/shard-00000.tar 268435456
datasets/train/shard-00001.tar 268435456
datasets/val/shard-00000.tar 67108864
```

<Note>
  자격 증명 교환에는 루프백이 아닌 호스트에 대한 컨테이너 자격 증명을 지원하는 SDK가 필요합니다. `awscli` 2.33.2 이상 또는 `boto3` 1.42.5 이상을 사용하세요. 이전 버전에서는 `Unsupported host 'api.coreweave.com'` 오류가 발생합니다. 이러한 버전을 포함하여 샌드박스 컨테이너 이미지를 구축하세요.
</Note>

<h2 id="token-lifetimes">
  Token lifetimes
</h2>

샌드박스 OIDC token과 이 토큰으로 얻은 임시 credentials는 서로 다른 일정으로 만료됩니다:

* **Sandbox OIDC token**: 기본적으로 1시간이며 최대 12시간까지 설정할 수 있습니다. control plane은 샌드박스가 시작될 때 이를 발급합니다.
* **Temporary AI Object Storage credentials**: token으로부터 필요 시 발급됩니다. exchange response는 `Expiration` timestamp를 포함하며, AWS SDK는 코드의 개입 없이 해당 시간 전에 credentials를 갱신합니다.

OIDC token보다 오래 실행되는 샌드박스는 더 이상 이를 교환할 수 없으며, object 저장소 오퍼레이션은 권한 오류로 실패합니다. 장시간 실행되는 샌드박스의 경우 start request에서 `maxLifetimeSeconds`를 설정하여 token이 샌드박스의 전체 lifetime을 커버하도록 하십시오.

<h2 id="token-claims">
  Token claims
</h2>

샌드박스 object storage 토큰은 다음 claim을 포함합니다. bucket policy 조건에서 `oidc:[ORG-ID]:[CLAIM]`으로 참조하세요.

| Claim | 설명 |
| - | - |
| `iss` | 항상 `https://oidc.cwsandbox.com`입니다. |
| `sub` | `user:[USER-ID]`, 샌드박스를 시작한 CoreWeave 사용자입니다. `iss`와 결합하여 role identity를 도출합니다. |
| `aud` | workload federation configuration에 설정된 audience입니다. |
| `org_id` | 샌드박스를 소유한 CoreWeave 조직입니다. |
| `wif_config_id` | 토큰이 발급된 workload federation Config ID입니다. |
| `buckets` | `objectStorageAccess`에서 요청된 버킷입니다. |
| `permission` | `objectStorageAccess`에서 요청된 권한 수준입니다. |
| `exp` | Unix timestamp로 표시된 만료 시간입니다. |

<h2 id="troubleshooting">
  문제 해결
</h2>

다음 섹션에서는 샌드박스 객체 저장소 액세스를 설정하거나 사용할 때 가장 흔히 볼 수 있는 실패 사례와 각 경우에 확인해야 할 사항을 설명합니다.

<h3 id="the-start-request-is-rejected">
  start request가 거부됨
</h3>

`objectStorageAccess`가 포함된 start request가 실패하면 다음을 확인하세요:

* 조직에 `enabled`가 `true`로 설정된 WIF 설정이 있어야 합니다. [3단계](#step-3-register-the-wif-configuration-with-the-sandbox-control-plane)의 조회 요청으로 조회하세요.
* 요청의 모든 버킷이 `allowedBuckets`에 있거나, `allowedBuckets`가 비어 있어야 합니다.
* 요청된 `permission`이 `maxPermission`을 초과하지 않아야 합니다.

<h3 id="credential-exchange-returns-permission-denied">
  자격 증명 교환 시 Permission Denied 반환
</h3>

첫 번째 S3 오퍼레이션이 권한 오류로 실패하면 교환 자체가 거부된 것입니다. 다음 사항을 확인하세요.

* 조직 액세스 정책이 별도의 statement에서 샌드박스 role에 `"resources": ["*"]`에 대한 `cwobject:CreateAccessKeyOIDC` 권한을 부여하는지 확인하세요.
* 정책 principal이 subject의 `user:` 접두사를 포함하여 파생된 role과 정확히 일치하는지 확인하세요. principal은 `role/https://oidc.cwsandbox.com:[USER-ID]`가 아니라 `role/https://oidc.cwsandbox.com:user:[USER-ID]`여야 합니다.
* Cloud Console의 workload federation 설정이 활성 상태이고 issuer URL이 하이픈 없이 `https://oidc.cwsandbox.com`으로 되어 있는지 확인하세요.
* 샌드박스 OIDC token이 만료되지 않았는지 확인하세요. 샌드박스를 다시 시작하면 새 token이 발급됩니다.

<h3 id="credential-exchange-succeeds-but-s3-operations-return-accessdenied">
  Credential exchange는 성공했지만 S3 오퍼레이션이 AccessDenied를 반환합니다
</h3>

교환이 성공했으며 결과로 생성된 credentials에 버킷 권한이 없습니다. 조직 액세스 정책이 샌드박스 role에 단축 형식 버킷 리소스(`[BUCKET-NAME]` 및 `[BUCKET-NAME]/*`)에 필요한 `s3:` 액션을 부여하는지 확인하세요. 버킷 액세스 정책도 적용되는 경우 `Deny` 문이 있는지 확인하세요. `Deny` 문은 `Allow`를 재정의합니다.

<h3 id="the-credential-request-times-out">
  사용자 인증 정보 요청 시간 초과
</h3>

allowlist-only egress가 설정된 정책이 적용되는 샌드박스는 `https://api.coreweave.com`에 연결할 수 있어야 합니다. 이 경로가 없으면 사용자 인증 정보 가져오기 시간이 초과되어 첫 번째 S3 오퍼레이션이 실패합니다. 정책의 egress allowlist에서 해당 호스트에 대한 액세스를 허용하세요. 자세한 내용은 [샌드박스 정책 설정](/ko/products/sandboxes/profiles/configure)을 참조하세요.

<h3 id="the-workload-creates-a-large-number-of-access-keys">
  워크로드가 많은 액세스 키를 생성하는 경우
</h3>

교환할 때마다 수명이 짧은 액세스 키가 생성됩니다. 작업 항목마다 새 클라이언트를 생성하는 대신, SDK의 자격 증명 공급자가 프로세스가 실행되는 동안 자격 증명을 캐시하고 갱신하도록 하세요. 요청마다 키를 발급하면 이점 없이 많은 키가 생성됩니다.

<h2 id="related-pages">
  관련 페이지
</h2>

* [Workload Identity Federation for AI Object Storage](/products/storage/object-storage/auth-access/workload-identity-federation/about): CoreWeave 전반에서 WIF가 작동하는 방식.
* [Use Workload Identity Federation with OIDC](/products/storage/object-storage/auth-access/workload-identity-federation/use-oidc-tokens): 샌드박스 이외의 ID 공급자를 위한 일반 OIDC 페더레이션 가이드.
* [Organization access policies](/products/storage/object-storage/auth-access/organization-policies/about): [2단계](#step-2-grant-permissions-to-the-sandbox-role)에서 사용되는 정책 스키마.
* [Sandboxes architecture](/ko/products/sandboxes/architecture): 샌드박스 요청 경로에서 게이트웨이와 러너가 위치하는 곳.
