Configuration d’un volume externe pour Azure¶
Accordez à Snowflake un accès restreint à votre propre conteneur Microsoft Azure à l’aide d’un volume externe. Snowflake prend en charge les services de stockage Cloud Azure suivants pour les volumes externes :
Stockage d’objets blob
Data Lake Storage Gen2
Usage général v1
Usage général v2
Conditions préalables¶
Avant de configurer un volume externe, vous avez besoin des éléments suivants :
Un conteneur de stockage Azure dans la même région que celle qui héberge votre compte Snowflake.
Pour utiliser le volume externe pour les tables Iceberg gérées en externe, tous vos fichiers de métadonnées et de données de table doivent être situés dans le conteneur.
Pour faciliter la récupération des données, activez la gestion des versions pour votre emplacement de stockage Cloud externe.
Autorisations dans Azure pour créer et gérer des politiques et des rôles IAM. Si vous n’êtes pas un administrateur Azure, demandez à votre administrateur Azure d’effectuer ces tâches.
Si vous utilisez un pare-feu de stockage Azure pour bloquer le trafic non autorisé sur votre compte de stockage, suivez les instructions dans Autorisation des IDs de sous-réseau VNet pour accorder explicitement à Snowflake l’accès à votre compte de stockage Azure.
Étape 1 : Créer un volume externe dans Snowflake¶
Créez un volume externe via la commande CREATE EXTERNAL VOLUME.
Note
Seuls les administrateurs de compte (utilisateurs dotés du rôle ACCOUNTADMIN) peuvent exécuter cette commande SQL.
L’exemple suivant crée un volume externe qui définit un emplacement de stockage Azure avec chiffrement :
CREATE EXTERNAL VOLUME exvol
STORAGE_LOCATIONS =
(
(
NAME = 'my-azure-northeurope'
STORAGE_PROVIDER = 'AZURE'
STORAGE_BASE_URL = 'azure://exampleacct.blob.core.windows.net/my_container_northeurope/'
AZURE_TENANT_ID = 'a123b4c5-1234-123a-a12b-1a23b45678c9'
)
);
Note
Utilisez le préfixe azure://
et non https://
lorsque vous spécifiez une valeur pour STORAGE_BASE_URL.
Étape 2 : Accorder à Snowflake un accès à l’emplacement de stockage¶
Pour récupérer une URL vers la page de demande d’autorisations Microsoft, utilisez la commande DESCRIBE EXTERNAL VOLUME. Indiquez le nom du volume externe que vous avez créé précédemment.
DESC EXTERNAL VOLUME exvol;
Enregistrez les valeurs des propriétés suivantes :
Propriété
Description
AZURE_CONSENT_URL
URL vers la page de demande d’autorisations de Microsoft.
AZURE_MULTI_TENANT_APP_NAME
Nom de l’application client Snowflake créée pour votre compte. Ultérieurement dans cette section, vous accorderez à cette application l’autorisation nécessaire pour obtenir un jeton d’accès sur votre emplacement de stockage autorisé.
Vous utiliserez ces valeurs dans les étapes suivantes.
Dans un navigateur web, accédez à la page de demande d’autorisations Microsoft (l”
AZURE_CONSENT_URL
).Sélectionnez Accept. Cette action permet au principal du service Azure créé pour votre compte Snowflake d’obtenir un jeton d’accès sur une ressource indiquée à l’intérieur de votre client. L’obtention d’un jeton d’accès ne réussit que si vous accordez au principal du service les autorisations appropriées au niveau du compte de stockage (voir l’étape suivante).
La page de demande d’autorisations Microsoft redirige vers le site d’entreprise de Snowflake (snowflake.com).
Connectez-vous au portail Microsoft Azure.
Allez à Azure Services » Storage Accounts. Sélectionnez le nom du compte de stockage auquel le principal de service Snowflake doit accéder.
Note
Vous devez définir des autorisations IAM pour un volume externe au niveau du compte de stockage, et non au niveau du conteneur.
Sélectionnez Access Control (IAM) » Add role assignment.
Sélectionnez le rôle
Storage Blob Data Contributor
pour accorder un accès en lecture et en écriture au principal du service Snowflake.Note
Le rôle
Storage Blob Data Contributor
permet d’accéder en écriture à l’emplacement du volume externe. Pour une configuration complète de l’accès en écriture, définissez le paramètreALLOW_WRITES
du volume externe surTRUE
(la valeur par défaut).Recherchez le principal du service Snowflake. Il s’agit de l’identité de la propriété AZURE_MULTI_TENANT_APP_NAME dans la sortie DESC EXTERNAL VOLUME (à l’étape 1). Recherchez la chaîne avant le trait de soulignement dans la propriété AZURE_MULTI_TENANT_APP_NAME.
Important
Azure peut prendre une heure ou plus pour créer le principal de service Snowflake demandé via la page de demande Microsoft dans cette section. Si le principal du service n’est pas disponible immédiatement, attendez une heure ou deux, puis relancez la recherche.
Si vous supprimez le principal du service, le volume externe cesse de fonctionner.
Sélectionnez Review + assign.
Note
Lors de l’attribution d’un rôle, il faut compter jusqu’à 10 minutes pour que les modifications soient prises en compte. Pour plus d’informations, voir Symptôme - Les changements d’attribution de rôle ne sont pas détectés dans la documentation Microsoft Azure.
Étape 3 : Vérifier l’accès au stockage¶
Pour vérifier que Snowflake peut s’authentifier avec succès auprès de votre fournisseur de stockage, appelez la fonction SYSTEM$VERIFY_EXTERNAL_VOLUME.
SELECT SYSTEM$VERIFY_EXTERNAL_VOLUME('my_s3_external_volume');
Prochaines étapes¶
Après avoir configuré un volume externe, vous pouvez créer une table Iceberg.
Pour créer une table Iceberg en lecture seule qui utilise un catalogue externe, consultez Configuration d’une intégration de catalogue.
Pour créer une table Iceberg avec une prise en charge complète de la plateforme Snowflake, voir Création d’une table gérée par Snowflake.