Bevor Sie Daten aus einem Azure Storage-Bucket übertragen, müssen Sie den Zugriff auf diesen Bucket so konfigurieren, dass Storage Transfer Service seine Objekte abrufen kann.
Der Storage Transfer Service unterstützt die folgenden Azure-Authentifizierungsmethoden:
Shared Access Signature-Tokens (SAS). SAS-Tokens können direkt beim Erstellen eines Übertragungsjobs angegeben oder in Secret Manager gespeichert werden.
Azure-Schlüssel können in Secret Manager gespeichert und das Secret beim Erstellen eines Übertragungsjobs übergeben werden.
Föderierte Anmeldedaten werden beim Erstellen des Übertragungsjobs in einem
federatedIdentityConfig
-Objekt übergeben.
Dieses Dokument enthält auch Informationen zum Hinzufügen von Storage Transfer Service-Worker-IP-Adressen zu Ihrer Azure Storage-Firewall, um den Zugriff zu ermöglichen. Weitere Informationen finden Sie unter IP-Einschränkungen.
Unterstützte Regionen
Mit Storage Transfer Service können Daten aus den folgenden Microsoft Azure Storage-Regionen übertragen werden:- Amerika:Ost-USA, Ost-USA 2, West-USA, West-USA 2, West-USA 3, Zentral-USA, Nord-Zentral-USA, Süd-Zentral-USA, West-Zentral-USA, Kanada Zentral, Kanada Ost, Brasilien Süd
- Asiatisch-pazifischer Raum: Australien Zentral, Australien Ost, Australien Südost, Zentral-Indien, Süd-Indien, West-Indien, Südostasien, Ostasien, Japan Ost, Japan West, Korea Süd, Korea Zentral
- Europa, Naher Osten, Afrika (EMEA): Frankreich Zentral, Deutschland West-Zentral, Norwegen Ost, Schweden Zentral, Schweiz Nord, Europa Nord, Europa West, Vereinigtes Königreich Süd, Vereinigtes Königreich West, Katar Zentral, VAE Nord, Südafrika Nord
Option 1: Mit einem SAS-Token authentifizieren
So konfigurieren Sie den Zugriff auf einen Microsoft Azure Storage-Container mit einem SAS-Token: Alternativ können Sie Ihr SAS-Token in Secret Manager speichern. Folgen Sie dazu der Anleitung unter Mit einem Azure-Schlüssel oder SAS-Token in Secret Manager authentifizieren.
Erstellen oder verwenden Sie einen vorhandenen Microsoft Azure Storage-Nutzer, um auf das Speicherkonto für Ihren Microsoft Azure Storage Blob-Container zuzugreifen.
Erstellen Sie ein SAS-Token auf Containerebene. Eine Anleitung finden Sie unter Zugriff auf Azure Storage-Ressourcen mit freigegebenen Zugriffssignaturen gewähren.
Die Zulässigen Dienste müssen Blob enthalten.
Wählen Sie unter Zulässige Ressourcentypen sowohl Container als auch Objekt aus.
Die Zulässigen Berechtigungen müssen Lesen und Liste enthalten. Wenn die Übertragung so konfiguriert ist, dass Objekte aus der Quelle gelöscht werden, müssen Sie auch die Berechtigung Löschen einbeziehen.
Die Standardablaufzeit für SAS-Tokens beträgt 8 Stunden. Legen Sie eine angemessene Ablaufzeit fest, damit Sie die Übertragung erfolgreich abschließen können.
Geben Sie im Feld Zulässige IP-Adressen keine IP-Adressen an. Storage Transfer Service verwendet verschiedene IP-Adressen und unterstützt keine IP-Adressbeschränkung.
Die Zulässigen Protokolle sollten Nur HTTPS sein.
Notieren Sie sich nach dem Erstellen des Tokens den zurückgegebenen Wert für SAS-Token. Sie benötigen diesen Wert, wenn Sie die Übertragung mit dem Storage Transfer Service konfigurieren.
Option 2: Mit einem Azure-Schlüssel für gemeinsamen Zugriff oder einem SAS-Token in Secret Manager authentifizieren
Secret Manager ist ein sicherer Dienst, der sensible Daten wie Passwörter speichert und verwaltet. Ihre Secrets werden durch starke Verschlüsselung, rollenbasierte Zugriffssteuerung und Audit-Logging geschützt.
Storage Transfer Service unterstützt Secret Manager-Ressourcennamen, die auf Ihre sicher gespeicherten Azure-Anmeldedaten verweisen.
Wenn Sie einen freigegebenen Azure-Schlüssel verwenden möchten, müssen Sie den Schlüssel in Secret Manager speichern. SAS-Tokens können in Secret Manager gespeichert oder direkt übergeben werden.
Wenn Sie einen freigegebenen Schlüssel angeben, verwendet Storage Transfer Service diesen Schlüssel, um eine Dienst-SAS zu generieren, deren Bereich auf den im Übertragungsjob angegebenen Azure-Container beschränkt ist.
API aktivieren
Enable the Secret Manager API.
Zusätzliche Berechtigungen konfigurieren
Nutzerberechtigungen
Der Nutzer, der das Secret erstellt, benötigt die folgende Rolle:
- Secret Manager-Administrator (
roles/secretmanager.admin
)
Berechtigungen des Dienst-Agents
Der Storage Transfer Service-Dienst-Agent benötigt die folgende IAM-Rolle:
- Zugriffsperson für Secret Manager-Secret (
roles/secretmanager.secretAccessor
)
So weisen Sie Ihrem Dienst-Agent die Rolle zu:
Cloud Console
Folgen Sie der Anleitung, um die E‑Mail-Adresse Ihres Kundenservicemitarbeiters abzurufen.
Rufen Sie in der Google Cloud Console die Seite IAM auf.
Klicken Sie auf Zugriff erlauben.
Geben Sie im Textfeld Neue Hauptkonten die E-Mail-Adresse des Dienst-Agents ein.
Suchen Sie im Drop-down-Menü Rolle auswählen nach Zugriffsperson für Secret Manager-Secret und wählen Sie die Rolle aus.
Klicken Sie auf Speichern.
gcloud
Verwenden Sie den Befehl gcloud projects add-iam-policy-binding
, um Ihrem Dienst-Agent die IAM-Rolle hinzuzufügen.
Folgen Sie der Anleitung, um die E‑Mail-Adresse Ihres Kundenservicemitarbeiters abzurufen.
Geben Sie in der Befehlszeile den folgenden Befehl ein:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:SERVICE_AGENT_EMAIL' \ --role='roles/secretmanager.secretAccessor'
Secret erstellen
Secret mit Secret Manager erstellen:
Cloud Console
Rufen Sie in der Google Cloud Console die Seite Secret Manager auf.
Klicken Sie auf Secret erstellen.
Geben Sie einen Namen ein.
Geben Sie im Textfeld Secret-Wert Ihre Anmeldedaten in einem der folgenden Formate ein.
{ "sas_token" : "SAS_TOKEN_VALUE" }
oder:
{ "access_key" : "ACCESS_KEY" }
Klicken Sie auf Secret erstellen.
Notieren Sie sich nach dem Erstellen des Secrets den vollständigen Ressourcenname des Secrets:
Wähle den Tab Übersicht aus.
Kopieren Sie den Wert von Ressourcenname. Dabei wird das folgende Format verwendet:
projects/1234567890/secrets/SECRET_NAME
gcloud
Wenn Sie mit dem gcloud-Befehlszeilentool ein neues Secret erstellen möchten, übergeben Sie die im JSON-Format formatierten Anmeldedaten an den Befehl gcloud secrets create
:
printf '{
"sas_token" : "SAS_TOKEN_VALUE"
}' | gcloud secrets create SECRET_NAME --data-file=-
oder:
printf '{
"access_key" : "ACCESS_KEY"
}' | gcloud secrets create SECRET_NAME --data-file=-
Rufen Sie den vollständigen Ressourcennamen des Secrets ab:
gcloud secrets describe SECRET_NAME
Notieren Sie sich den Wert von name
in der Antwort. Dabei wird das folgende Format verwendet:
projects/1234567890/secrets/SECRET_NAME
Weitere Informationen zum Erstellen und Verwalten von Secrets finden Sie in der Secret Manager-Dokumentation.
Secret an den Befehl zum Erstellen von Jobs übergeben
Wenn Sie Secret Manager mit Storage Transfer Service verwenden möchten, müssen Sie die REST API verwenden, um einen Übertragungsjob zu erstellen.
Übergeben Sie den Secret Manager-Ressourcennamen als Wert des Felds transferSpec.azureBlobStorageDataSource.credentialsSecret
:
POST https://storagetransfer.googleapis.com/v1/transferJobs
{
"description": "Transfer with Secret Manager",
"status": "ENABLED",
"projectId": "PROJECT_ID",
"transferSpec": {
"azureBlobStorageDataSource": {
"storageAccount": "AZURE_STORAGE_ACCOUNT_NAME",
"container": "AZURE_CONTAINER_NAME",
"credentialsSecret": "SECRET_RESOURCE_ID",
},
"gcsDataSink": {
"bucketName": "CLOUD_STORAGE_BUCKET_NAME"
}
}
}
Weitere Informationen zum Erstellen von Übertragungen
Option 3: Mit föderierter Identität authentifizieren
Der Storage Transfer Service unterstützt die Azure-Workload Identity-Föderation mitGoogle Cloud. Storage Transfer Service kann Anfragen an Azure Storage über registrierte Azure-Anwendungen senden. So müssen keine Anmeldedaten direkt an Storage Transfer Service übergeben werden.
Folgen Sie dieser Anleitung, um die föderierte Identität zu konfigurieren.
Google Cloud -Anmeldedaten konfigurieren
Sie müssen dem Storage Transfer Service-Dienst-Agent die Rolle Ersteller von Dienstkonto-Tokens (roles/iam.serviceAccountTokenCreator
) zuweisen, damit OpenID Connect-ID-Tokens (OIDC) für das Konto erstellt werden können.
Rufen Sie die
accountEmail
undsubjectId
des von Google verwalteten Dienst-Agents ab, der automatisch erstellt wird, wenn Sie Storage Transfer Service zum ersten Mal verwenden. So rufen Sie diese Werte ab:Rufen Sie die Referenzseite für
googleServiceAccounts.get
auf.Es wird ein interaktives Steuerfeld mit dem Titel Diese Methode testen geöffnet.
Geben Sie im Steuerfeld unter Anfrageparameter Ihre Projekt-ID ein. Das hier angegebene Projekt muss das Projekt sein, das Sie zum Verwalten des Storage Transfer Service verwenden.
Klicken Sie auf Ausführen.
accountEmail
undsubjectId
sind in der Antwort enthalten. Speichern Sie diese Werte.
Weisen Sie dem Storage Transfer Service-Dienst-Agent die Rolle Ersteller von Dienstkonto-Tokens (
roles/iam.serviceAccountTokenCreator
) zu. Folgen Sie der Anleitung unter Zugriff auf Dienstkonten verwalten.
Microsoft-Anmeldedaten konfigurieren
Registrieren Sie zuerst eine Anwendung und fügen Sie föderierte Anmeldedaten hinzu:
- Melden Sie sich unter https://portal.azure.com an.
- Rufen Sie die Seite App-Registrierungen auf.
- Klicken Sie auf Neue Registrierung.
- Geben Sie einen Namen ein. Beispiel:
azure-transfer-app
. - Wählen Sie Nur Konten in diesem Organisationsverzeichnis aus.
- Klicken Sie auf Registrieren. Die Anwendung wird erstellt. Achten Sie auf die
Application (client) ID
und dieDirectory (tenant) ID
. Sie können diese auch später auf der Seite Übersicht der Anwendung abrufen. - Klicken Sie auf Zertifikate und Secrets und wählen Sie den Tab Föderierte Anmeldedaten aus.
- Klicken Sie auf Anmeldedaten hinzufügen.
- Wählen Sie Anderer Aussteller als Szenario aus und geben Sie die folgenden Informationen ein:
- Aussteller:
https://accounts.google.com
- Subject Identifier: Die
subjectId
Ihres Service-Agents, die Sie unter Configure Google Cloud credentials (Anmeldedaten konfigurieren) abgerufen haben. - Ein eindeutiger Name für die föderierten Anmeldedaten.
- Die Zielgruppe muss
api://AzureADTokenExchange
bleiben.
- Aussteller:
- Klicken Sie auf Hinzufügen.
Gewähren Sie der Anwendung als Nächstes Zugriff auf Ihren Azure Storage-Container:
- Rufen Sie in Ihrem Azure-Konto die Seite Storage Accounts (Speicherkonten) auf.
- Wählen Sie Ihr Speicherkonto und dann im Bereich Datenspeicher die Option Container aus.
- Klicken Sie auf den Bucket, für den Sie Zugriff gewähren möchten.
- Klicken Sie im linken Menü auf Zugriffssteuerung (IAM) und wählen Sie den Tab Rollen aus.
- Klicken Sie neben einer beliebigen Rolle auf das Dreipunkt-Menü (
...
) und wählen Sie Klonen aus. - Geben Sie einen Namen für diese benutzerdefinierte Rolle ein und wählen Sie Von Grund auf neu aus. Klicken Sie auf Weiter.
- Klicken Sie auf Berechtigungen hinzufügen und suchen Sie nach
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
. - Klicken Sie auf die angezeigte Karte Microsoft Storage.
- Wählen Sie das Optionsfeld Datenaktionen aus.
- Wählen Sie Lesen : Blob lesen aus.
- Klicken Sie auf Hinzufügen.
- Wenn Sie Objekte nach der Übertragung in der Quelle löschen möchten, klicken Sie noch einmal auf Berechtigungen hinzufügen und suchen Sie nach
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete
. - Klicken Sie auf die Karte Microsoft Storage, wählen Sie Datenaktionen und dann Löschen : Blob löschen aus.
- Klicken Sie auf Hinzufügen.
- Klicken Sie auf Überprüfen + Erstellen und dann auf Erstellen. Sie werden zur Seite Zugriffssteuerung (IAM) des Buckets zurückgeleitet.
- Klicken Sie auf Hinzufügen und wählen Sie Rollenzuweisung hinzufügen aus.
- Wählen Sie in der Liste der Rollen Ihre benutzerdefinierte Rolle aus und klicken Sie auf Weiter.
- Klicken Sie auf Mitglieder auswählen.
- Geben Sie im Feld Auswählen den Namen der Anwendung ein, die Sie zuvor registriert haben. Beispiel:
azure-transfer-app
. - Klicken Sie auf die Kachel der Anwendung und dann auf Auswählen.
- Klicken Sie auf Prüfen und zuweisen.
Anwendungs-IDs an den Befehl zum Erstellen von Jobs übergeben
Die Kennungen Ihrer Anwendung werden mit einem federatedIdentityConfig
-Objekt an den Befehl zum Erstellen des Jobs übergeben. Kopieren Sie die Anwendungs-ID (Client) und die Verzeichnis-ID (Mandant), die Sie während der Schritte zur Konfiguration von Microsoft-Anmeldedaten gespeichert haben, in die Felder client_id
und tenant_id
.
"federatedIdentityConfig": {
"client_id": "efghe9d8-4810-800b-8f964ed4057f",
"tenant_id": "abcd1234-c8f0-4cb0-b0c5-ae4aded60078"
}
Eine Beispielanfrage zum Erstellen eines Jobs sieht so aus:
POST https://storagetransfer.googleapis.com/v1/transferJobs
{
"description": "Transfer with Azure Federated Identity",
"status": "ENABLED",
"projectId": "PROJECT_ID",
"transferSpec": {
"azureBlobStorageDataSource": {
"storageAccount": "AZURE_STORAGE_ACCOUNT_NAME",
"container": "AZURE_CONTAINER_NAME",
"federatedIdentityConfig": {
"client_id": "AZURE_CLIENT_ID",
"tenant_id": "AZURE_TENANT_ID"
}
},
"gcsDataSink": {
"bucketName": "CLOUD_STORAGE_BUCKET_NAME"
}
}
}
Weitere Informationen zum Erstellen von Übertragungen
IP-Einschränkungen
Wenn Sie den Zugriff auf Ihre Azure-Ressourcen über eine Azure Storage-Firewall beschränken, müssen Sie die von Storage Transfer Service-Workern verwendeten IP-Bereiche der Liste der zulässigen IP-Adressen hinzufügen.
Da sich diese IP-Bereiche ändern können, veröffentlichen wir die aktuellen Werte als JSON-Datei unter einer permanenten Adresse:
https://www.gstatic.com/storage-transfer-service/ipranges.json
Wenn der Datei ein neuer Bereich hinzugefügt wird, warten wir mindestens sieben Tage, bevor wir diesen Bereich für Anfragen von Storage Transfer Service verwenden.
Wir empfehlen, mindestens wöchentlich Daten aus diesem Dokument abzurufen, um Ihre Sicherheitskonfiguration auf dem neuesten Stand zu halten. Ein Beispiel für ein Python-Skript, mit dem IP-Bereiche aus einer JSON-Datei abgerufen werden, finden Sie in diesem Artikel in der Dokumentation zu Virtual Private Cloud.
Wenn Sie diese Bereiche als zulässige IP-Adressen hinzufügen möchten, folgen Sie der Anleitung im Microsoft Azure-Artikel Konfigurieren von Azure Storage-Firewalls und virtuellen Netzwerken.