VPC: Autorisierte IP-Adressen für IBM Cloud Object Storage konfigurieren

Virtuelle private Cloud

Sie können Ihre IP-Quellenadressen für VPC-Cloud-Serviceendpunkte für den Zugriff auf Ihr IBM Cloud Object Storage-Bucket autorisieren. Wenn Sie autorisierte IP-Adressen einrichten, können Sie nur von diesen IP-Adressen aus auf Ihre Bucketdaten zugreifen (z. B. in einem App-Pod).

Erforderliche Mindestberechtigungen
Servicezugriffsrolle Manager für den Red Hat OpenShift on IBM Cloud-Service.
Servicezugriffsrolle Writer für den IBM Cloud Object Storage-Service.
  1. Folgen Sie den Anweisungen zur Installation des ibmc Helm-Plug-ins.. Stellen Sie sicher, dass Sie ibm-object-storage-plugin installieren und die Option bucketAccessPolicy auf true setzen.

  2. Erstellen Sie einen HMAC-Serviceberechtigungsnachweis Manager und einen HMAC-Serviceberechtigungsnachweis Writer für Ihre IBM Cloud Object Storage-Instanz.

  3. Codieren Sie apikey von Ihren IBM Cloud Object Storage Manager-Berechtigungsnachweisen in Base64.

    echo -n "<cos_manager_apikey>" | base64
    
  4. Codieren Sie access-key und secret-key von Ihren IBM Cloud Object Storage-Writer-Berechtigungsnachweisen in Base64.

    echo -n "<cos_writer_access-key>" | base64
    echo -n "<cos_writer_secret-key>" | base64
    
  5. Erstellen Sie eine Konfigurationsdatei für den geheimen Schlüssel mit den Werten, die Sie codiert haben. Geben Sie für access-key und secret-key den Base64-codierten access-key und secret-key von den HMAC-Writer-Berechtigungsnachweisen ein, die Sie erstellt haben. Geben Sie für res-conf-apikey den Base64-codierten Wert für apikey von Ihren HMAC-Manager-Berechtigungsnachweisen ein.

    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. Erstellen Sie den geheimen Schlüssel in Ihrem Cluster.

    oc create -f secret.yaml
    
  7. Überprüfen Sie, ob der geheime Schlüssel erstellt wurde.

    oc get secrets
    
  8. Erstellen Sie eine PVC, die den von Ihnen erstellten geheimen Schlüssel verwendet. Stellen Sie die Annotationen ibm.io/auto-create-bucket: "true" und ibm.io/auto_cache: "true" ein, um automatisch ein Bucket zu erstellen, das Ihre Daten zwischenspeichert.

    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. Rufen Sie eine Liste der Quellen-IP-Adressen des Cloud-Serviceendpunkts Ihrer VPC ab.

    1. Rufen Sie eine Liste Ihrer VPCs ab.

      ibmcloud is vpcs
      
    2. Rufen Sie die Details Ihrer VPC ab und notieren Sie sich die Quellen-IP-Adressen des Cloud-Serviceendpunkts.

      ibmcloud is vpc <vpc_ID>
      

      Beispielausgabe

      ...                                              
      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. Stellen Sie sicher, dass die Quellen-IP-Adressen des Cloud-Serviceendpunkts Ihrer VPC in Ihrem IBM Cloud Object Storage-Bucket autorisiert sind.

  11. Wählen Sie aus Ihrer IBM Cloud Object Storage-Ressourcenliste Ihre IBM Cloud Object Storage-Instanz aus und wählen Sie das Bucket aus, das Sie in Ihrer PVC angegeben haben.

  12. Wählen Sie Zugriffsrichtlinien > Autorisierte IPs aus und stellen Sie sicher, dass die Quellen-IP-Adressen des Cloud-Serviceendpunkts Ihrer VPC angezeigt werden.

Sie können Ihr Bucket nicht über die Konsole lesen oder in das Bucket schreiben. Sie können nur von einem App-Pod in Ihrem Cluster aus auf das Bucket zugreifen.

  1. Erstellen Sie eine YAML-Bereitstellungsdatei, die auf die von Ihnen erstellte PVC verweist.

  2. Erstellen Sie die App in Ihrem Cluster.

oc create -f app.yaml
  1. Überprüfen Sie, ob sich Ihr App-Pod im Status Running befindet.
oc get pods | grep <app_name>
  1. Überprüfen Sie, ob Ihr Datenträger angehängt ist und ob Sie Ihr COS-Bucket lesen und darin schreiben können.

  2. Melden Sie sich bei Ihrem App-Pod an.

    oc exec -it <pod_name> bash
    
  3. Stellen Sie sicher, dass Ihr COS-Bucket von Ihrem App-Pod angehängt ist und dass Sie in Ihrem COS-Bucket lesen und schreiben können. Führen Sie den Befehl df aus, um die verfügbaren Platten in Ihrem System anzuzeigen. Ihr COS-Bucket zeigt den Dateisystemtyp s3fs und den Mountpfad an, den Sie in Ihrer PVC angegeben haben.

    df
    

    In diesem Beispiel wird das COS-Bucket unter /cos-vpc angehängt.

    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. Wechseln Sie in das Verzeichnis, bei dem Ihr COS-Bucket angehängt ist. In diesem Beispiel wird das Bucket an der Position /cos-vpc angehängt.

    cd cos-vpc
    
  5. Schreiben Sie eine Datei test.txt in Ihr COS-Bucket und listen Sie die Dateien auf, um zu überprüfen, ob die Datei geschrieben wurde.

    touch test.txt && ls
    
  6. Entfernen Sie die Datei und melden Sie sich bei Ihrem App-Pod ab.

    rm test.txt && exit