- Un fournisseur OIDC (configuration de Fédération d’identités de charges de travail) dans votre organisation CoreWeave, afin que les jetons émis par CoreWeave pour chaque sandbox puissent être échangés contre des identifiants d’authentification temporaires dans votre organisation.
- Une stratégie de bucket sur votre bucket, qui accorde à cette identité fédérée l’accès limité nécessaire à FSS.
- L’enregistrement du bucket auprès de CoreWeave, en un seul appel d’API.
Avant de commencer, créez le bucket que vous souhaitez utiliser. Ce guide ne traite pas de la création de buckets. Voir Créer des buckets.
Comment FSS utilise votre bucket
Vous ne fournissez jamais de clé d’accès statique à CoreWeave. À la place, chaque fois qu’une sandbox crée ou restaure un instantané :- CoreWeave génère un JWT OIDC de courte durée pour cette sandbox. Le jeton est émis par
https://oidc.cwsandbox.com, a pour audiencecw-credential-vendoret contient des claims qui identifient l’organisation, l’utilisateur, le bucket et l’objet précis auquel la sandbox est autorisée à accéder. - Dans la sandbox, l’AWS SDK échange ce jeton, via la Fédération d’identités de charges de travail, contre des identifiants d’authentification S3 temporaires limités à votre bucket, puis les fait pivoter automatiquement.
- Votre stratégie de bucket autorise cette identité fédérée. Elle restreint l’accès à un préfixe propre à chaque utilisateur et à votre seule organisation.
Valeurs nécessaires
Rassemblez ces valeurs avant de commencer. Les valeurs marquées fixe sont identiques pour tous les clients. Les autres vous sont propres.L’identifiant de votre organisation est le même partout où il apparaît dans la politique ci-dessous : dans l’ARN du principal, dans chaque clé de condition
oidc:[ORG-ID]:... et comme valeur de référence de la condition org_id.Étape 1 : Enregistrer le fournisseur OIDC
Dans la Cloud Console CoreWeave, accédez à la page OIDC de la fédération d’identités de charges de travail :
Cette configuration indique à votre organisation de faire confiance aux jetons que CoreWeave émet pour vos sandboxes. Sans elle, l’échange d’identifiants d’authentification décrit dans Comment FSS utilise votre bucket échoue avant même qu’une stratégie de bucket ne soit évaluée.
Pour en savoir plus sur le fonctionnement de la Fédération d’identités de charges de travail OIDC et de la configuration dans la Cloud Console, consultez Utiliser la Fédération d’identités de charges de travail avec OIDC.
Étape 2 : joindre la stratégie de bucket
Joignez la stratégie suivante à votre bucket. Il s’agit de la même stratégie que celle appliquée par CoreWeave aux buckets FSS managés, paramétrée avec l’identifiant de votre organisation. Remplacez les valeurs de substitution :[BUCKET-NAME]par le nom de votre bucket.[ORG-ID]par l’identifiant à 6 caractères de votre organisation, à chaque occurrence.
Rôle de chaque instruction
OIDCFederatedScopedAccessaccorde l’accès en lecture et en écriture nécessaire aux opérations sur les instantanés. Elle est limitée à un préfixe propre à chaque utilisateur,${oidc:[ORG-ID]:user_hash}/*. Le jeton d’un utilisateur donné ne se résout qu’en clés situées sous son propre préfixe haché, de sorte que les utilisateurs de votre organisation ne peuvent pas écraser les instantanés les uns des autres. La conditionbucket_nameempêche qu’un jeton émis pour un autre bucket soit utilisé ici.OIDCFederatedRestoreObjectScopeest une autorisationGetObjectrestreinte à l’objet précis lu lors d’une restauration,${oidc:[ORG-ID]:restore_object_key}. Elle permet à une sandbox de restaurer un instantané créé par un autre utilisateur de votre organisation, tout en préservant la limitation des écritures par utilisateur.DenyCrossOrgassure une défense en profondeur. Elle refuse tout accès si la revendicationorg_iddu jeton ne correspond pas à votre organisation, de sorte que même un jeton divulgué ou mal acheminé ne peut pas accéder à votre bucket.
Les clés de condition utilisent la forme
oidc:[ORG-ID]:[CLAIM] évaluée par CoreWeave AI Object Storage. CoreWeave renseigne les variables ${oidc:[ORG-ID]:user_hash} et ${oidc:[ORG-ID]:restore_object_key} à partir du jeton de la sandbox au moment de la requête. Ne les remplacez pas : laissez-les telles quelles. Seul le [ORG-ID] qu’elles contiennent est à renseigner par vos soins.Étape 3 : Enregistrer le bucket auprès de CoreWeave
Indiquez à CoreWeave d’utiliser votre bucket en définissant la configuration du bucket FSS de votre organisation. Une seule requêtePUT suffit ; elle remplace intégralement la configuration de l’organisation.
api.cwsandbox.comest l’hôte standard de l’API des sandboxes, celui-là même qu’utilise le plan de données pour d’autres appels, comme le démarrage d’une sandbox.- Cet appel requiert l’action IAM
SANDBOX_ADMIN, accordée sur la page Access Policies. Il est réservé aux administrateurs, car modifier le bucket détermine l’emplacement où seront stockés tous les futurs instantanés. Voir Modifier ou rétablir votre bucket. bucketNameetregiondoivent être fournis ensemble. Toute requête contenant l’un sans l’autre est rejetée avec l’erreurCWSANDBOX_INVALID_REQUEST.
Example output
Étape 4 : Vérifier
Effectuez un cycle complet d’instantané et de restauration sur un sandbox réel :-
Démarrez un sandbox avec un nouveau système de fichiers :
-
Écrivez un fichier dans
/work, puis arrêtez le sandbox en créant un instantané à l’arrêt. Remplacez[SANDBOX-ID]par l’ID du sandbox que vous avez démarré. La réponse renvoie unfileSystemSnapshotId: -
Restaurez-le dans un nouveau sandbox. Remplacez
[SNAPSHOT-ID]par lefileSystemSnapshotIdrenvoyé à l’étape précédente :
FileSystemSnapshot renvoyé par GetFileSystemSnapshot et ListFileSystemSnapshots comprend un champ objectBucket qui indique le bucket dans lequel l’instantané a été stocké.
Modifier ou rétablir votre bucket
LePUT de l’étape 3 effectue un remplacement complet : c’est donc aussi par ce moyen que vous modifiez ou annulez votre configuration.
- Revenir à un bucket managé par CoreWeave : envoyez un corps vide (
{}) avecPUT. CoreWeave reprend alors automatiquement la gestion d’un bucket pour vous. - Passer à un autre bucket : envoyez le nouveau
bucketNameet la nouvelleregionavecPUT.
Résolution des problèmes
Si une sandbox est soumise à une politique qui limite le trafic sortant à une liste d’autorisation, assurez-vous qu’elle peut joindre le point de terminaison d’identifiants d’authentification de CoreWeave (
https://api.coreweave.com). Sinon, la récupération des identifiants d’authentification expire et la première opération S3 échoue.
Référence
Les sections suivantes décrivent les règles relatives au nom du bucket, les actions S3 autorisées par la politique et les revendications du jeton auxquelles la politique fait référence.Règles de nommage des buckets
Lorsque vous enregistrez un bucket à l’étape 3, CoreWeave vérifie que son nom respecte les règles standard du stockage d’objets.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 désigne une CoreWeave Availability Zone, par exemple US-EAST-01A, et doit correspondre à la zone où se trouve votre bucket. Pour la liste complète des zones, voir Toutes les Availability Zones.
Actions S3 accordées
La politique accorde exactement les actions dont FSS a besoin, et rien de plus :s3:GetObject, s3:PutObject, s3:CreateMultipartUpload, s3:UploadPart, s3:CompleteMultipartUpload, s3:AbortMultipartUpload et s3:ListMultipartUploadParts. Les écritures s’effectuent par chargement en plusieurs parties, et la restauration s’appuie sur GetObject.
Revendications du jeton utilisées par la stratégie
CoreWeave inscrit ces revendications dans chaque jeton propre à une sandbox. Les conditions de la stratégie de bucket y font référence sous la formeoidc:[ORG-ID]:[CLAIM].
Ressources associées
- Instantanés du système de fichiers : fonctionnement des instantanés, de la restauration et de la création de branches.
- Utiliser la fédération d’identités de charges de travail avec OIDC : fonctionnement de la fédération OIDC et de la configuration dans la Cloud Console.
- Créer des buckets : créez le bucket dont ce guide suppose l’existence.
- Toutes les Availability Zones : les zones à utiliser comme région pour votre bucket.
- Gérer les jetons d’accès à l’API : créez le jeton utilisé à l’étape 3.
- Politiques d’accès IAM : accordez l’action
SANDBOX_ADMINrequise à l’étape 3.