Configuration de votre instance IBM Cloud Object Storage

IBM Cloud Object Storage est un type de stockage persistant à haute disponibilité que vous pouvez monter sur vos applications. Il s'agit d'un plug-in de volume Flex Kubernetes qui connecte des compartiments Cloud Object Storage à des pods dans votre cluster. Les informations stockées avec IBM Cloud Object Storage sont chiffrées en transit et au repos, dispersées dans de nombreux emplacements géographiques et accessibles via HTTP à l'aide d'une API REST.

Si vous souhaitez utiliser IBM Cloud Object Storage dans un cluster privé sans accès réseau public, vous devez configurer votre instance de service IBM Cloud Object Storage pour l'authentification HMAC. Si vous ne voulez pas utiliser l'authentification HMAC, vous devez ouvrir tout le trafic réseau sortant sur le port 443 pour que le plug-in fonctionne correctement dans un cluster privé.

Création d'une instance d' IBM Cloud Object Storage

Avant de commencer à utiliser du stockage d'objets dans votre cluster, vous devez mettre à disposition une instance de service IBM Cloud Object Storage dans votre compte.

Le plug-in IBM Cloud Object Storage fonctionne avec n'importe quel nœud final d'API s3. Par exemple, vous pouvez utiliser un serveur local d' Cloud Object Storage, tel que Minio, ou vous connecter à un point de terminaison API s3 que vous avez configuré chez un autre fournisseur de cloud, plutôt qu'à une instance du service IBM Cloud Object Storage.

Pour créer une instance de service IBM Cloud Object Storage, procédez comme suit. Si vous prévoyez d'utiliser un serveur Cloud Object Storage local ou un autre noeud final d'API s3 , consultez la documentation du fournisseur pour configurer votre instance Cloud Object Storage.

  1. Ouvrez la page du catalogue IBM Cloud Object Storage.
  2. Entrez un nom pour votre instance de service, tel que cos-backup et sélectionnez le même groupe de ressources que celui dans lequel figure votre cluster. Pour afficher le groupe de ressources de votre cluster, exécutez ibmcloud ks cluster get --cluster CLUSTER_NAME_OR_ID.
  3. Consultez les différentes formules pour connaître les tarifs, puis sélectionnez une formule.
  4. Cliquez sur Créer. La page des détails du service s'ouvre.
  5. Pour continuer à configurer Object Storage pour une utilisation avec votre cluster, voir Création de données d'identification de service.

Création de données d'identification de service IBM Cloud Object Storage

Avant de commencer, Créez votre instance de service Object Storage.

  1. Dans le volet de navigation de la page des détails du service de votre instance Object Storage, cliquez sur Données d'identification pour le service.
  2. Cliquez sur Nouvelles données d'identification. Une boîte de dialogue s'ouvre.
  3. Entrez un nom pour vos données d'identification.
  4. Dans la liste déroulante Rôle, sélectionnez le rôle d'accès Object Storage pour les actions auxquelles vous voulez que les utilisateurs du stockage dans votre cluster puissent accéder. Vous devez sélectionner au moins le rôle d'accès au service Auteur pour utiliser la fonction de mise à disposition dynamique auto-create-bucket. Si vous sélectionnez Reader, vous ne pouvez pas utiliser les données d'identification pour créer des segments dans IBM Cloud Object Storage et y écrire des données.
  5. Fac ult atif : cliquez sur « Options avancées » et activez le bouton « Inclure les identifiants HMAC » pour créer des identifiants HMAC pour le service « IBM Cloud Object Storage ». L'authentification HMAC ajoute une couche supplémentaire de sécurité à l'authentification OAuth2 en empêchant l'utilisation incorrecte de jetons OAuth2 arrivés à expiration ou créés de manière aléatoire. Important : si vous disposez d'un cluster privé uniquement sans accès public, vous devez utiliser l'authentification HMAC pour avoir accès au service IBM Cloud Object Storage sur le réseau privé.
  6. Cliquez sur Ajouter. Vos nouvelles données d'identification se trouvent dans la table Données d'identification.
  7. Cliquez sur Afficher les données d'identification.
  8. Notez qu'il apikey faut utiliser des jetons OAuth2 pour s'authentifier auprès du service IBM Cloud Object Storage. Pour l'authentification HMAC, dans la section cos_hmac_keys, notez le access_key_id et le secret_access_key.
  9. Stockez les données d'identification du service dans un secret Kubernetes dans le cluster pour activer l'accès à votre instance de service IBM Cloud Object Storage.

Création d'un secret pour les données d'identification du service Object Storage

Pour accéder à votre instance de service IBM Cloud Object Storage pour lire et écrire des données, vous devez stocker les données d'identification de manière sécurisée dans un secret Kubernetes. Le plug-in IBM Cloud Object Storage utilise ces données pour toute opération de lecture ou d'écriture dans votre compartiment.

Pour créer un secret Kubernetes pour une instance de service IBM Cloud Object Storage, procédez comme suit. Si vous envisagez d'utiliser un serveur Cloud Object Storage local ou un autre noeud final d'API s3, créez un secret Kubernetes avec les données d'identification appropriées.

