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 Großen und Ganzen sind das die Schritte zum Aktualisieren der Buckets für einen Nutzer:

  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

Wenn Sie die Berechtigung zum Aktualisieren von SFTP-Nutzern erhalten möchten, bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „FTP-Administrator“ (roles/ftp.admin) für Ihr Projekt zu gewähren. 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. So gehen Sie 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 Prinzipals, der 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 den Lesezugriff die Rolle roles/storage.objectViewer.
        • Verwenden Sie für den 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

gcloud

Führen Sie den gcloud alpha storage ftp users update Befehl aus, um die Buckets für einen SFTP-Nutzer zu aktualisieren.

Ersetzen Sie vor der Verwendung der Befehlsdaten unten Folgendes:

  • USERNAME: der Nutzername des SFTP-Nutzers.
  • LOCATION_ID: der Standort des Servers, z. B. us-west1.
  • SERVER_ID: die Server-ID.
  • 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 Stammverzeichnis für diese Verzeichniszuordnung festgelegt werden soll. Wenn Sie das Attribut bucket_prefix weglassen, verwendet Cloud FTP das Bucket-Stammverzeichnis.
  • DIRECTORY: der logische Zielverzeichnispfad, der dem SFTP-Nutzer angezeigt wird. Beispiel: /home/uploads.

    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 den Lesezugriff auf READ_ONLY. Setzen Sie diesen Wert für den Lese- und Schreibzugriff auf READ_WRITE.

Wenn Sie einem Nutzer Zugriff auf mehrere Buckets gewähren möchten, geben Sie das --storage-directory-mapping Flag mehrmals an, mit einer Verzeichniszuordnung für jeden Bucket.

Führen Sie den folgenden Befehl aus:

Linux, macOS oder Cloud Shell

gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID \
    --server=SERVER_ID \
    --storage-directory-mapping=bucket=BUCKET_NAME,bucket_prefix=BUCKET_PREFIX,directory=DIRECTORY,permission=SFTP_PERMISSION

Windows (PowerShell)

gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID `
    --server=SERVER_ID `
    --storage-directory-mapping=bucket=BUCKET_NAME,bucket_prefix=BUCKET_PREFIX,directory=DIRECTORY,permission=SFTP_PERMISSION

Windows (cmd.exe)

gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID ^
    --server=SERVER_ID ^
    --storage-directory-mapping=bucket=BUCKET_NAME,bucket_prefix=BUCKET_PREFIX,directory=DIRECTORY,permission=SFTP_PERMISSION
Es dauert einige Sekunden, bis der Nutzer aktualisiert ist.

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.

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 der 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 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 den Lesezugriff auf READ_ONLY. Setzen Sie diesen Wert für den 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 ist.

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.