IBM Cloud Object Storage-Instanz einrichten

IBM Cloud Object Storage ist ein persistenter, hoch verfügbarer Speicher, den Sie an Ihre Apps anhängen können. Das Plug-in ist ein Kubernetes-Flex-Volume-Plug-in, das in der Cloud befindliche Object Storage-Buckets mit Pods in Ihrem Cluster verbindet. Informationen, die mit IBM Cloud Object Storage gespeichert werden, werden während der Übertragung und im Ruhezustand verschlüsselt, über viele geografische Standorte verteilt und über HTTP über eine REST-API aufgerufen.

Wenn Sie IBM Cloud Object Storage in einem privaten Cluster ohne Zugriff auf ein öffentliches Netz verwenden möchten, müssen Sie Ihre IBM Cloud Object Storage-Serviceinstanz für die HMAC-Authentifizierung einrichten. Wenn Sie die HMAC-Authentifizierung nicht verwenden wollen, müssen Sie allen ausgehenden Netzverkehr über Port 443 öffnen, damit das Plug-in in einem privaten Cluster ordnungsgemäß funktioniert.

Erstellen einer IBM Cloud Object Storage-Instanz

Bevor Sie mit der Verwendung von Objektspeicher in Ihrem Cluster beginnen, müssen Sie eine IBM Cloud Object Storage-Serviceinstanz in Ihrem Konto bereitstellen.

Das IBM Cloud Object Storage-Plug-in funktioniert mit jedem s3-API-Endpunkt. Beispielsweise möchten Sie vielleicht einen lokalen Cloud Object Storage-Server wie Minio verwenden oder eine Verbindung zu einem s3-API-Endpunkt herstellen, den Sie bei einem anderen Cloud-Anbieter eingerichtet haben, anstatt eine Instanz des IBM Cloud Object Storage-Dienstes zu nutzen.

Führen Sie die folgenden Schritte aus, um eine IBM Cloud Object Storage-Serviceinstanz zu erstellen. Wenn Sie einen lokalen Cloud Object Storage-Server oder einen anderen s3-API-Endpunkt verwenden möchten, lesen Sie die Informationen in der Providerdokumentation, um Ihre Cloud Object Storage-Instanz einzurichten.

  1. Öffnen Sie die IBM Cloud Object Storage-Katalogseite.
  2. Geben Sie einen Namen für Ihre Serviceinstanz ein (zum Beispiel cos-backup) und wählen Sie dieselbe Ressourcengruppe wie die aus, in der sich der Cluster befindet. Zum Anzeigen der Ressourcengruppe Ihres Clusters führen Sie ibmcloud ks cluster get --cluster CLUSTER_NAME_OR_ID aus.
  3. Sehen Sie sich die Tarifoptionen an, um Informationen zu den Preisen zu erhalten, und wählen Sie einen Tarif aus.
  4. Klicken Sie auf Erstellen. Die Seite mit den Servicedetails wird geöffnet.
  5. Informationen zum weiteren Einrichten von Object Storage zur Verwendung mit Ihrem Cluster finden Sie unter Serviceberechtigungsnachweise erstellen.

IBM Cloud Object Storage-Serviceberechtigungsnachweise erstellen