Prérequis

  • Vérifiez que vous disposez du rôle d'accès au service Responsable pour le cluster.
  • Configurez votre fournisseur KMS.
  • Récupérez le apikey, ou le access_key_id et le de secret_access_key vos identifiants de connexion au service IBM Cloud Object Storage. Notez que les données d'identification du service doivent être suffisantes pour les opérations de compartiment que votre application doit effectuer. Par exemple, si votre application lit des données à partir d'un compartiment, les identifiants de service figurant dans votre secret doivent disposer au minimum d'autorisations de lecture.

Création d'un secret de stockage d'objets dans votre cluster

Procédez comme suit pour créer un secret dans votre cluster pour IBM Cloud Object Storage.

Si vous souhaitez intégrer le chiffrement Key Protect lors de la création de nouveaux compartiments à partir de PVC dans votre cluster, vous devez inclure le CRN de clé racine lors de la création de votre secretIBM Cloud Object Storage. Notez que le chiffrement Key Protect ne peut pas être ajouté aux compartiments existants. Le chiffrement ne peut être utilisé que lorsque vous créez de nouveaux compartiments. Si la clé racine utilisée pour le chiffrement est supprimée, tous les fichiers des compartiments associés sont inaccessibles.

  1. Obtenez l'identificateur global unique (GUID) de votre instance de service IBM Cloud Object Storage.

    ibmcloud resource service-instance <service_name> | grep GUID
    
  2. Créez un secret Kubernetes pour stocker vos données d'identification de service. Choisissez l'un des exemples suivants pour créer votre secret.

    • Exemple de commande create secret utilisant une clé d'API.
        kubectl create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=api-key=<api_key> --from-literal=service-instance-id=<service_instance_guid>
        ```
    * Exemple de commande `create secret` utilisant l'authentification HMAC.
    ```sh {: pre}
        kubectl create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=access-key=<access_key_ID> --from-literal=secret-key=<secret_access_key>    
        ```
    * Exemple de fichier de configuration de secret pour l'activation du chiffrement avec votre fournisseur KMS.
        1. Sauvegardez le fichier YAML suivant dans un fichier.
            ```yaml {: codeblock}
            apiVersion: v1
            data:
                access-key: xxx
                secret-key: xxx
                kp-root-key-crn: <CRN> # Key Protect or HPCS root key crn in base64 encoded format
            kind: Secret
            metadata:
                name: cos-write-access
            type: ibm/ibmc-s3fs
            ```
            `api-key`
            :   Entrez la clé d'API que vous avez extraite de vos données d'identification pour le service IBM Cloud Object Storage auparavant. Pour utiliser l'authentification HMAC, indiquez à la place `access-key` et `secret-key`.
    
            `access-key`
            :   Entrez l'ID de la clé d'accès que vous avez extrait de vos données d'identification pour le service IBM Cloud Object Storage auparavant. Pour utiliser l'authentification OAuth2, indiquez `api-key` à la place.
    
            `secret-key`
            :   Entrez la clé d'accès secrète que vous avez extraite de vos données d'identification pour le service IBM Cloud Object Storage auparavant. Pour utiliser l'authentification OAuth2, indiquez `api-key` à la place.
    
            `service-instance-id`
            :   Entrez l'identificateur unique global (GUID) de votre instance de service IBM Cloud Object Storage que vous avez extrait auparavant.
    
            `kp-root-key-crn`
            :   Entrez le CRN de la clé racine base64 codée Key Protect pour utiliser le chiffrement Key Protect.
    
        1. Appliquez le secret à votre cluster.
            ```sh {: pre}
            kubectl apply -f <secret_name>
            ```
    
    
  3. Récupère les secrets de votre cluster et vérifie la sortie.

    kubectl get secret
    

    Exemple de sortie

    NAME                  TYPE                                  DATA   AGE
    cos-write-access      ibm/ibmc-s3fs                         2      7d19h
    default-au-icr-io     kubernetes.io/dockerconfigjson        1      55d
    default-de-icr-io     kubernetes.io/dockerconfigjson        1      55d
    ...
    
  4. Installez le plug-in IBM Cloud Object Storage ou, s'il est déjà installé, déterminez la configuration de votre compartiment IBM Cloud Object Storage.

  5. Facultatif : Ajoutez votre secret aux classes de stockage par défaut. Référence des classes de stockage

Attribution de profils de confiance au stockage COS

Vous pouvez utiliser des profils de confiance pour accorder à différentes identités IBM Cloud l'accès aux ressources de votre compte, y compris à vos solutions de stockage. Les profils de confiance centralisent le contrôle d'accès, éliminent le besoin de clés API à longue durée de vie et vous permettent de limiter les autorisations au strict minimum requis pour une tâche spécifique. Pour plus d'informations, voir Configuration d'un profil de confiance pour les composants de stockage.

Limitations

  • IBM Cloud Object Storage est basé sur le système de fichiers s3fs-fuse. Vous pouvez consulter la liste des restrictions dans le référentiel s3fs-fuse.
  • Pour accéder à un fichier dans IBM Cloud Object Storage avec un ID utilisateur non racine, vous devez affecter les mêmes valeurs aux paramètres runAsUser et fsGroup dans votre déploiement.