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

# Bring Your Own Bucket (BYOB)

> Stockez les artefacts W&B et les données dans vos propres buckets de stockage cloud grâce à la fonctionnalité Bring Your Own Bucket (BYOB).

<Note>
  **Ce guide s'applique à tous les types de déploiement W\&B :**

  * **Cloud mutualisé** : BYOB au niveau de l'équipe
  * **Cloud dédié** : BYOB au niveau de l'instance et de l'équipe
  * **Autogéré** : BYOB au niveau de l'instance et de l'équipe

  Les instructions de provisionnement du bucket dans ce guide sont les mêmes, quel que soit votre type de déploiement.
</Note>

<div id="overview">
  ## Aperçu
</div>

Bring your own bucket (BYOB) vous permet de stocker les artefacts W\&B et d'autres données sensibles dans votre propre infrastructure cloud ou sur site. Avec [Cloud dédié](/fr/platform/hosting/hosting-options/dedicated-cloud) ou [Cloud mutualisé](/fr/platform/hosting/hosting-options/multi_tenant_cloud), W\&B ne copie pas les données que vous stockez dans votre bucket vers l'infrastructure gérée par W\&B. Cette page s'adresse aux administrateurs W\&B et aux ingénieurs plateforme qui doivent conserver la maîtrise du stockage des artefacts afin de répondre à des exigences de gouvernance des données, de résidence des données ou de conformité.

<Note>
  * La communication entre le SDK / CLI / l'interface utilisateur W\&B et vos buckets s'effectue à l'aide d'[URL pré-signées](./presigned-urls).
  * W\&B utilise des mécanismes de garbage collection et des processus associés pour supprimer au fil du temps les **artefacts** et les **données de run** supprimés de votre bucket. Pour la suppression d'un artefact, voir [Supprimer un artefact](/fr/models/artifacts/delete-artifacts). La suppression des données de run dans les déploiements Cloud dédié et Autogéré dépend également de `GORILLA_DATA_RETENTION_PERIOD`, comme décrit dans [Configurer les variables d'environnement](/fr/platform/hosting/env-vars). W\&B ne garantit pas le délai de nettoyage. Pour obtenir une vue d'ensemble de l'utilisation des buckets et des coûts associés, voir [Gérer le stockage et les coûts des buckets](/fr/platform/hosting/managing-bucket-storage).
  * Vous pouvez spécifier un sous-chemin lorsque vous configurez un bucket, afin de garantir que W\&B ne stocke aucun fichier dans un dossier à la racine du bucket. Cela vous aide à mieux respecter la politique de gouvernance des buckets de votre organisation.
</Note>

<div id="data-stored-in-the-central-database-vs-buckets">
  ### Données stockées dans la base de données centrale ou dans les buckets
</div>

Lorsque vous utilisez la fonctionnalité BYOB, W\&B stocke certains types de données dans la base de données centrale de W\&B, et d’autres dans votre bucket. Utilisez les listes suivantes pour comprendre quelles données restent dans l’infrastructure gérée par W\&B et lesquelles W\&B écrit dans votre propre espace de stockage.

<div id="database">
  #### Base de données
</div>

La base de données centrale de W\&B stocke les données suivantes :

* Métadonnées des utilisateurs, des équipes, des Artifacts, des expériences et des projets.
* Reports.
* Journaux d'expérience.
* Métriques système.
* Journaux de la console.

<div id="buckets">
  #### Buckets
</div>

Votre bucket de stockage contient les données suivantes :

* Fichiers d’expérience et métriques.
* Fichiers d’artifact.
* Fichiers multimédias.
* Fichiers de run.
* Métriques de l’historique exportées et événements système au format Parquet.

<div id="bucket-scopes">
  ### Portées des buckets
</div>

Vous pouvez configurer votre bucket de stockage selon l’une des deux portées suivantes :

| Portée               | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Niveau de l’instance | Dans [Cloud dédié](/fr/platform/hosting/hosting-options/dedicated-cloud) et [Autogéré](/fr/platform/hosting/hosting-options/self-managed), tout utilisateur disposant des autorisations requises au sein de votre organisation ou de votre instance peut accéder aux fichiers stockés dans le bucket de stockage de l’instance. Ne s’applique pas au [Cloud mutualisé](/fr/platform/hosting/hosting-options/multi_tenant_cloud).                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| Niveau de l’équipe   | Si vous configurez une équipe W\&B pour utiliser un bucket de stockage au niveau de l’équipe, les membres de l’équipe peuvent accéder aux fichiers qui y sont stockés. Les buckets de stockage au niveau de l’équipe offrent un contrôle d’accès aux données plus strict et une meilleure isolation des données pour les équipes qui manipulent des données sensibles ou sont soumises à des exigences de conformité strictes.<br /><br />Le stockage au niveau de l’équipe aide différentes unités métier ou différents départements partageant une instance à utiliser efficacement l’infrastructure et les ressources administratives. Il permet également à des équipes projet distinctes de gérer des flux de travail d’IA pour différents clients. Disponible pour tous les types de déploiement. Vous configurez le BYOB au niveau de l’équipe lors de la configuration de l’équipe. |

Cette conception prend en charge différentes topologies de stockage, selon les besoins de votre organisation. Par exemple :