Bevor Sie beginnen, erstellen Sie Ihre Objektspeicherserviceinstanz.

  1. Klicken Sie in der Navigation auf der Seite mit den Servicedetails für Ihre Object Storage-Instanz auf Serviceberechtigungsnachweise.
  2. Klicken Sie auf Neuer Berechtigungsnachweis. Ein Dialogfeld wird geöffnet.
  3. Geben Sie einen Namen für Ihre Berechtigungsnachweise ein.
  4. Wählen Sie in der Dropdown-Liste Rolle die Object Storage-Zugriffsrolle für die Aktionen aus, auf die Speicherbenutzer in Ihrem Cluster Zugriff haben sollen. Sie müssen mindestens die Servicezugriffsrolle Writer auswählen, um das Feature auto-create-bucket für dynamisches Einrichten verwenden zu können. Wenn Sie Reader auswählen, können Sie die Berechtigungsnachweise nicht verwenden, um Buckets in IBM Cloud Object Storage zu erstellen und Daten in diese zu schreiben.
  5. Optional: Klicken Sie auf „Erweiterte Optionen“ und schalten Sie den Schalter „HMAC-Anmeldedaten einbeziehen“ auf „Ein“, um HMAC-Anmeldedaten für den Dienst „ IBM Cloud Object Storage “ zu erstellen. Durch die HMAC-Authentifizierung erhält die OAuth2-Authentifizierung eine zusätzliche Sicherheitsebene, da verhindert wird, dass verfallene oder zufällig erstellte OAuth2-Tokens verwendet werden. Wichtig: Wenn Sie einen nur privaten Cluster ohne öffentlichen Zugriff haben, müssen Sie die HMAC-Authentifizierung verwenden, damit Sie auf den IBM Cloud Object Storage-Service über das private Netz zugreifen können.
  6. Klicken Sie auf Hinzufügen. Ihre neuen Berechtigungsnachweise befinden sich in der Tabelle Serviceberechtigungsnachweise.
  7. Klicken Sie auf Berechtigungsnachweise anzeigen.
  8. Beachten Sie, dass Sie OAuth2-Token verwenden apikey müssen, um sich beim IBM Cloud Object Storage-Dienst zu authentifizieren. Beachten Sie bei der HMAC-Authentifizierung im Abschnitt cos_hmac_keys die und access_key_id die secret_access_key.
  9. Speichern Sie Ihre Serviceberechtigungsnachweise in einem geheimen Kubernetes-Schlüssel in dem Cluster, um den Zugriff auf Ihre IBM Cloud Object Storage-Serviceinstanz zu ermöglichen.

Geheimen Schlüssel für die Berechtigungsnachweise des Objektspeicherservice erstellen

Um auf Ihre IBM Cloud Object Storage-Serviceinstanz für das Lesen und Schreiben von Daten zugreifen zu können, müssen Sie die Serviceberechtigungsnachweise in einem geheimen Kubernetes-Schlüssel sicher speichern. Das IBM Cloud Object Storage-Plug-in verwendet diese Berechtigungsnachweise für alle Lese- und Schreiboperationen in Ihrem Bucket.

Führen Sie die folgenden Schritte aus, um einen geheimen Kubernetes-Schlüssel für die Berechtigungsnachweise einer IBM Cloud Object Storage-Serviceinstanz zu erstellen. Wenn Sie planen, einen lokalen Cloud Object Storage-Server oder einen anderen s3-API-Endpunkt zu verwenden, erstellen Sie einen geheimen Kubernetes-Schlüssel mit den entsprechenden Berechtigungsnachweisen.

Voraussetzungen

  • Stellen Sie sicher, dass Sie über die Servicezugriffsrolle Manager für den Cluster verfügen.
  • Richten Sie Ihren KMS-Provider ein.
  • Rufen Sie die apikey, die und access_key_id die secret_access_key Ihrer ab IBM Cloud Object Storage Anmeldedaten für Dienste. Beachten Sie, dass die Serviceberechtigungsnachweise für die Bucketoperationen, die Ihre App ausführen muss, ausreichen müssen. Wenn Ihre App beispielsweise Daten aus einem Bucket ausliest, müssen die in Ihrem Secret angezeigten Anmeldedaten des Dienstes mindestens über Leseberechtigungen verfügen.

Geheimen Schlüssel für Objektspeicher in Ihrem Cluster erstellen

Führen Sie die folgenden Schritte durch, um einen geheimen Schlüssel in Ihrem Cluster für IBM Cloud Object Storagezu erstellen.

