Dienstkonto für einen SFTP-Nutzer aktualisieren

In diesem Dokument wird beschrieben, wie Sie das Dienstkonto für einen Cloud FTP-Nutzer aktualisieren. Das Dienstkonto greift im Namen des Nutzers auf Cloud Storage-Ressourcen zu.

Im Großen und Ganzen sind das die Schritte zum Aktualisieren des Dienstkontos für einen Nutzer:

  1. Konfigurieren Sie ein Dienstkonto mit den entsprechenden IAM-Rollen.
  2. Aktualisieren Sie das Dienstkonto, das mit dem Nutzer verknüpft ist.

Wir empfehlen, für jeden Nutzer ein eigenes Dienstkonto zu verwenden, damit Sie den SFTP-Zugriff für jeden Nutzer separat verwalten können.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die FTP-Administrator (roles/ftp.admin) IAM-Rolle für Ihr Projekt zuzuweisen, um die Berechtigung zu erhalten, die Sie zum Aktualisieren von SFTP-Nutzern benötigen. 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.

Dienstkonto konfigurieren

  1. Erstellen Sie ein Dienstkonto für den Nutzer, falls noch keines vorhanden ist.

    gcloud iam service-accounts create USERNAME-sa \
        --description="USERNAME SFTP Service Account" \
        --display-name="USERNAME SFTP Service Account"

    Ersetzen Sie USERNAME durch einen eindeutigen Nutzernamen für den SFTP-Nutzer. Der Nutzername muss mit einem Kleinbuchstaben beginnen und kann Kleinbuchstaben, Ziffern oder Bindestriche enthalten.

    Bei Erfolg wird eine Meldung wie Created service account [example-userid-sa] angezeigt.

  2. Weisen Sie sich selbst die Rolle „Dienstkontonutzer“ (roles/iam.serviceAccountUser) zu:

    gcloud iam service-accounts add-iam-policy-binding USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com \
        --member="user:ADMINISTRATOR_EMAIL" \
        --role="roles/iam.serviceAccountUser"

    Ersetzen Sie ADMINISTRATOR_EMAIL durch die E-Mail-Adresse des Prinzipals, der den SFTP-Nutzer aktualisiert. Wenn Sie den Nutzer aktualisieren (im Gegensatz zu einer Anwendung), ist dieser Wert die E-Mail-Adresse, mit der Sie auf zugreifen Google Cloud.

    Bei Erfolg wird eine Meldung wie die folgende angezeigt:

    Updated IAM policy for serviceAccount [example-userid-sa@example-project.iam.gserviceaccount.com].
    bindings:
    - members:
    - user:admin@example.com
    role: roles/iam.serviceAccountUser
    etag: BwZJk7OiSzw=
    version: 1
    
  3. Weisen Sie dem Dienstkonto des Nutzers die IAM-Rolle zu, die für den Zugriff auf den Bucket erforderlich ist:

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
        --member="serviceAccount:USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com" \
        --role="ROLE"

    Ersetzen Sie ROLE durch eine der folgenden IAM-Rollen:

    • Verwenden Sie für den Lesezugriff die Rolle roles/storage.objectViewer.
    • Verwenden Sie für den Lese- und Schreibzugriff die Rolle roles/storage.objectAdmin.

    Wiederholen Sie diesen Schritt für jeden Bucket, auf den der Nutzer zugreifen muss.

  4. Autorisieren Sie den Cloud FTP-Dienst-Agent, Tokens für das Dienstkonto des Nutzers zu generieren:

    1. Rufen Sie die E-Mail-Adresse des Dienst-Agents des SFTP-Servers ab. Eine Anleitung finden Sie unter Details zu einem Server abrufen.

    2. Autorisieren Sie den Cloud FTP-Dienst-Agent:

      gcloud iam service-accounts add-iam-policy-binding USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com \
          --member="serviceAccount:SERVICE_AGENT_EMAIL" \
          --role="roles/iam.serviceAccountTokenCreator"

      Ersetzen Sie SERVICE_AGENT_EMAIL durch die E-Mail-Adresse des Dienst-Agents.

Aktualisieren Sie als Nächstes das Dienstkonto des Nutzers.

Dienstkonto eines Nutzers aktualisieren

REST

Verwenden Sie die servers.users.patch Methode, um das Dienstkonto zu aktualisieren, das mit einem SFTP-Nutzer verknüpft ist. Geben Sie im Abfrageparameter updateMask das Feld customerServiceAccount an.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • 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.

HTTP-Methode und URL:

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

JSON-Text der Anfrage:

{
  "customerServiceAccount": "USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com"
}

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.

Nächste Schritte