Buckets für einen SFTP-Nutzer aktualisieren

In diesem Dokument wird beschrieben, wie Sie die Cloud Storage-Buckets für einen Cloud FTP-Nutzer aktualisieren. Dazu gehört auch, auf welche Buckets ein Nutzer zugreifen kann und welche Berechtigungen er hat.

Im Allgemeinen sind die folgenden Schritte erforderlich, um die Buckets für einen Nutzer zu aktualisieren:

  1. Aktualisieren Sie die IAM-Rollen für das Dienstkonto des Nutzers.
  2. Ordnen Sie die Verzeichnisse des Nutzers den aktualisierten Buckets zu.

Hinweis

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle FTP-Administrator (roles/ftp.admin) für Ihr Projekt zu gewähren, damit Sie die Berechtigung zum Aktualisieren von SFTP-Nutzern erhalten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die ftp.users.update Berechtigung, die zum Aktualisieren von SFTP-Nutzern erforderlich ist.

Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

IAM-Rollen für das Dienstkonto eines Nutzers aktualisieren

Wenn Sie ändern, auf welche Buckets ein Nutzer zugreifen kann, oder wenn Sie die Berechtigung ändern, die ein Nutzer für eine vorhandene Verzeichniszuordnung hat, müssen Sie das Dienstkonto des Nutzers mit den entsprechenden IAM-Rollen aktualisieren. Gehen Sie so vor:

  1. Rufen Sie die E-Mail-Adresse des Dienstkontos des Nutzers ab. Eine Anleitung finden Sie unter Details zu einem Nutzer abrufen.

  2. Wenn Sie der Verzeichniszuordnung neue Buckets hinzufügen oder den Zugriff auf vorhandene Buckets erhöhen, gehen Sie so vor:

    1. Gewähren Sie sich selbst die Rolle „Storage Bucket Viewer“ (roles/storage.bucketViewer) für den Bucket, falls Sie sie noch nicht haben:

      gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
          --member="user:ADMINISTRATOR_EMAIL" \
          --role="roles/storage.bucketViewer"

      Ersetzen Sie Folgendes:

      • ADMINISTRATOR_EMAIL: die E-Mail-Adresse des Hauptkontos, das den SFTP-Nutzer erstellt. Wenn Sie den Nutzer erstellen (im Gegensatz zu einer Anwendung), ist dieser Wert die E-Mail Adresse, mit der Sie auf zugreifen Google Cloud.

      • BUCKET_NAME: der Name des Buckets.

    2. Gewähren Sie sich selbst die Rolle „Storage Object Viewer“ (roles/storage.objectViewer) für den Bucket, falls Sie sie noch nicht haben:

      gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
          --member="user:ADMINISTRATOR_EMAIL" \
          --role="roles/storage.objectViewer"
    3. Gewähren Sie dem Dienstkonto des Nutzers die IAM-Rollen, die für den Zugriff auf die Buckets erforderlich sind:

      gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
        --member="serviceAccount:SERVICE_ACCOUNT" \
        --role="ROLE_TO_GRANT"

      Ersetzen Sie Folgendes:

      • SERVICE_ACCOUNT: die E-Mail-Adresse des Dienstkontos des Nutzers.
      • ROLE_TO_GRANT: die zu gewährende IAM-Rolle. Geben Sie eine der folgenden Rollen an:

        • Verwenden Sie für schreibgeschützten Zugriff die Rolle roles/storage.objectViewer.
        • Verwenden Sie für Lese- und Schreibzugriff die Rolle roles/storage.objectAdmin.
    4. Wiederholen Sie die vorherigen Schritte für jeden Bucket, auf den der Nutzer zugreifen muss.

  3. Wenn Sie Buckets aus der Verzeichniszuordnung entfernen oder den Zugriff auf vorhandene Buckets verringern, heben Sie den Zugriff für das Dienstkonto des Nutzers auf:

    gcloud storage buckets remove-iam-policy-binding gs://BUCKET_NAME \
      --member="serviceAccount:SERVICE_ACCOUNT" \
      --role="ROLE_TO_REVOKE"

    Ersetzen Sie ROLE_TO_REVOKE durch die IAM-Rolle, die Sie aufheben möchten.

    Wiederholen Sie diesen Schritt für jeden Bucket und jede IAM-Rolle, auf die der Nutzer keinen Zugriff mehr haben soll.

Buckets eines Nutzers aktualisieren

REST

Verwenden Sie die servers.users.patch Methode, um die Buckets für einen SFTP-Nutzer zu aktualisieren. Geben Sie im Abfrageparameter updateMask das Feld storageDirectoryMappings an.

Ersetzen Sie vor der Verwendung von Anfragedaten, Folgendes:

  • PROJECT_ID: die Google Cloud Projekt-ID des Servers.
  • LOCATION_ID: der Standort des Servers, z. B. us-west1.
  • SERVER_ID: die Server-ID.
  • USERNAME: der Nutzername des SFTP-Nutzers.
  • BUCKET_NAME: der Name eines Buckets, auf den der SFTP-Nutzer Zugriff hat, z. B. example-bucket. Lassen Sie gs:// weg.
  • Optional: BUCKET_PREFIX: der Pfad eines Ordners im Bucket, der als das Stammverzeichnis für diese Verzeichniszuordnung festgelegt werden soll. Wenn Sie diesen Wert weglassen, verwendet Cloud FTP das Bucket-Stammverzeichnis.
  • DIRECTORY: der logische Zielverzeichnispfad, der dem SFTP-Nutzer angezeigt wird. Beispiel: /home/uploads. Wenn Sie diesen Wert weglassen, legt Cloud FTP das Zielverzeichnis auf / fest.

    Wenn Sie mehrere Buckets oder Ordner zuordnen, geben Sie für jede Zuordnung einen eindeutigen Verzeichnispfad an.

    Verschachtelte logische Verzeichnisse werden nicht unterstützt. Wenn Sie mehrere Zuordnungen für ein Verzeichnis angeben, geben Sie die Verzeichnisse in einer flachen Struktur an, nicht in einer verschachtelten Struktur. Verwenden Sie beispielsweise /dir1 und /dir2 anstelle von /dir1 und /dir1/dir2.

  • SFTP_PERMISSION: die Zugriffsebene für das Verzeichnis. Setzen Sie diesen Wert für schreibgeschützten Zugriff auf READ_ONLY. Setzen Sie diesen Wert für Lese- und Schreibzugriff auf READ_WRITE.

Wenn Sie einem Nutzer Zugriff auf mehrere Buckets gewähren möchten, geben Sie in der storageDirectoryMappings Liste mehrere Bucket-Zuordnungen an.

HTTP-Methode und URL:

PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID/users/USERNAME?updateMask=storageDirectoryMappings

JSON-Text der Anfrage:

{
  "storageDirectoryMappings": [
    {
      "bucket": "BUCKET_NAME",
      "bucketPrefix": "BUCKET_PREFIX",
      "directory": "DIRECTORY",
      "permission": "SFTP_PERMISSION"
    }
  ]
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Die Antwort identifiziert einen Vorgang mit langer Ausführungszeit. Es dauert einige Sekunden, bis der Nutzer aktualisiert wird.

Wenn ein Nutzer eine aktive SFTP-Verbindung hat, muss er sich möglicherweise trennen und dann wieder verbinden, damit die aktualisierten Bucket-Einstellungen wirksam werden.