Bevor Sie Daten aus einem Azure Storage-Bucket übertragen, müssen Sie den Zugriff auf diesen Bucket so konfigurieren, dass der Storage Transfer Service seine Objekte abrufen kann.
Der Storage Transfer Service unterstützt die folgenden Azure-Authentifizierungsmethoden:
SAS-Tokens (Shared Access Signature) SAS-Tokens können beim Erstellen eines Übertragungsjobs direkt angegeben oder im Secret Manager gespeichert werden.
Azure Shared Keys können im Secret Manager gespeichert und das Secret beim Erstellen eines Übertragungsjobs übergeben werden.
Föderierte Anmeldedaten werden beim Erstellen eines Übertragungsjobs in einem
federatedIdentityConfigObjekt übergeben.
Dieses Dokument enthält auch Informationen zum Hinzufügen von Storage Transfer Service-Worker-IP-Adressen zur Azure Storage-Firewall, um den Zugriff zu ermöglichen. Weitere Informationen finden Sie unter IP-Einschränkungen.
Unterstützte Regionen
Der Storage Transfer Service kann Daten aus den folgenden Microsoft Azure Storage-Regionen übertragen:- Amerika:USA, Osten, USA, Osten 2, USA, Westen, USA, Westen 2, USA, Westen 3, USA, Mitte, USA, Mitte-Nord, USA, Mitte-Süd, USA, Mitte-West, Kanada, Mitte, Kanada, Osten, Brasilien, Süden
- Asiatisch-pazifischer Raum: Australien, Mitte, Australien, Osten, Australien , Südosten, Indien, Mitte, Indien, Süden, Indien, Westen, Südostasien, Ost asien, Japan, Osten, Japan, Westen, Korea, Süden, Korea, Mitte
- Europa, Naher Osten, Afrika (EMEA): Frankreich, Mitte, Deutschland, Mitte-West, Norwegen, Osten, Schweden, Mitte, Schweiz, Norden, Nordeuropa, Westeuropa, Großbritannien, Süden, Großbritannien, Westen, Katar, Mitte, Vereinigte Arabische Emirate, Norden, Südafrika, Norden
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 Shared Key oder SAS-Token im 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 für Zulässige Ressourcentypen sowohl Container als auch Objekt aus.
Die Zulässigen Berechtigungen müssen Lesen und Auflisten enthalten. Wenn die Übertragung so konfiguriert ist, dass Objekte aus der Quelle gelöscht werden, müssen Sie auch die Berechtigung Löschen einschließen.
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. Der 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 Shared Key oder SAS-Token im Secret Manager authentifizieren
Secret Manager ist ein sicherer Dienst, der sensible Daten wie Passwörter speichert und verwaltet. Er verwendet starke Verschlüsselung, rollenbasierte Zugriffssteuerung und Audit-Logging, um Ihre Secrets zu schützen.
Der Storage Transfer Service unterstützt Secret Manager-Ressourcennamen, die auf Ihre sicher gespeicherten Azure-Anmeldedaten verweisen.
Wenn Sie einen Azure Shared Key verwenden möchten, müssen Sie den Schlüssel im Secret Manager speichern. SAS-Tokens können im Secret Manager gespeichert oder direkt übergeben werden.
Wenn Sie einen Shared Key angeben, verwendet der Storage Transfer Service diesen Schlüssel, um ein Dienst-SAS zu generieren, dessen Umfang auf den im Übertragungs job angegebenen Azure-Container beschränkt ist.
API aktivieren
Aktivieren Sie die Secret Manager API.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen.
Zusätzliche Berechtigungen konfigurieren
Nutzerberechtigungen
Der Nutzer, der das Secret erstellt, benötigt die folgende Rolle:
- Secret Manager-Administrator (
roles/secretmanager.admin)
Informationen zum Zuweisen einer Rolle .
Berechtigungen des Dienst-Agents
Der Dienst-Agent des Storage Transfer Service benötigt die folgende IAM-Rolle:
- Zugriffsperson für Secret Manager-Secret (
roles/secretmanager.secretAccessor)
So weisen Sie die Rolle Ihrem Dienst-Agent zu:
Cloud Console
Folgen Sie der Anleitung, um die E-Mail-Adresse Ihres Dienst-Agents 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 diese Option aus.
Klicken Sie auf Speichern.
gcloud
Verwenden Sie den Befehl gcloud projects add-iam-policy-binding, um die IAM-Rolle Ihrem Dienst-Agent hinzuzufügen.
Folgen Sie der Anleitung, um die E-Mail-Adresse Ihres Dienst-Agents 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
So erstellen Sie ein Secret mit Secret Manager:
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 Ressourcennamen des Secrets:
Wählen Sie den Tab Übersicht aus.
Kopieren Sie den Wert von Ressourcenname. Er hat das folgende Format:
projects/1234567890/secrets/SECRET_NAME
gcloud
Wenn Sie mit dem gcloud-Befehlszeilentool ein neues Secret erstellen möchten, übergeben Sie die Anmeldedaten im JSON-Format 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. Er hat das folgende Format:
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 dem Storage Transfer Service verwenden möchten, müssen Sie mit der REST API einen Übertragungsjob erstellen.
Übergeben Sie den Secret Manager-Ressourcennamen als Wert des
transferSpec.azureBlobStorageDataSource.credentialsSecret Felds:
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 einer Übertragung finden Sie unter Übertragungen erstellen.
Option 3: Mit föderierter Identität authentifizieren
Der Storage Transfer Service unterstützt die Azure-Workload Identity-Föderation mit Google Cloud. Der Storage Transfer Service kann Anfragen an Azure Storage über registrierte Azure-Anwendungen senden, sodass Anmeldedaten nicht direkt an den Storage Transfer Service übergeben werden müssen.
Folgen Sie dieser Anleitung, um die föderierte Identität zu konfigurieren.
Google Cloud-Anmeldedaten konfigurieren
So ermöglichen Sie dem Storage Transfer Service, OpenID Connect-ID-Tokens (OIDC) zu erstellen:
Dienst-Agent
Wenn in Ihrem Übertragungsjob kein serviceAccount angegeben ist (d.h., Sie
delegieren keine Berechtigungen des Dienst-Agents an ein nutzerverwaltetes Dienstkonto),
weisen Sie dem Dienst-Agent die Rolle Ersteller von Dienstkonto-Tokens
(roles/iam.serviceAccountTokenCreator) zu:
Rufen Sie die
accountEmaildes Dienst-Agents ab:- Rufen Sie die
googleServiceAccounts.getReferenzseite auf. - Geben Sie unter Anfrageparameter Ihre Projekt-ID ein.
- Klicken Sie auf Ausführen. Die
accountEmailundsubjectIdwerden zurückgegeben.
- Rufen Sie die
Weisen Sie dem Dienst-Agent die Rolle Ersteller von Dienstkonto-Tokens (
roles/iam.serviceAccountTokenCreator) für sich selbst zu. Folgen Sie der Anleitung unter Zugriff auf Dienstkonten verwalten.
Nutzerverwaltetes Dienstkonto
Wenn Sie Berechtigungen des Dienst-Agents an ein nutzerverwaltetes Dienstkonto delegieren, werden Ihre Google-Anmeldedaten konfiguriert, wenn Sie die Berechtigungsdelegierung einrichten. Es sind keine weiteren Schritte erforderlich.
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. Notieren Sie sich die
Application (client) IDund 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 als Szenario Anderer Aussteller aus und geben Sie die folgenden Informationen ein:
- Aussteller:
https://accounts.google.com Subject Identifier: Je nachdem, ob Sie den Standarddienst-Agent oder ein nutzerverwaltetes Dienstkonto verwenden, geben Sie Folgendes ein:
- Die
subjectIdIhres Dienst-Agents, die Sie unter Google Cloud-Anmeldedaten konfigurieren abgerufen haben. - Die
uniqueIdIhres nutzerverwalteten Dienstkontos. Informationen zum Abrufen dieses Werts finden Sie unter Eindeutige ID eines Dienstkontos abrufen.
- Die
Ein eindeutiger Name für die föderierten Anmeldedaten.
Die Zielgruppe muss
api://AzureADTokenExchangebleiben.
- 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 Speicherkonten auf.
- Wählen Sie Ihr Speicherkonto und 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 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, die angezeigt wird, 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 Überprüfen + zuweisen.
Anwendungs-IDs an den Befehl zum Erstellen von Jobs übergeben
Die IDs Ihrer Anwendung werden mit einem federatedIdentityConfig-Objekt an den Befehl zum Erstellen von Jobs übergeben. Kopieren Sie die Application (client) ID und die
Directory (tenant) ID , die Sie bei der
Konfiguration der Microsoft-Anmeldedaten gespeichert haben, in
die client_id und tenant_id Felder.
"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 einer Übertragung finden Sie unter Übertragungen erstellen.
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 7 Tage, bevor wir diesen Bereich für Anfragen vom 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, das IP-Bereiche aus einer JSON-Datei abruft, finden Sie in diesem Artikel in der Dokumentation zu Virtual Private Cloud
Eine Anleitung zum Hinzufügen dieser Bereiche als zulässige IP-Adressen finden Sie im Microsoft Azure-Artikel Azure Storage-Firewalls und virtuelle Netzwerke konfigurieren.