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.
- Ouvrez la page du catalogue IBM Cloud Object Storage.
- Entrez un nom pour votre instance de service, tel que
cos-backupet 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écutezibmcloud ks cluster get --cluster CLUSTER_NAME_OR_ID. - Consultez les différentes formules pour connaître les tarifs, puis sélectionnez une formule.
- Cliquez sur Créer. La page des détails du service s'ouvre.
- 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.
- 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.
- Cliquez sur Nouvelles données d'identification. Une boîte de dialogue s'ouvre.
- Entrez un nom pour vos données d'identification.
- 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électionnezReader, 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. - 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é.
- Cliquez sur Ajouter. Vos nouvelles données d'identification se trouvent dans la table Données d'identification.
- Cliquez sur Afficher les données d'identification.
- Notez qu'il
apikeyfaut utiliser des jetons OAuth2 pour s'authentifier auprès du service IBM Cloud Object Storage. Pour l'authentification HMAC, dans la sectioncos_hmac_keys, notez leaccess_key_idet lesecret_access_key. - 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 leaccess_key_idet le desecret_access_keyvos 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.
-
Obtenez l'identificateur global unique (GUID) de votre instance de service IBM Cloud Object Storage.
ibmcloud resource service-instance <service_name> | grep GUID -
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 secretutilisant 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> ``` - Exemple de commande
-
Récupère les secrets de votre cluster et vérifie la sortie.
kubectl get secretExemple 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 ... -
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.
-
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érentiels3fs-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
runAsUseretfsGroupdans votre déploiement.