* Le même bucket peut servir pour l’instance et une ou plusieurs équipes.
* Chaque équipe peut utiliser un bucket distinct, certaines équipes peuvent choisir d’écrire dans le bucket de l’instance, ou plusieurs équipes peuvent partager un bucket en écrivant dans des sous-chemins.
* Les buckets de différentes équipes peuvent se trouver dans différents environnements ou régions d’infrastructure cloud, et différentes équipes d’administration du stockage peuvent les gérer.

Par exemple, supposons que vous ayez une équipe appelée Kappa dans votre organisation. Votre organisation (et l’équipe Kappa) utilise par défaut le bucket de stockage au niveau de l’instance. Ensuite, vous créez une équipe appelée Omega. Lorsque vous créez l’équipe Omega, vous configurez un bucket de stockage au niveau de l’équipe pour cette équipe. L’équipe Kappa ne peut pas accéder aux fichiers que l’équipe Omega génère. En revanche, l’équipe Omega peut accéder aux fichiers que l’équipe Kappa crée. Pour isoler les données de l’équipe Kappa, vous devez également configurer un bucket de stockage au niveau de l’équipe pour celle-ci.

<div id="availability-matrix">
  ### Matrice de disponibilité
</div>

Avant de commencer, confirmez que BYOB est disponible pour votre type de déploiement et votre fournisseur de stockage. W\&B peut se connecter aux fournisseurs de stockage suivants :

