Vous pouvez configurer l'accès aux données sources dans Microsoft Azure Storage à l'aide de signatures d'accès partagé (SAS).
Régions où le service est disponible
Le service de transfert de stockage peut transférer des données depuis les régions Microsoft Azure Storage suivantes :- Amériques:Est des États-Unis, Est des États-Unis 2, États-Unis de l'Ouest, États-Unis de l'Ouest 2, États-Unis du Centre 3, États-Unis du Centre, Nord des États-Unis, Brésil
- Asie-Pacifique : Australia Central (Australie centre), Australia East (Australie est), Australia Southeast (Australie sud-est), Inde Centre, Inde Sud, Inde Ouest, Asie Sud-Est, Asie Est, Japon Est, Japon Ouest, Corée Sud, Corée Centre
- Europe, Moyen-Orient, Afrique (EMEA) : Afrique du Sud, Allemagne de l'Ouest, Nord-Ouest des États-Unis, France centrale, Suède, Europe du Nord, Europe du Nord, Royaume-Uni du Sud-Ouest, Qatar Central, Émirats arabes unis nord et Royaume-Uni
Configurer l'accès
Pour configurer l'accès à un conteneur de stockage Microsoft Azure, procédez comme suit :
Créez un utilisateur Microsoft Azure Storage ou utilisez-en un existant pour accéder au compte de stockage de votre conteneur d'objets blob Microsoft Azure Storage.
Créez un jeton SAP au niveau du conteneur. Pour savoir comment procéder, consultez la section Accorder un accès limité aux ressources Azure Storage à l'aide de signatures d'accès partagé.
Les services autorisés doivent inclure Blob.
Pour Types de ressources autorisés, sélectionnez Conteneur et Objet.
Les autorisations autorisées doivent inclure les droits de lecture et de liste. Si le transfert est configuré pour supprimer des objets de la source, vous devez également inclure l'autorisation Supprimer.
Le délai d'expiration par défaut pour les jetons SAP est de 8 heures. Définissez un délai d'expiration raisonnable vous permettant de finaliser le transfert.
Ne spécifiez aucune adresse IP dans le champ Allowed IP addresses (Adresses IP autorisées). Le service de transfert de stockage utilise différentes adresses IP et n'est pas compatible avec la restriction d'adresses IP.
Les protocoles autorisés doivent être HTTPS uniquement.
Une fois le jeton créé, notez la valeur du jeton SAS renvoyée. Vous avez besoin de cette valeur lorsque vous configurez votre transfert avec le service de transfert de stockage.
Enregistrer votre jeton SAS dans Secret Manager (bêta)
Secret Manager est un service sécurisé qui stocke et gère les données sensibles telles que les mots de passe. Il utilise un chiffrement fort, un contrôle des accès basé sur les rôles et des journaux d'audit pour protéger vos secrets.
Le service de transfert de stockage peut exploiter Secret Manager pour protéger votre jeton Azure SAS. Chargez votre jeton dans Secret Manager, puis transmettez le nom de la ressource de secret au service de transfert de stockage.
Activer l'API
Activez l'API Secret Manager
Configurer des autorisations supplémentaires
Autorisations des utilisateurs
L'utilisateur qui crée le secret requiert le rôle suivant:
- Administrateur Secret Manager (
roles/secretmanager.admin
)
Découvrez comment attribuer un rôle.
Autorisations de l'agent de service
L'agent de service du service de transfert de stockage nécessite le rôle IAM suivant:
- Accesseur de secrets Secret Manager (
roles/secretmanager.secretAccessor
)
Pour attribuer le rôle à votre agent de service:
console Cloud
Suivez les instructions pour récupérer l'adresse e-mail de votre agent de service.
Accédez à la page IAM de la console Google Cloud.
Cliquez sur Accorder l'accès.
Dans la zone de texte Nouveaux comptes principaux, saisissez l'adresse e-mail de l'agent de service.
Dans la liste déroulante Sélectionner un rôle, recherchez et sélectionnez Secret Manager Accessor.
Cliquez sur Enregistrer.
gcloud
Utilisez la commande gcloud projects add-iam-policy-binding
pour ajouter le rôle IAM à votre agent de service.
Suivez les instructions pour récupérer l'adresse e-mail de votre agent de service.
Dans la ligne de commande, saisissez la commande suivante:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:SERVICE_AGENT_EMAIL' \ --role='roles/secretmanager.secretAccessor'
Créer un secret
Créez un secret avec Secret Manager:
console Cloud
Accédez à la page Secret Manager de la console Google Cloud.
Cliquez sur Créer un secret.
Saisissez un nom.
Dans la zone de texte Valeur du secret, saisissez vos identifiants au format suivant:
{ "sas_token" : "SAS_TOKEN_VALUE" }
Cliquez sur Créer un secret.
Une fois le secret créé, notez son nom complet:
Sélectionnez l'onglet Overview (Présentation).
Copiez la valeur du champ ID de ressource. Elle utilise le format suivant:
projects/1234567890/secrets/SECRET_NAME
gcloud
Pour créer un secret à l'aide de l'outil de ligne de commande gcloud, transmettez les identifiants au format JSON à la commande gcloud secrets create
:
printf '{
"sas_token" : "SAS_TOKEN_VALUE"
}' | gcloud secrets create SECRET_NAME --data-file=-
Récupérez le nom complet de la ressource du secret:
gcloud secrets describe SECRET_NAME
Notez la valeur de name
dans la réponse. Elle utilise le format suivant:
projects/1234567890/secrets/SECRET_NAME
Pour en savoir plus sur la création et la gestion des secrets, consultez la documentation de Secret Manager.
Transmettre votre secret à la commande de création de tâche
Pendant cette période, l'utilisation de Secret Manager avec le service de transfert de stockage nécessite l'utilisation de l'API REST pour créer une tâche de transfert.
Transmettez le nom de ressource Secret Manager en tant que valeur du champ transferSpec.azureBlobStorageDataSource.secretResource
:
POST https://storagetransfer.googleapis.com/v1/transferJobs
{
"description": "Transfer with Secret Manager",
"status": "ENABLED",
"projectId": "PROJECT_ID",
"transferSpec": {
"azureBlobStorageDataSource": {
"storageAccount": "AZURE_SOURCE_NAME",
"container": "AZURE_CONTAINER",
"secretResource": "SECRET_RESOURCE_ID",
},
"gcsDataSink": {
"bucketName": "CLOUD_STORAGE_BUCKET_NAME"
}
}
}
Restrictions de propriété intellectuelle
Si vous restreignez l'accès à vos ressources Azure à l'aide d'un pare-feu Azure Storage, vous devez ajouter à votre liste d'adresses IP autorisées les plages d'adresses IP utilisées par les nœuds de calcul du service de transfert de stockage.
Étant donné que ces plages d'adresses IP peuvent changer, nous publions les valeurs actuelles sous forme de fichier JSON à une adresse permanente:
https://www.gstatic.com/storage-transfer-service/ipranges.json
Lorsqu'une plage est ajoutée au fichier, nous attendons au moins sept jours avant d'utiliser cette plage pour les requêtes du service de transfert de stockage.
Nous vous recommandons d'extraire les données de ce document au moins une fois par semaine pour maintenir votre configuration de sécurité à jour. Pour obtenir un exemple de script Python permettant d'extraire des plages d'adresses IP à partir d'un fichier JSON, consultez cet article de la documentation sur le cloud privé virtuel.
Pour ajouter ces plages en tant qu'adresses IP autorisées, suivez les instructions de l'article Microsoft Azure : Configurer les pare-feu et réseaux virtuels Azure Storage.