Wenn Sie die Key Protect-Verschlüsselung beim Erstellen neuer Buckets aus PVCs in Ihrem Cluster integrieren möchten, müssen Sie den CRN des Rootschlüssels bei der Erstellung Ihrer Geheimer IBM Cloud Object Storage-Schlüssel einschließen. Beachten Sie, dass die Verschlüsselung Key Protect nicht zu vorhandenen Buckets hinzugefügt werden kann. Die Verschlüsselung kann nur verwendet werden, wenn Sie neue Buckets erstellen. Wenn der Rootschlüssel, der für die Verschlüsselung verwendet wird, gelöscht wird, ist kein Zugriff auf alle Dateien in den zugehörigen Buckets möglich.

  1. Rufen Sie die GUID Ihrer IBM Cloud Object Storage-Serviceinstanz ab.

    ibmcloud resource service-instance <service_name> | grep GUID
    
  2. Erstellen Sie einen geheimen Kubernetes-Schlüssel, um Ihre Berechtigungsnachweise zu speichern. Wählen Sie eines der folgenden Beispiele aus, um Ihren geheimen Schlüssel zu erstellen.

    • Beispiel für einen create secret-Befehl, der einen API-Schlüssel verwendet.
        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>
        ```
    * Beispiel für einen `create secret`-Befehl, der die HMAC-Authentifizierung verwendet.
    ```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>    
        ```
    * Beispielkonfigurationsdatei für geheime Schlüssel zum Aktivieren der Verschlüsselung mit Ihrem KMS-Provider.
        1. Speichern Sie die folgende YAML-Datei in einer Datei.
            ```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`
            :   Geben Sie den API-Schlüssel ein, den Sie zuvor aus Ihren IBM Cloud Object Storage-Serviceberechtigungsnachweisen abgerufen haben. Wenn Sie die HMAC-Authentifizierung verwenden möchten, geben Sie stattdessen `access-key` und `secret-key` an.
    
            `access-key`
            :   Geben Sie die Zugriffsschlüssel-ID ein, die Sie zuvor aus Ihren IBM Cloud Object Storage-Serviceberechtigungsnachweisen abgerufen haben. Wenn Sie die OAuth2-Authentifizierung verwenden möchten, geben Sie stattdessen `api-key` an.
    
            `secret-key`
            :   Geben Sie den geheimen Zugriffsschlüssel ein, den Sie zuvor aus Ihren IBM Cloud Object Storage-Serviceberechtigungsnachweisen abgerufen haben. Wenn Sie die OAuth2-Authentifizierung verwenden möchten, geben Sie stattdessen `api-key` an.
    
            `service-instance-id`
            :   Geben Sie die GUID der IBM Cloud Object Storage-Serviceinstanz ein, die Sie zuvor abgerufen haben.
    
            `kp-root-key-crn`
            :   Geben Sie den CRN des base64-codierten Key Protect-Rootschlüssels ein, um Key Protect-Verschlüsselung zu verwenden.
    
        1. Wenden Sie das Secret auf Ihren Cluster an.
            ```sh {: pre}
            kubectl apply -f <secret_name>
            ```
    
    
  3. Rufen Sie die geheimen Schlüssel in Ihrem Cluster ab und bestätigen Sie die Ausgabe.

    kubectl get secret
    

    Beispielausgabe

    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
    ...
    
  4. Installieren Sie das IBM Cloud Object Storage-Plug-in oder, falls Sie das Plug-in bereits installiert haben, entscheiden Sie über die Konfiguration für Ihr IBM Cloud Object Storage-Bucket.

  5. Optional: Fügen Sie Ihren geheimen Schlüssel zu den Standardspeicherklassen hinzu. Speicherklassenreferenz

Zuweisung von vertrauenswürdigen Profilen zum COS-Speicher

Sie können vertrauenswürdige Profile verwenden, um verschiedenen IBM Cloud Identitäten Zugriff auf Ressourcen in Ihrem Konto, einschließlich Ihrer Speicherlösungen, zu gewähren. Vertrauenswürdige Profile zentralisieren die Zugriffskontrolle, machen langlebige API-Schlüssel überflüssig und ermöglichen es Ihnen, die Berechtigungen auf das genaue Minimum zu beschränken, das für eine bestimmte Aufgabe erforderlich ist. Weitere Informationen finden Sie unter Konfigurieren eines vertrauenswürdigen Profils für Speicherkomponenten.

Einschränkungen

  • IBM Cloud Object Storage basiert auf dem Dateisystem s3fs-fuse. Eine Liste der Einschränkungen finden Sie im s3fs-fuse-Repository.
  • Für den Zugriff auf eine Datei in IBM Cloud Object Storage als Benutzer ohne Rootberechtigung müssen Sie die Werte runAsUser und fsGroup in Ihrer Bereitstellung auf den gleichen Wert setzen.