VPC: Configurazione degli indirizzi IP autorizzati per IBM Cloud Object Storage

Cloud virtuale privato

È possibile autorizzare gli indirizzi IP di origine del VPC Cloud Service Endpoint ad accedere al bucket IBM Cloud Object Storage. Quando configuri gli indirizzi IP autorizzati, puoi accedere ai tuoi dati del bucket solo da questi indirizzi IP; ad esempio, in un pod dell'applicazione.

Autorizzazioni minime richieste
Ruolo di accesso al servizio Gestore per il servizio Red Hat OpenShift on IBM Cloud.
Il ruolo di accesso del servizio Writer per il servizio IBM Cloud Object Storage.
  1. Segui le istruzioni per installare il plug-in ibmc Helm. Assicurarsi di installare ibm-object-storage-plugin e impostare l'opzione bucketAccessPolicy su true.

  2. Crea una credenziale del servizio Manager HMAC e una credenziale del servizio Writer HMAC per la tua istanza IBM Cloud Object Storage.

  3. Codifica le apikey dalle tue credenziali del gestore IBM Cloud Object Storage a base64.

    echo -n "<cos_manager_apikey>" | base64
    
  4. Codifica le credenziali del writer access-key e secret-key da IBM Cloud Object Storage a base64.

    echo -n "<cos_writer_access-key>" | base64
    echo -n "<cos_writer_secret-key>" | base64
    
  5. Crea un file di configurazione segreto con i valori che hai codificato. Per access-key e secret-key, immetti la codifica base64 access-key e secret-key dalle credenziali HMAC del programma di scrittura che hai creato. Per res-conf-apikey, immetti la codifica base64 apikey dalle credenziali HMAC del gestore.

    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. Crea il segreto nel tuo cluster.

    oc create -f secret.yaml
    
  7. Verificare che il segreto sia stato creato.

    oc get secrets
    
  8. Crea una PVC che utilizza il segreto che hai creato. Imposta le annotazioni ibm.io/auto-create-bucket: "true" e ibm.io/auto_cache: "true" per creare automaticamente un bucket che memorizza nella cache i tuoi dati.

    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. Ottieni un elenco degli indirizzi IP di origine dell'endpoint del servizio cloud del tuo VPC.

    1. Ottieni un elenco dei tuoi VPC.

      ibmcloud is vpcs
      
    2. Ottieni i dettagli del tuo VPC e prendi nota dei tuoi indirizzi IP di origine dell'endpoint del servizio cloud.

      ibmcloud is vpc <vpc_ID>
      

      Output di esempio

      ...                                              
      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. Verifica che gli indirizzi IP di origine dell'endpoint del tuo VPC siano autorizzati nel tuo bucket IBM Cloud Object Storage.

  11. Dal tuo IBM Cloud Object Storage, seleziona la tua istanza IBM Cloud Object Storage e seleziona il bucket che hai specificato nella tua PVC.

  12. Seleziona Politiche di accesso > IP autorizzati e verifica che siano visualizzati gli indirizzi IP di origine dell'endpoint del servizio cloud del tuo VPC.

Non puoi leggere o scrivere nel tuo bucket dalla console. Puoi accedere al tuo bucket solo dall'interno di un pod dell'applicazione sul cluster.

  1. Crea un YAML di distribuzione che fa riferimento alla PVC che hai creato.

  2. Creare l'applicazione nel cluster.

oc create -f app.yaml
  1. Verifica che il tuo pod dell'applicazione sia Running.
oc get pods | grep <app_name>
  1. Verifica che il tuo volume sia montato e che tu possa leggere e scrivere nel tuo bucket COS.

  2. Accedi al tuo pod dell'applicazione.

    oc exec -it <pod_name> bash
    
  3. Verifica che il tuo bucket COS sia montato dal tuo pod dell'applicazione e che tu possa leggere e scrivere nel tuo bucket COS. Eseguire il comando df per visualizzare i dischi disponibili nel proprio sistema. Il tuo bucket COS visualizza il tipo di filesystem s3fs e il percorso di montaggio che hai specificato nella tua PVC.

    df
    

    In questo esempio, il bucket COS è montato in /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. Passa alla directory in cui è montato il tuo bucket COS. In questo esempio il bucket è montato in /cos-vpc.

    cd cos-vpc
    
  5. Scrivere un file test.txt nel bucket COS ed elencare i file per verificare che il file sia stato scritto.

    touch test.txt && ls
    
  6. Rimuovere il file e scollegarsi dal pod dell'applicazione.

    rm test.txt && exit