- CoreWeave 組織内の OIDC プロバイダー (Workload Identity Federation 設定)。これにより、CoreWeave がサンドボックスごとに発行するトークンを、組織内の一時的な認証情報と交換できます。
- バケットのバケットポリシー。フェデレーションされたアイデンティティに、FSS に必要な範囲のアクセス権を付与します。
- 1 回の呼び出しによる、CoreWeave へのバケット登録。
始める前に、使用するバケットを作成してください。このガイドではバケットの作成については説明しません。バケットの作成を参照してください。
FSS によるバケットの使用方法
CoreWeave に静的なアクセスキーを渡すことはありません。代わりに、サンドボックスがスナップショットを取得またはリストアするたびに、次の処理が行われます。- CoreWeave は、そのサンドボックス用の短期有効な OIDC JWT を発行します。このトークンは
https://oidc.cwsandbox.comによって発行され、オーディエンスはcw-credential-vendorであり、組織、ユーザー、バケット、およびサンドボックスによる操作が許可される具体的なオブジェクトを識別するクレームを含みます。 - サンドボックス内で、AWS SDK は Workload Identity Federation を通じてそのトークンをバケットに限定された一時的な S3 認証情報と交換し、自動的にローテーションします。
- バケットポリシーは、そのフェデレーションされたアイデンティティを承認します。アクセスをユーザーごとの接頭辞と、お客様の組織のみに制限します。
必要な値
始める前にこれらを収集してください。fixed とマークされた値はすべての顧客で同じです。残りはお客様固有のものです。組織 ID は、以下のポリシーで出現するすべての場所で同じ値です: プリンシパル ARN 内、各
oidc:[ORG-ID]:... 条件キー内、および org_id 条件が照合される値として。ステップ 1: OIDC プロバイダーを登録する
CoreWeave Cloud Console で、Workload Identity Federation の OIDC ページに移動します:
これにより、CoreWeave がサンドボックス用に発行するトークンを組織が信頼するようになります。この設定がないと、FSS によるバケットの使用方法で説明する認証情報の交換は、バケットポリシーが評価される前に失敗します。
OIDC Workload Identity Federation と Cloud Console の設定の仕組みについては、OIDC で Workload Identity Federation を使用するを参照してください。
ステップ 2: バケットポリシーをアタッチする
次のポリシーをバケットにアタッチします。これは CoreWeave がマネージド FSS バケットに適用するものと同じポリシーで、組織 ID をパラメーターとして指定します。 プレースホルダーを置き換えます。[BUCKET-NAME]をバケット名に置き換えます。[ORG-ID]を、出現するすべての箇所で 6 文字の組織 ID に置き換えます。
各ステートメントの役割
OIDCFederatedScopedAccessは、スナップショット操作の読み取りと書き込みを許可します。対象はユーザーごとの接頭辞${oidc:[ORG-ID]:user_hash}/*に限定されます。各ユーザーのトークンは、そのユーザー自身のハッシュ化された接頭辞配下のキーにのみ解決されるため、組織内のユーザーが互いのスナップショットを上書きすることはできません。bucket_name条件により、別のバケット用に発行されたトークンがここで使用されることを防ぎます。OIDCFederatedRestoreObjectScopeは、リストアで読み取る特定のオブジェクト${oidc:[ORG-ID]:restore_object_key}のみにGetObjectを許可します。これにより、ユーザーごとの書き込み範囲の制限を維持しながら、サンドボックスで組織内の別のユーザーが作成したスナップショットをリストアできます。DenyCrossOrgは、多層防御のためのステートメントです。トークンのorg_idクレームが自分の組織と一致しない場合、すべての操作を拒否するため、漏えいしたトークンや誤って転送されたトークンであっても、バケットにアクセスできません。
条件キーは、CoreWeave AI Object Storage が評価する
oidc:[ORG-ID]:[CLAIM] 形式を使用します。CoreWeave は、リクエスト時にサンドボックスのトークンから ${oidc:[ORG-ID]:user_hash} および ${oidc:[ORG-ID]:restore_object_key} 変数の値を設定します。これらを置き換えないでください。記載どおりに残してください。入力するのは、これらの中の [ORG-ID] のみです。ステップ 3: バケットを CoreWeave に登録する
組織の FSS バケット設定を指定して、CoreWeave がバケットを使用するようにします。これは、組織の設定全体を置き換える単一のPUT リクエストです。
api.cwsandbox.comは標準のサンドボックス API ホストで、データプレーンがサンドボックスの起動などの他の呼び出しに使用するものと同じです。- この呼び出しには、アクセスポリシー ページで付与される
SANDBOX_ADMINIAM action が必要です。バケットを変更すると、以降のすべてのスナップショットの保存先が変わるため、管理者権限が必要です。バケットの変更または元に戻す方法を参照してください。 bucketNameとregionは両方とも必須です。片方だけを送信すると、CWSANDBOX_INVALID_REQUESTで拒否されます。
Example output
ステップ 4: 確認
実際のサンドボックスでスナップショットの作成とリストアを一通り実行します。-
新しいファイルシステムでサンドボックスを起動します。
-
/work配下にファイルを書き込み、サンドボックスを停止して、停止時にスナップショットを作成します。[SANDBOX-ID]を起動したサンドボックスの ID に置き換えてください。応答にはfileSystemSnapshotIdが返されます。 -
新しいサンドボックスにリストアします。
[SNAPSHOT-ID]を前のステップで返されたfileSystemSnapshotIdに置き換えてください。
GetFileSystemSnapshot と ListFileSystemSnapshots が返す各 FileSystemSnapshot には、スナップショットの保存先バケットを示す objectBucket フィールドが含まれています。
バケットを変更する、または元に戻す
ステップ 3 のPUT は設定全体を置き換えるため、設定の変更や取り消しにも使用します。
- CoreWeave による管理に戻す: 空の本文 (
{}) でPUTを実行します。CoreWeave が自動的にバケットの管理を再開します。 - 別のバケットに移行する: 新しい
bucketNameとregionでPUTを実行します。
Troubleshooting
サンドボックスに適用されているポリシーで外向き通信が許可リストのみに制限されている場合、CoreWeave の認証情報エンドポイント (
https://api.coreweave.com) に到達できることを確認してください。そうしないと認証情報の取得がタイムアウトし、最初の S3 操作が失敗します。
リファレンス
以下のセクションでは、バケット名のルール、ポリシーが許可する S3 の action、およびポリシーが参照するトークンのクレームについて説明します。バケット名のルール
ステップ 3 でバケットを登録すると、CoreWeave は標準のオブジェクトストレージのルールに従ってバケット名を検証します。Bucket naming rules
Bucket naming rules
Bucket names must be globally unique and adhere to the following rules:
- Length: 3 to 63 characters.
- Characters: Only lowercase letters (
a-z), numbers (0-9), and hyphens (-). No dots, uppercase letters, underscores, spaces, or other special characters. - Start and end: Must begin and end with a letter or number. Cannot start or end with a hyphen (
-). - Prohibited patterns: Cannot start with
xn--. - Reserved: Must not begin with
cw-,vip-, orlog-stitcher-ch-. Must not be the exact nameint. CoreWeave reserves these for internal use.
region は CoreWeave Availability Zone (例:US-EAST-01A) であり、バケットが存在するゾーンと一致する必要があります。ゾーンの全一覧については、すべてのアベイラビリティゾーンを参照してください。
許可される S3 action
このポリシーは、FSS に必要な action のみを許可します:s3:GetObject、s3:PutObject、s3:CreateMultipartUpload、s3:UploadPart、s3:CompleteMultipartUpload、s3:AbortMultipartUpload、s3:ListMultipartUploadParts。書き込みにはマルチパートアップロードを使用し、リストアには GetObject を使用します。
ポリシーで使用するトークンクレーム
CoreWeave は、サンドボックスごとの各トークンにこれらのクレームを付与します。バケットポリシーの条件では、これらをoidc:[ORG-ID]:[CLAIM] として参照します。
関連リソース
- ファイルシステムスナップショット: スナップショット、リストア、フォークの仕組み。
- OIDC で Workload Identity Federation を使用する: OIDC フェデレーションと Cloud Console の設定の仕組み。
- バケットを作成する: このガイドで作成済みと想定しているバケットを作成します。
- すべてのアベイラビリティゾーン: バケットのリージョンとして使用するゾーン。
- API アクセストークンを管理する: ステップ 3 で使用するトークンを作成します。
- IAM アクセスポリシー: ステップ 3 に必須の
SANDBOX_ADMINaction を付与します。