* [CoreWeave AI Object Storage](https://docs.coreweave.com/products/storage/object-storage) : service de stockage d’objets haute performance, compatible S3, optimisé pour les charges de travail d’IA.
* [Amazon S3](https://aws.amazon.com/s3/) : service de stockage d’objets offrant une évolutivité, une disponibilité des données, une sécurité et des performances.
* [Google Cloud Storage](https://cloud.google.com/storage) : service géré permettant de stocker des données non structurées à grande échelle.
* [Azure Blob Storage](https://azure.microsoft.com/en-us/products/storage/blobs) : solution de stockage d’objets dans le cloud permettant de stocker de très grandes quantités de données non structurées, comme du texte, des données binaires, des images, des vidéos et des journaux.
* Un stockage compatible S3 tel que [MinIO Enterprise (AIStor)](https://min.io/product/aistor) ou d’autres solutions de classe entreprise hébergées dans votre cloud ou sur votre infrastructure sur site.

Le tableau suivant indique la disponibilité de BYOB à chaque niveau pour chaque type de déploiement W\&B.

| Type de déploiement W\&B | Niveau de l’instance | Niveau de l’équipe                      | Informations supplémentaires                                                                                                                                                                                                                                                                                                         |
| ------------------------ | -------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Cloud dédié              | ✓                    | ✓                                       | Le BYOB au niveau de l’instance et de l’équipe est pris en charge pour CoreWeave AI Object Storage, Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage et le stockage compatible S3 tel que [MinIO Enterprise (AIStor)](https://www.min.io/product/aistor) hébergé dans votre cloud ou sur votre infrastructure sur site. |
| Cloud mutualisé          | Non applicable       | ✓<sup><a href="#footnote_1">1</a></sup> | Le BYOB au niveau de l’équipe est pris en charge pour CoreWeave AI Object Storage, Amazon S3 et Google Cloud Storage.                                                                                                                                                                                                                |
| Autogéré                 | ✓                    | ✓                                       | Le BYOB au niveau de l’instance et de l’équipe est pris en charge pour CoreWeave AI Object Storage, Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage et le stockage compatible S3 tel que [MinIO Enterprise (AIStor)](https://www.min.io/product/aistor) hébergé dans votre cloud ou sur votre infrastructure sur site. |

<sup><a id="footnote_1" aria-label="Note 1">1</a>.</sup>Azure Blob Storage n’est pas pris en charge pour le BYOB au niveau de l’équipe sur Cloud mutualisé.

Les sections suivantes vous guident dans le processus de configuration de BYOB.

<div id="provision-your-bucket">
  ## Provision your bucket
</div>

Après avoir [vérifié la disponibilité](#availability-matrix), vous pouvez provisionner votre bucket de stockage, y compris sa politique d’accès et la configuration CORS. Le provisionnement crée le bucket dans lequel W\&B écrit et accorde à la plateforme W\&B les autorisations nécessaires pour générer des URL pré-signées en votre nom. Sélectionnez un onglet pour continuer.

<Tabs>
  <Tab title="CoreWeave">
    <a id="coreweave-requirements" aria-label="CoreWeave requirements" />**Prérequis** :

    * **Cloud mutualisé**, ou
    * **Cloud dédié** v0.73.0 ou version ultérieure, ou
    * **Autogéré** v0.73.0 ou version ultérieure, déployé avec la version v0.33.14+ du chart Helm
    * Un compte CoreWeave avec AI Object Storage activé et les autorisations nécessaires pour créer des buckets, des clés d’accès à l’API et des clés secrètes.
    * Votre instance W\&B doit pouvoir se connecter aux points de terminaison réseau de CoreWeave.

    Pour plus d'informations, voir [Create a CoreWeave AI Object Storage bucket](https://docs.coreweave.com/docs/products/storage/object-storage/buckets/create-bucket) dans la documentation CoreWeave.

    1. <a id="coreweave-org-id" />**Cloud mutualisé** : Obtenez l’ID de votre organisation, requis pour la politique de votre bucket.
       1. Connectez-vous à l’[app W\&B](https://wandb.ai/site).
       2. Dans la barre de navigation de gauche, cliquez sur **Créer une nouvelle équipe**.
       3. Dans le panneau latéral qui s’ouvre, copiez l’ID de l’organisation W\&B, situé au-dessus de **Inviter des membres de l’équipe**.
       4. Laissez cette page ouverte. Vous l’utilisez pour [configurer W\&B](#configure-byob).

    2. <a id="coreweave-customer-namespace" aria-label="Espace de noms client CoreWeave" />**Cloud dédié** / **Autogéré** : Obtenez votre espace de noms client, nécessaire pour la stratégie de votre bucket.
       1. Dans l’application W\&B, cliquez sur l’icône de votre profil, puis sur **System Console**.
       2. Cliquez sur l’onglet **Authentication**.
       3. En bas de la page, copiez la valeur de **Customer Namespace**. Conservez cette valeur pour configurer la politique du bucket.
       4. Vous pouvez fermer **System Console**.

    3. Dans CoreWeave, créez un bucket portant le nom de votre choix dans la zone de disponibilité CoreWeave de votre choix. Vous pouvez également créer un dossier que W\&B utilisera comme sous-chemin pour tous les fichiers W\&B. Notez le nom du bucket, la zone de disponibilité, la clé d'accès à l'API, la clé secrète et le sous-chemin.

    4. Définissez la politique CORS suivante pour le bucket :
       ```json theme={null}
       [
         {
           "AllowedHeaders": [
             "*"
           ],
           "AllowedMethods": [
             "GET",
             "HEAD",
             "PUT"
           ],
           "AllowedOrigins": [
             "*"
           ],
           "ExposeHeaders": [
             "ETag"
           ],
           "MaxAgeSeconds": 3000
         }
       ]
       ```
       Le stockage CoreWeave est compatible avec S3. Pour en savoir plus sur CORS, voir [Configuration du partage de ressources entre origines (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html) dans la documentation AWS.

    5. Configurez une stratégie de bucket accordant les autorisations requises pour permettre à votre déploiement W\&B d'accéder au bucket et de générer des [URL pré-signées](./presigned-urls), utilisées par les charges de travail d'IA de votre infrastructure cloud ou par les navigateurs des utilisateurs pour accéder au bucket. Voir la [référence sur les stratégies de bucket](https://docs.coreweave.com/docs/products/storage/object-storage/auth-access/bucket-access/bucket-policies) dans la documentation CoreWeave.

       ```json theme={null}
       {
         "Version": "2012-10-17",
         "Statement": [
         {
           "Sid": "AllowWandbUser",
           "Action": [
             "s3:GetObject*",
             "s3:GetEncryptionConfiguration",
             "s3:ListBucket",
             "s3:ListBucketMultipartUploads",
             "s3:ListBucketVersions",
             "s3:AbortMultipartUpload",
             "s3:DeleteObject",
             "s3:PutObject",
             "s3:GetBucketCORS",
             "s3:GetBucketLocation",
             "s3:GetBucketVersioning"
           ],
           "Effect": "Allow",
           "Resource": [
             "arn:aws:s3:::<cw-bucket>/*",
             "arn:aws:s3:::<cw-bucket>"
           ],
           "Principal": {
             "CW": "arn:aws:iam::wandb:static/<wb-cw-principal>"
           },
           "Condition": {
             "StringLike": {
               "wandb:OrgID": [
                 "<wb-org-id>"
               ]
             }
           }
         },
         {
           "Sid": "AllowUsersInOrg",
           "Action": "s3:*",
           "Effect": "Allow",
           "Resource": [
             "arn:aws:s3:::<cw-bucket>",
             "arn:aws:s3:::<cw-bucket>/*"
           ],
           "Principal": {
             "CW": "arn:aws:iam::<cw-storage-org-id>:*"
           }
         }]
       }
       ```

       La clause commençant par `"Sid": "AllowUsersInOrg"` accorde aux utilisateurs de votre organisation un accès direct au bucket. Si vous n’avez pas besoin de cette option, vous pouvez omettre cette clause de votre stratégie.

    6. Dans la politique du bucket, remplacez les espaces réservés :
       * `<cw-bucket>` : le nom de votre bucket.
       * `<cw-wandb-principal>` :
         * **Cloud mutualisé** : `arn:aws:iam::wandb:static/wandb-integration-public`
         * **Cloud dédié** ou **Autogéré** : `arn:aws:iam::wandb:static/wandb-integration`
       * `<wb-org-id>` :
         * **Cloud mutualisé** : l’ID de l’organisation indiqué dans [Provision your bucket](#coreweave-org-id).
         * **Cloud dédié** ou **Autogéré** : l’espace de noms client indiqué dans [Provision your bucket](#coreweave-customer-namespace).

    7. **Cloud dédié** : Contactez l’[assistance](mailto:support@wandb.ai) pour suivre des étapes supplémentaires.

    8. <a id="set-environment-variable" aria-label="Définir la variable d'environnement" />**Autogéré** : Mettez à jour votre déploiement W\&B afin de définir la variable d'environnement `GORILLA_SUPPORTED_FILE_STORES` sur la valeur exacte `cw://`, puis redémarrez W\&B. Sinon, CoreWeave n'apparaît pas comme option lors de la configuration du stockage de l’équipe.

    Ensuite, [configurez W\&B](#configure-byob).
  </Tab>

  <Tab title="AWS">
    Pour plus d'informations, voir [Créer un bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) dans la documentation AWS.

    1. Créez la clé KMS.

       W\&B vous demande de créer une Clé KMS pour chiffrer et déchiffrer les données du bucket S3. Le type d’utilisation de la clé doit être `ENCRYPT_DECRYPT`. Attribuez la politique suivante à la clé :

       ```json theme={null}
       {
         "Version": "2012-10-17",
         "Statement": [
           {
             "Sid" : "Internal",
             "Effect" : "Allow",
             "Principal" : { "AWS" : "<Your_Account_Id>" },
             "Action" : "kms:*",
             "Resource" : "<aws_kms_key.key.arn>"
           },
           {
             "Sid" : "External",
             "Effect" : "Allow",
             "Principal" : { "AWS" : "<aws_principal_and_role_arn>" },
             "Action" : [
               "kms:Decrypt",
               "kms:Describe*",
               "kms:Encrypt",
               "kms:ReEncrypt*",
               "kms:GenerateDataKey*"
             ],
             "Resource" : "<aws_kms_key.key.arn>"
           }
         ]
       }
       ```

       Remplacez `<Your_Account_Id>` et `<aws_kms_key.key.arn>` par les valeurs appropriées.

       Si vous utilisez [Cloud mutualisé](/fr/platform/hosting/hosting-options#w%26b-multi-tenant-cloud) ou [Cloud dédié](/fr/platform/hosting/hosting-options#w%26b-dedicated-cloud), remplacez `<aws_principal_and_role_arn>` par la valeur correspondante :

       * **Cloud mutualisé**: `arn:aws:iam::725579432336:role/WandbIntegration`
       * **Cloud dédié**: `arn:aws:iam::830241207209:root`

       Cette politique accorde à votre compte AWS un accès complet à la clé et attribue également les autorisations requises au compte AWS qui héberge la plateforme W\&B. Conservez l’ARN de la clé KMS.

    2. Créez le bucket S3.

       Suivez ces étapes pour créer le bucket S3 dans votre compte AWS :

       1. Créez le bucket S3 avec le nom de votre choix. Vous pouvez également créer un dossier que vous configurerez comme sous-chemin pour y stocker tous les fichiers W\&B.
       2. Activez le chiffrement côté serveur à l’aide de la clé KMS de l’étape précédente.
       3. Configurez CORS avec la stratégie suivante :

          ```json theme={null}
          [
            {
                "AllowedHeaders": [
                    "*"
                ],
                "AllowedMethods": [
                    "GET",
                    "HEAD",
                    "PUT"
                ],
                "AllowedOrigins": [
                    "*"
                ],
                "ExposeHeaders": [
                    "ETag"
                ],
                "MaxAgeSeconds": 3000
            }
          ]
          ```

              <Note>
                Si les données de votre bucket expirent en raison d’une [politique de gestion du cycle de vie des objets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html), vous risquez de ne plus pouvoir lire l’historique de certains runs.
              </Note>
       4. Accordez les autorisations S3 requises au compte AWS qui héberge la plateforme W\&B. Ces autorisations sont nécessaires pour générer des [URL pré-signées](./presigned-urls), utilisées par les charges de travail d’IA de votre infrastructure cloud ou par les navigateurs des utilisateurs pour accéder au bucket.

          ```json theme={null}
          {
            "Version": "2012-10-17",
            "Id": "WandBAccess",
            "Statement": [
              {
                "Sid": "WAndBAccountAccess",
                "Effect": "Allow",
                "Principal": { "AWS": "<aws_principal_and_role_arn>" },
                  "Action" : [
                    "s3:GetObject*",
                    "s3:GetEncryptionConfiguration",
                    "s3:ListBucket",
                    "s3:ListBucketMultipartUploads",
                    "s3:ListBucketVersions",
                    "s3:AbortMultipartUpload",
                    "s3:DeleteObject",
                    "s3:PutObject",
                    "s3:GetBucketCORS",
                    "s3:GetBucketLocation",
                    "s3:GetBucketVersioning"
                  ],
                "Resource": [
                  "arn:aws:s3:::<wandb_bucket>",
                  "arn:aws:s3:::<wandb_bucket>/*"
                ]
              }
            ]
          }
          ```

          Remplacez `<wandb_bucket>` par la valeur appropriée et notez le nom du bucket. Ensuite, [configurez W\&B](#configure-byob).

          Si vous utilisez [Cloud mutualisé](/fr/platform/hosting/hosting-options/multi_tenant_cloud) ou [Cloud dédié](/fr/platform/hosting/hosting-options/dedicated-cloud), remplacez `<aws_principal_and_role_arn>` par la valeur correspondante.

          * Pour [Cloud mutualisé](/fr/platform/hosting/hosting-options/multi_tenant_cloud) : `arn:aws:iam::725579432336:role/WandbIntegration`
          * Pour [Cloud dédié](/fr/platform/hosting/hosting-options/dedicated-cloud) : `arn:aws:iam::830241207209:root`

    Pour plus de détails, voir le [guide d'hébergement autogéré AWS](/fr/platform/hosting/hosting-options).
  </Tab>

  <Tab title="Google Cloud">
    Pour en savoir plus, consultez [Create a bucket](https://docs.cloud.google.com/storage/docs/creating-buckets) dans la documentation Google Cloud.

    1. Provisionnez le bucket GCS.

       Suivez ces étapes pour provisionner le bucket GCS dans votre projet Google Cloud :

       1. Créez le bucket GCS avec le nom de votre choix. Vous pouvez également créer un dossier que vous configurerez comme sous-chemin pour stocker tous les fichiers W\&B.

       2. Définissez le type de chiffrement sur `Google-managed`.

       3. Activez la suppression réversible. Voir [Edit a bucket's soft delete policy](https://docs.cloud.google.com/storage/docs/use-soft-delete).

       4. Définissez la stratégie CORS avec `gsutil`. Cela n'est pas possible dans l'interface utilisateur.

          1. Créez localement un fichier nommé `cors-policy.json`.
          2. Copiez la stratégie CORS suivante dans le fichier, puis enregistrez-le.

             ```json theme={null}
             [
               {
                 "origin": ["*"],
                 "responseHeader": ["Content-Type"],
                 "exposeHeaders": ["ETag"],
                 "method": ["GET", "HEAD", "PUT"],
                 "maxAgeSeconds": 3000
               }
             ]
             ```

                 <Note>
                   Si les données de votre bucket expirent en raison d'une [object lifecycle management policy](https://cloud.google.com/storage/docs/lifecycle), vous risquez de ne plus pouvoir lire l'historique de certains runs.
                 </Note>

       5. Remplacez `<bucket_name>` par le nom correct du bucket, puis exécutez `gsutil`.

          ```bash theme={null}
          gsutil cors set cors-policy.json gs://<bucket_name>
          ```

       6. Vérifiez la stratégie du bucket. Remplacez `<bucket_name>` par le nom correct du bucket.

          ```bash theme={null}
          gsutil cors get gs://<bucket_name>
          ```

    2. Si vous utilisez [Cloud mutualisé](/fr/platform/hosting/hosting-options/multi_tenant_cloud) ou [Cloud dédié](/fr/platform/hosting/hosting-options/dedicated-cloud), accordez le rôle `storage.admin` au compte de service Google Cloud associé à la plateforme W\&B. W\&B a besoin de ce rôle pour vérifier la configuration CORS et les attributs du bucket, par exemple si la gestion des versions des objets est activée. Si le compte de service ne dispose pas du rôle `storage.admin`, ces vérifications renvoient une erreur HTTP 403.

       * Pour [Cloud mutualisé](/fr/platform/hosting/hosting-options/multi_tenant_cloud), le compte est : `wandb-integration@wandb-production.iam.gserviceaccount.com`
       * Pour [Cloud dédié](/fr/platform/hosting/hosting-options/dedicated-cloud), le compte est : `deploy@wandb-production.iam.gserviceaccount.com`

       Conservez le nom du bucket. Ensuite, [configurez W\&B pour BYOB](#configure-byob).
  </Tab>

  <Tab title="Azure">
    Pour plus de détails, voir [Create a blob storage container](https://learn.microsoft.com/en-us/azure/storage/blobs/blob-containers-portal) dans la documentation Azure.

    **BYOB au niveau de l’instance**:

    1. Provisionnez le conteneur Azure Blob Storage.

       Pour les déploiements autogérés, ainsi que pour les déploiements Cloud dédié qui n’utilisent pas [ce module Terraform](https://github.com/wandb/terraform-azurerm-wandb/tree/main/examples/byob), suivez ces étapes pour provisionner un conteneur Azure Blob Storage dans votre abonnement Azure :

       1. Créez un conteneur avec le nom de votre choix. Vous pouvez également créer un dossier que vous pouvez configurer comme sous-chemin pour stocker tous les fichiers W\&B.
       2. Configurez la stratégie CORS sur le conteneur.

          Pour définir la stratégie CORS dans l’interface utilisateur, accédez à blob storage, faites défiler jusqu’à `Settings/Resource Sharing (CORS)`, puis définissez les valeurs suivantes :

          | Paramètre           | Valeur               |
          | ------------------- | -------------------- |
          | Origines autorisées | `*`                  |
          | Méthodes autorisées | `GET`, `HEAD`, `PUT` |
          | En-têtes autorisés  | `*`                  |
          | En-têtes exposés    | `*`                  |
          | Âge maximal         | `3000`               |

              <Note>
                Si les données de votre bucket expirent en raison d’une [stratégie de gestion du cycle de vie des objets](https://learn.microsoft.com/en-us/azure/storage/blobs/lifecycle-management-policy-configure?tabs=azure-portal), vous risquez de ne plus pouvoir consulter l’historique de certains runs.
              </Note>

    2. Générez une clé d’accès au compte de stockage et notez son nom ainsi que le nom du compte de stockage. Si vous utilisez [Dedicated Cloud](/fr/platform/hosting/hosting-options/dedicated-cloud), partagez le nom du compte de stockage et la clé d’accès avec votre équipe W\&B via un mécanisme de partage sécurisé.

    **BYOB au niveau de l’équipe**:

    Pour les déploiements Cloud dédié, W\&B recommande d’utiliser [Terraform](https://github.com/wandb/terraform-azurerm-wandb/tree/main/examples/secure-storage-connector) pour provisionner le conteneur Azure Blob Storage avec le mécanisme d’accès et les autorisations nécessaires. Pour les déploiements Cloud dédié qui n’utilisent pas Terraform, ou pour les déploiements autogérés, provisionnez le bucket en suivant les étapes de provisionnement du stockage au niveau de l’instance. Fournissez l’URL de l’émetteur OIDC de votre instance. Notez les informations suivantes :

    * Nom du compte de stockage
    * Nom du conteneur de stockage
    * ID client de l’identité managée
    * ID du locataire Azure
  </Tab>

  <Tab title="compatible S3">
    Créez votre bucket compatible S3. Notez les éléments suivants :

    * Clé d’accès
    * Clé d’accès secrète
    * URL de l’endpoint
    * Nom du bucket
    * Chemin du dossier, le cas échéant
    * Région
  </Tab>
</Tabs>

Ensuite, [déterminez l’adresse de stockage](#determine-the-storage-address).

<div id="determine-the-storage-address">
  ## Déterminer l’adresse de stockage
</div>

Après avoir provisionné le bucket, vous avez besoin d’une adresse de stockage que W\&B utilise pour le localiser et s’y authentifier. Les sections suivantes décrivent la syntaxe à utiliser pour connecter une équipe W\&B à un bucket de stockage BYOB. Dans les exemples, remplacez les valeurs entre chevrons (`<>`) par les informations de votre bucket. Choisissez un onglet pour afficher les instructions détaillées.

<Tabs>
  <Tab title="CoreWeave">
    Cette section concerne uniquement le BYOB au niveau de l’équipe sur **Cloud dédié** ou **Autogéré**. Pour le BYOB au niveau de l’instance ou pour le Cloud mutualisé, vous pouvez passer à [Configurer W\&B](#configure-byob).

    Déterminez le chemin complet du bucket au format suivant. Remplacez les valeurs entre chevrons (`<>`) par celles de votre bucket.

    **Format du bucket** :

    ```text theme={null}
    cw://<accessKey>:<secretAccessKey>@cwobject.com/<bucketName>?tls=true
    ```

    W\&B prend en charge le point de terminaison HTTPS `cwobject.com`. TLS 1.3 est requis. Contactez l’[assistance](mailto:support@wandb.com) si vous souhaitez utiliser d’autres endpoints CoreWeave.
  </Tab>

  <Tab title="AWS">
    **Format du bucket** :

    ```text theme={null}
    s3://<accessKey>:<secretAccessKey>@<s3_regional_url_endpoint>/<bucketName>?region=<region>
    ```

    Dans l’adresse, le paramètre `region` est obligatoire, sauf si votre instance W\&B et votre bucket de stockage sont tous deux déployés sur AWS et que la valeur `AWS_REGION` de l’instance W\&B correspond à la région AWS S3 du bucket.
  </Tab>

  <Tab title="Google Cloud">
    **Format du bucket** :

    ```text theme={null}
    gs://<serviceAccountEmail>:<urlEncodedPrivateKey>@<bucketName>
    ```
  </Tab>

  <Tab title="Azure">
    **Format du bucket** :

    ```text theme={null}
    az://:<urlEncodedAccessKey>@<storageAccountName>/<containerName>
    ```
  </Tab>

  <Tab title="S3-compatible">
    **Format du bucket** :

    ```text theme={null}
    s3://<accessKey>:<secretAccessKey>@<url_endpoint>/<bucketName>?region=<region>&tls=true
    ```

    Dans l’adresse, le paramètre `region` est obligatoire.

    <Note>
      Cette section s’applique aux buckets de stockage compatibles S3 qui ne sont pas hébergés sur S3, comme [MinIO Enterprise (AIStor)](https://www.min.io/product/aistor) ou d’autres solutions compatibles S3 de niveau entreprise hébergées sur site. Pour les buckets de stockage hébergés dans AWS S3, consultez plutôt l’onglet **AWS**.

      MinIO Open Source est en [mode maintenance](https://github.com/minio/minio), sans développement actif ni binaires précompilés. Pour les déploiements en production, utilisez des solutions compatibles S3 de niveau entreprise.

      Pour les buckets de stockage cloud natifs avec un mode compatible S3 facultatif, utilisez si possible le protocole cloud natif. Par exemple, utilisez `cw://` pour un bucket CoreWeave plutôt que `s3://`.
    </Note>
  </Tab>
</Tabs>

Après avoir déterminé l’adresse de stockage, vous pouvez passer à [configurer le BYOB au niveau de l’équipe](#configure-team-level-byob).

<div id="configure-wb">
  ## Configurer W\&B
</div>

Après avoir [provisionné votre bucket](#provision-your-bucket) et [déterminé son adresse](#determine-the-storage-address), vous pouvez configurer BYOB au [niveau de l’instance](#instance-level-byob) ou au [niveau de l’équipe](#team-level-byob). Cette dernière étape indique à W\&B de diriger vers votre bucket le stockage des artefacts, des fichiers de run et d’autres objets volumineux.

<Warning>
  Planifiez soigneusement l’organisation de votre bucket de stockage. Après avoir configuré un bucket de stockage pour W\&B, la migration de ses données vers un autre bucket est complexe et nécessite l’assistance de W\&B. Cela s’applique au stockage pour Cloud dédié et Autogéré, ainsi qu’au stockage au niveau de l’équipe pour Cloud mutualisé. Pour toute question, contactez [l’assistance](mailto:support@wandb.com).
</Warning>

<div id="instance-level-byob">
  ### BYOB au niveau de l’instance
</div>

<Note>
  Pour CoreWeave AI Object Storage au niveau de l’instance, contactez [l’assistance W\&B](mailto:support@wandb.com) au lieu de suivre ces instructions. La configuration en libre-service n’est pas encore prise en charge.
</Note>

Pour **Cloud dédié** : partagez les informations du bucket avec votre équipe W\&B, qui configure votre instance Cloud dédié.

Pour **Autogéré**, vous pouvez configurer le BYOB au niveau de l’instance à l’aide de la W\&B App :

1. Connectez-vous à W\&B en tant qu’utilisateur disposant du rôle `admin`.
2. Cliquez sur l’icône utilisateur en haut de la page, puis sur **System Console**.
3. Accédez à **Settings** > **System Connections**.
4. Dans la section **Bucket Storage**, assurez-vous que l’identité indiquée dans le champ **Identity** a accès au nouveau bucket.
5. Sélectionnez **Provider**.
6. Saisissez **Bucket Name**.
7. Facultatif : saisissez le **Path** à utiliser dans le nouveau bucket.
8. Cliquez sur **Save**.

Après l’enregistrement, W\&B utilise le bucket configuré comme destination de stockage par défaut pour les nouveaux artefacts et les fichiers de run au niveau de l’instance.

<div id="team-level-byob">
  ### BYOB au niveau de l’équipe
</div>

Vous pouvez configurer le BYOB au niveau de l’équipe lorsque vous créez une équipe dans la W\&B App ou via l’[API SCIM](/fr/platform/hosting/iam/scim#create-team) (POST Groups avec `storageBucket` facultatif). Deux options s’offrent à vous :

* **Utiliser un bucket existant** : vous devez d’abord [déterminer l’emplacement de stockage](#determine-the-storage-address) de votre bucket.
* **Créer un bucket** (Cloud mutualisé uniquement) : W\&B peut créer automatiquement un bucket chez votre fournisseur de cloud lorsque vous créez l’équipe. W\&B prend en charge cette option pour CoreWeave, AWS et Google Cloud.

<Note>
  - Une fois que vous avez créé une équipe, vous ne pouvez plus modifier son stockage.
  - Pour le BYOB au niveau de l’instance, reportez-vous plutôt à [BYOB au niveau de l’instance](#instance-level-byob).
  - Si vous prévoyez de configurer le stockage CoreWeave pour l’équipe, consultez les [prérequis CoreWeave](#coreweave-requirements) et contactez l’[assistance](mailto:support@wandb.com) pour vérifier que votre bucket est correctement configuré dans CoreWeave et valider la configuration de votre équipe, car vous ne pouvez pas modifier les détails de stockage après la création de l’équipe.
</Note>

Sélectionnez votre type de déploiement pour continuer.

<Tabs>
  <Tab title="Cloud dédié / Auto-hébergé">
    1. **Cloud dédié** : vous **devez** fournir le chemin du bucket à l’équipe en charge de votre compte afin qu’elle puisse l’ajouter aux stockages de fichiers pris en charge par votre instance avant de suivre le reste de cette procédure pour utiliser le bucket de stockage pour une équipe.

    2. **Autogéré** : vous **devez** ajouter le chemin du bucket à la variable d’environnement `GORILLA_SUPPORTED_FILE_STORES`, puis redémarrer W\&B avant de suivre le reste de cette procédure pour utiliser le bucket de stockage pour une équipe.

    3. Connectez-vous à W\&B avec un utilisateur ayant le rôle `admin`, cliquez sur l’icône en haut à gauche pour ouvrir le panneau de navigation de gauche, puis cliquez sur **Créer une équipe pour collaborer**.

    4. Indiquez un nom pour l’équipe.

    5. Définissez **Type de stockage** sur **Stockage externe**.

           <Note>
             Pour utiliser le stockage au niveau de l’instance comme stockage d’équipe (qu’il soit interne ou externe), laissez **Type de stockage** défini sur **Interne**, même si le bucket au niveau de l’instance est configuré pour BYOB. Pour utiliser un stockage externe distinct pour l’équipe, définissez **Type de stockage** de l’équipe sur **Externe** et configurez les détails du bucket à l’étape suivante.
           </Note>

    6. Cliquez sur **Emplacement du bucket**.

    7. Pour utiliser un bucket existant, sélectionnez-le dans la liste. Pour ajouter un nouveau bucket, cliquez sur **Ajouter un bucket** en bas, puis renseignez ses détails.

       Cliquez sur **Cloud provider** et sélectionnez **CoreWeave**, **AWS**, **Google Cloud** ou **Azure**.

       Si le cloud provider n’apparaît pas dans la liste, assurez-vous d’avoir suivi les instructions de [Provision your bucket](#set-environment-variable) pour ajouter le chemin du bucket aux stockages de fichiers pris en charge par votre instance. Si le fournisseur de stockage n’apparaît toujours pas, [contactez l’assistance](mailto:support@wandb.ai).

    8. Spécifiez les détails du bucket.
       * Pour **CoreWeave**, indiquez uniquement le nom du bucket.
       * Pour Amazon S3, Google Cloud ou un stockage compatible S3, indiquez le chemin complet du bucket que vous avez [déterminé précédemment](#determine-the-storage-address).
       * Pour Azure sur W\&B Dedicated ou Self-Managed, définissez **Account name** sur le compte Azure et **Container name** sur le conteneur de blob storage Azure.
       * Si vous le souhaitez, indiquez des paramètres de connexion supplémentaires :
         * Le cas échéant, définissez **Path** sur le sous-chemin du bucket.
         * **CoreWeave** : aucun paramètre de connexion supplémentaire n’est requis.
         * **AWS** : définissez **KMS key ARN** sur l’ARN de votre clé de chiffrement KMS.
         * **Google Cloud** : aucun paramètre de connexion supplémentaire n’est requis.
         * **Azure** : spécifiez des valeurs pour **Tenant ID** et **Managed Identity Client ID**. Ces champs sont obligatoires, sauf si vous avez configuré la chaîne de connexion avec `GORILLA_SUPPORTED_FILE_STORES`.

    9. Cliquez sur **Créer l’équipe**.

    Si W\&B rencontre des erreurs lors de l’accès au bucket ou détecte des paramètres non valides, une erreur ou un avertissement s’affiche en bas de la page. Sinon, W\&B crée l’équipe.
  </Tab>

  <Tab title="Cloud mutualisé">
    1. Revenez à la fenêtre du navigateur dans laquelle vous aviez commencé à créer la nouvelle équipe pour retrouver l’ID de l’organisation W\&B. Sinon, connectez-vous à W\&B avec un utilisateur ayant le rôle `admin`, cliquez sur l’icône en haut à gauche pour ouvrir le panneau de navigation de gauche, puis cliquez sur **Créer une équipe pour collaborer**.

    2. Indiquez un nom pour l’équipe.

    3. Définissez **Type de stockage** sur **Stockage externe**.

    4. Cliquez sur **Emplacement du bucket**.

    5. Pour utiliser un bucket existant, sélectionnez-le dans la liste.

    6. Pour créer un nouveau bucket, cliquez sur **Ajouter un bucket** en bas, puis :

       1. Cliquez sur **Cloud provider** et sélectionnez **CoreWeave**, **AWS** ou **Google Cloud**.
       2. Saisissez les détails du bucket :
          * **Name** : saisissez le nom du bucket.
          * **Path** (facultatif) : saisissez un sous-chemin à utiliser dans le bucket.
       3. Indiquez les paramètres de connexion supplémentaires pour le cloud provider choisi :
          * CoreWeave : aucun paramètre supplémentaire n’est requis.
          * AWS : vous pouvez indiquer un **KMS key ARN** pour le chiffrement.
          * Google Cloud : aucun paramètre supplémentaire n’est requis.

           <Note>
             Lorsque vous cliquez sur **Créer l’équipe**, W\&B crée automatiquement le bucket chez votre cloud provider avec la configuration spécifiée.
           </Note>

    7. Invitez des membres dans l’équipe. Dans **Inviter des membres de l’équipe**, indiquez une liste d’adresses e-mail séparées par des virgules. Sinon, vous pourrez inviter des membres dans l’équipe après l’avoir créée.

    8. Cliquez sur **Créer l’équipe**.

    Si W\&B rencontre des erreurs lors de l’accès au bucket ou détecte des paramètres non valides, une erreur ou un avertissement s’affiche en bas de la page. Sinon, W\&B crée l’équipe.
  </Tab>
</Tabs>

<div id="troubleshooting">
  ## Dépannage
</div>

Si W\&B signale des erreurs lors de la validation de votre bucket ou de la connexion à celui-ci, utilisez les sections suivantes pour diagnostiquer les causes les plus courantes selon le fournisseur de stockage.

<div id="coreweave">
  ### CoreWeave
</div>

Cette section vous aide à résoudre les problèmes de connexion à CoreWeave AI Object Storage.

* **Erreurs de connexion**
  * Vérifiez que votre instance W\&B peut se connecter aux points de terminaison réseau de CoreWeave.
  * CoreWeave utilise des chemins au format virtual-hosted, où le nom du bucket est un sous-domaine au début du chemin. Par exemple, `cw://bucket-name.cwobject.com` est correct, tandis que `cw://cwobject.com/bucket-name/` ne l’est pas.
  * Les noms de bucket ne doivent pas contenir de tirets de soulignement (`_`) ni d’autres caractères incompatibles avec les règles DNS.
  * Les noms de bucket doivent être globalement uniques sur l’ensemble des emplacements CoreWeave.
  * Les noms de bucket ne doivent pas commencer par `cw-` ou `vip-`, qui sont des préfixes réservés.
* **Échecs de validation CORS**
  * Une politique CORS est requise. CoreWeave est compatible S3. Pour plus de détails sur CORS, consultez [Configuring cross-origin resource sharing (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html) dans la documentation AWS.
  * `AllowedMethods` doit inclure les méthodes `GET`, `PUT` et `HEAD`.
  * `ExposeHeaders` doit inclure `ETag`.
  * `AllowedOrigins` de la politique CORS doit inclure les domaines du frontend W\&B. Les exemples de politiques CORS fournis sur cette page incluent tous les domaines à l’aide de `*`.
* **Problèmes de point de terminaison LOTA**
  * W\&B ne prend pas encore en charge les connexions aux points de terminaison LOTA. Pour exprimer votre intérêt, [contactez l’assistance](mailto:support@wandb.com).
* **Erreurs de clé d’accès et d’autorisations**
  * Vérifiez que votre clé d’accès à l’API CoreWeave n’a pas expiré.
  * Vérifiez que votre clé d’accès à l’API CoreWeave et votre clé secrète disposent des autorisations suffisantes `GetObject`, `PutObject`, `DeleteObject`, `ListBucket`. Les exemples de cette page répondent à cette exigence. Consultez [Create and Manage Access Keys](https://docs.coreweave.com/docs/products/storage/object-storage/auth-access/manage-access-keys/about) dans la documentation CoreWeave.

<div id="google-cloud">
  ### Google Cloud
</div>

Cette section vous aide à résoudre les problèmes de connexion à Google Cloud Storage.

* `Bucket does not have soft deletion enabled`
  Assurez-vous que la suppression réversible est activée pour votre bucket Google Cloud Storage. Voir [Modifier la règle de suppression réversible d'un bucket](https://docs.cloud.google.com/storage/docs/use-soft-delete).
