VPC : Configuration des adresses IP autorisées pour IBM Cloud Object Storage

Cloud privé virtuel

Vous pouvez autoriser les adresses IP source de noeud final de service cloud VPC à accéder à votre compartiment IBM Cloud Object Storage. Lorsque vous configurez des adresses IP autorisées, vous ne pouvez accéder à vos données de compartiment qu'à partir de ces adresses IP, par exemple, dans un pod d'application.

Droits minimaux requis
Rôle d'accès au service Responsable sur le service Red Hat OpenShift on IBM Cloud.
Rôle d'accès au service Auteur sur le service IBM Cloud Object Storage.
  1. Suivez les instructions d'installation du plug-in ibmc Helm. Veillez à installer ibm-object-storage-plugin et à définir l'option bucketAccessPolicy sur true.

  2. Créez une donnée d'identification de service HMAC Manager et une donnée d'identification de service HMAC Writer pour votre instance IBM Cloud Object Storage.

  3. Codez en base64 la valeur apikey des données d'identification Responsable d'IBM Cloud Object Storage.

    echo -n "<cos_manager_apikey>" | base64
    
  4. Codez en base64 les valeurs access-key et secret-key des données d'identification Auteur d'IBM Cloud Object Storage.

    echo -n "<cos_writer_access-key>" | base64
    echo -n "<cos_writer_secret-key>" | base64
    
  5. Créez un fichier de configuration de secret avec les valeurs que vous avez codées. Pour access-key et secret-key, entrez les valeurs access-key et secret-key codées en base64 issues des données d'identification HMAC Auteur que vous avez créées. Pour res-conf-apikey, entrez la clé d'API (apikey) codée en base64 issue des données d'identification HMAC Responsable.

    apiVersion: v1
    kind: Secret
    metadata:
      name: <secret_name>
    type: ibm/ibmc-s3fs
    data:
      access-key: # Enter your base64 encoded COS Writer access-key
      secret-key: # Enter your base64 encoded COS Writer secret-key
      res-conf-apikey: # Enter your base64 encoded COS Manager api-key
    
  6. Créez le secret dans votre cluster.

    oc create -f secret.yaml
    
  7. Vérifiez que le secret a été créé.

    oc get secrets
    
  8. Créez un PVC qui utilise le secret que vous avez créé. Définissez les annotations ibm.io/auto-create-bucket: "true" et ibm.io/auto_cache: "true" pour créer automatiquement un compartiment qui met en cache vos données.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: <pvc_name>
      annotations:
        ibm.io/auto-create-bucket: "true"
        ibm.io/auto-delete-bucket: "false"
        ibm.io/auto_cache: "true"
        ibm.io/bucket: "<bucket_name>"
        ibm.io/secret-name: "<secret_name>"
        ibm.io/secret-namespace: "<secret-namespace>" # By default, the COS plug-in searches for your secret in the same namespace where you create the PVC. If you created your secret in a namespace other than the namespace where you want to create your PVC, enter the namespace where you created your secret.
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 8Gi
      storageClassName: ibmc-s3fs-standard-regional
      volumeMode: Filesystem
    
  9. Obtenez la liste des adresses IP source de noeud final de service cloud pour votre VPC.

    1. Obtenez la liste de vos VPC.

      ibmcloud is vpcs
      
    2. Obtenez les détails de votre VPC et notez vos adresses IP source de noeud final de service cloud.

      ibmcloud is vpc <vpc_ID>
      

      Exemple de sortie

      ...                                              
      Cloud Service Endpoint source IP addresses:    Zone         Address      
                                                  us-south-1   10.249.XXX.XX      
                                                  us-south-2   10.249.XXX.XX     
                                                  us-south-3   10.249.XXX.XX
      
  10. Vérifiez que les adresses IP source de noeud final de service cloud pour votre VPC sont autorisées dans votre compartiment IBM Cloud Object Storage.

  11. Dans votre liste de ressources IBM Cloud Object Storage, sélectionnez votre instance IBM Cloud Object Storage, puis sélectionnez le compartiment indiqué dans votre PVC.

  12. Sélectionnez Règles d'accès > IP autorisées et vérifiez que les adresses IP source de noeud final de service cloud de votre VPC sont affichées.

Vous ne pouvez pas lire ou écrire sur votre seau à partir de la console. Vous pouvez uniquement accéder à votre compartiment à partir d'un pod d'application sur votre cluster.

  1. Créez un fichier YAML de déploiement qui référence le PVC que vous avez créé.

  2. Créez l'application dans votre cluster.

oc create -f app.yaml
  1. Vérifiez que votre pod d'application est Running.
oc get pods | grep <app_name>
  1. Vérifiez que votre volume est monté et que vous pouvez lire et écrire dans votre compartiment COS.

  2. Connectez-vous à votre pod d'application.

    oc exec -it <pod_name> bash
    
  3. Vérifiez que votre compartiment COS est monté à partir de votre pod d'application et que vous pouvez lire et écrire dans votre compartiment COS. Exécutez la commande df pour afficher les disques disponibles dans votre système. Votre compartiment COS affiche le type de système de fichiers s3fs et le chemin de montage spécifié dans votre PVC.

    df
    

    Dans cet exemple, le compartiment COS est monté sur /cos-vpc.

    Filesystem        1K-blocks    Used    Available Use% Mounted on
    overlay           102048096 9071556     87786140  10% /
    tmpfs                 65536       0        65536   0% /dev
    tmpfs               7565792       0      7565792   0% /sys/fs/cgroup
    shm                   65536       0        65536   0% /dev/shm
    /dev/vda2         102048096 9071556     87786140  10% /etc/hosts
    s3fs           274877906944       0 274877906944   0% /cos-vpc
    tmpfs               7565792      44      7565748   1% /run/secrets/kubernetes.io/serviceaccount
    tmpfs               7565792       0      7565792   0% /proc/acpi
    tmpfs               7565792       0      7565792   0% /proc/scsi
    tmpfs               7565792       0      7565792   0% /sys/firmware
    
  4. Accédez au répertoire dans lequel votre compartiment COS est monté. Dans cet exemple, le compartiment est monté sur /cos-vpc.

    cd cos-vpc
    
  5. Ecrivez un fichier test.txt dans votre compartiment COS et répertoriez les fichiers pour vérifier que le fichier a été écrit.

    touch test.txt && ls
    
  6. Supprimez le fichier et déconnectez-vous de votre pod d'application.

    rm test.txt && exit