VPC: Configuración de direcciones IP autorizadas para IBM Cloud Object Storage

Nube privada virtual

Puede autorizar a las direcciones IP de origen de punto final de servicio de nube de VPC a que accedan a su grupo de IBM Cloud Object Storage. Cuando configure direcciones IP autorizadas, solo podrá acceder a los datos de grupo desde dichas direcciones IP; por ejemplo, en un pod de app.

Permisos mínimos necesarios
Rol de acceso al servicio de Gestor para el servicio Red Hat OpenShift on IBM Cloud.
Rol de acceso al servicio de Escritor para el servicio IBM Cloud Object Storage.
  1. Siga las instrucciones para instalar el plugin de Helm ibmc. Asegúrese de instalar ibm-object-storage-plugin y de configurar la opción bucketAccessPolicy en true.

  2. Cree una credencial de servicio HMAC de Manager y una credencial de servicio HMAC de Writer para la instancia de IBM Cloud Object Storage.

  3. Codifique la apikey desde sus credenciales de Gestor de IBM Cloud Object Storage en base64.

    echo -n "<cos_manager_apikey>" | base64
    
  4. Codifique access-key y secret-key desde sus credenciales de Escritor de IBM Cloud Object Storage en base64.

    echo -n "<cos_writer_access-key>" | base64
    echo -n "<cos_writer_secret-key>" | base64
    
  5. Cree un archivo de configuración secreto con los valores que ha codificado. Para access-key y secret-key, especifique access-key codificada en base64 y secret-key de las credenciales de HMAC de Escritor que ha creado. Para res-conf-apikey, especifique la apikey codificada en base64 de las credenciales de HMAC de Gestor.

    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. Cree el secreto en el clúster.

    oc create -f secret.yaml
    
  7. Verifique que se ha creado el secreto.

    oc get secrets
    
  8. Cree una PVC que utilice el secreto que ha creado. Establezca las anotaciones ibm.io/auto-create-bucket: "true" e ibm.io/auto_cache: "true" para crear automáticamente un grupo que almacene sus datos en memoria caché.

    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. Obtenga una lista de las direcciones IP de origen de punto final de servicio de nube de la VPC.

    1. Obtenga una lista de sus VPC.

      ibmcloud is vpcs
      
    2. Obtenga los detalles de la VPC y anote las direcciones IP de origen del punto final de servicio en la nube.

      ibmcloud is vpc <vpc_ID>
      

      Salida de ejemplo

      ...                                              
      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. Verifique que las direcciones IP de origen de punto final de servicio de nube de la VPC están autorizadas en el grupo de IBM Cloud Object Storage.

  11. En la lista de recursos de IBM Cloud Object Storage, seleccione la instancia de IBM Cloud Object Storage y seleccione el grupo que ha especificado en la PVC.

  12. Seleccione Políticas de acceso > IP autorizadas y verifique que se muestran las direcciones IP de origen de punto final de servicio de nube de la VPC.

No puede leer ni escribir en el grupo desde la consola. Solo puede acceder al grupo desde dentro de un pod de app en el clúster.

  1. Cree un YAML de despliegue que haga referencia a la PVC que ha creado.

  2. Cree la app en el clúster.

oc create -f app.yaml
  1. Verifique que el pod de la app está Running.
oc get pods | grep <app_name>
  1. Verifique que el volumen está montado y que puede leer y escribir en el grupo de COS.

  2. Inicie una sesión en el pod de app.

    oc exec -it <pod_name> bash
    
  3. Verifique que el grupo de COS está montado desde el pod de app y que puede leer y escribir en el grupo de COS. Ejecute el mandato df (disk free) para ver los discos disponibles en el sistema. El grupo de COS muestra el tipo de sistema de archivos s3fs y la vía de acceso de montaje que ha especificado en la PVC.

    df
    

    En este ejemplo, el grupo de COS está montado en /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. Cambie al directorio donde está montado el grupo de COS. En este ejemplo, el grupo está montado en /cos-vpc.

    cd cos-vpc
    
  5. Escriba un archivo test.txt en el grupo de COS y obtenga una lista de los archivos para verificar que el archivo se ha escrito.

    touch test.txt && ls
    
  6. Elimine el archivo y cierre la sesión del pod de la app.

    rm test.txt && exit