Création de connexions AWS Glue (pour les administrateurs)
Pour utiliser des sources de données avec l’extension SQL, les administrateurs peuvent configurer des connexions AWS Glue pour chaque source de données. Ces connexions stockent les détails de configuration nécessaires pour accéder aux sources de données et interagir avec elles. Une fois les connexions créées et les autorisations appropriées accordées, les connexions deviennent visibles pour tous les utilisateurs des Espaces Amazon SageMaker Studio qui partagent le même rôle d’exécution.
Pour créer ces connexions :
-
En premier lieu, créez un fichier JSON qui définit les propriétés de connexion pour chaque source de données. Le fichier JSON inclut des détails tels que l’identifiant de la source de données, les informations d’identification d’accès et d’autres paramètres de configuration pertinents pour accéder aux sources de données via les connexions AWS Glue.
-
Utilisez ensuite l’AWS Command Line Interface (AWS CLI) pour créer la connexion AWS Glue, en transmettant le fichier JSON en tant que paramètre. La commande AWS CLI lit les détails de connexion dans le fichier JSON et établit la connexion appropriée.
Note
L’extension SQL prend en charge la création de connexions à l’aide de l’AWS CLI uniquement.
Avant de créer des connexions AWS Glue, veillez à effectuer les étapes suivantes :
-
Installez et configurez l’AWS Command Line Interface (AWS CLI). Pour plus d’informations sur l’installation et la configuration de l’AWS CLI, consultez À propos de l’AWS CLI version 2. Assurez-vous que les clés d’accès et les jetons de l’utilisateur ou du rôle IAM utilisés pour configurer l’AWS CLI disposent des autorisations requises pour créer les connexions AWS Glue. Ajoutez une politique autorisant l’action
glue:CreateConnectionautrement. -
Comprenez la manière d’utiliser AWS Secrets Manager. Nous vous recommandons d’utiliser Secrets Manager pour fournir des informations d’identification de connexion et toute autre information sensible pour votre magasin de données. Pour plus d’informations sur l’utilisation de Secrets Manager pour stocker les informations d’identification, consultez Stockage des informations d’identification de connexion dans AWS Secrets Manager.
Création d’un fichier JSON de définition de connexion
Pour créer un fichier de définition de connexion AWS Glue, créez un fichier JSON pour définir les détails de connexion sur la machine où vous avez installé et configuré l’AWS CLI. Pour cet exemple, nommez le fichier sagemaker-sql-connection.json.
Le fichier de définition de connexion doit respecter le format général suivant :
-
Name est le nom de la connexion.
-
Description est une description textuelle de la connexion.
-
ConnectionType est le type de connexion. Choisissez
REDSHIFT,ATHENAouSNOWFLAKE. -
ConnectionProperties est un mappage de paires clé-valeur pour les propriétés de connexion, telles que l’ARN de votre secret AWS ou le nom de votre base de données.
{ "ConnectionInput": { "Name": <GLUE_CONNECTION_NAME>, "Description": <GLUE_CONNECTION_DESCRIPTION>, "ConnectionType": "REDSHIFT | ATHENA | SNOWFLAKE", "ConnectionProperties": { "PythonProperties": "{\"aws_secret_arn\": <SECRET_ARN>, \"database\": <...>}" } } }
Note
-
Les propriétés au sein de la clé
ConnectionPropertiessont constituées de paires clé-valeur sous forme de chaînes. Échappez les guillemets doubles utilisés dans les clés ou les valeurs à l’aide d’une barre oblique inverse (\). -
Toutes les propriétés disponibles dans Secrets Manager peuvent également être fournies directement via
PythonProperties. Toutefois, il n’est pas recommandé d’inclure des champs sensibles tels que les mots de passe dansPythonProperties. L’approche préférée consiste plutôt à utiliser Secrets Manager.
Les fichiers de définition de connexion spécifiques aux différents magasins de données se trouvent dans les sections suivantes.
Les fichiers de définition de connexion pour chaque source de données contiennent les propriétés et la configuration spécifiques requises pour se connecter à ces magasins de données à partir de l’extension SQL. Reportez-vous à la section appropriée pour obtenir des détails sur la définition des connexions à cette source.
-
Pour créer une connexion AWS Glue pour Amazon Redshift, consultez l’exemple de fichier de définition dans Configuration d’une connexion AWS Glue pour Amazon Redshift.
-
Pour créer une connexion AWS Glue pour Amazon Athena, consultez l’exemple de fichier de définition dans Configuration d’une connexion AWS Glue pour Athena.
-
Pour créer une connexion AWS Glue pour Snowflake, consultez l’exemple de fichier de définition dans Configuration d’une connexion AWS Glue pour Snowflake.
Cette section fournit des détails sur les propriétés de secret et de connexion dans les fichiers de définition JSON spécifiques à Amazon Redshift. Avant de créer votre fichier de configuration de connexion, nous vous recommandons de stocker vos informations d’identification et d’accès Amazon Redshift en tant que secret dans Secrets Manager. Vous pouvez également générer des informations d’identification de base de données temporaires basées sur les autorisations accordées via une politique d’autorisations AWS Identity and Access Management (IAM) pour gérer l’accès de vos utilisateurs à votre base de données Amazon Redshift. Pour plus d’informations, consultez Utilisation de l’authentification IAM pour générer des informations d’identification de l’utilisateur de base de données.
Création d’un secret pour les informations d’identification et d’accès Amazon Redshift
Pour stocker les informations Amazon Redshift dans AWS Secrets Manager
-
Depuis la console AWS, accédez à Secrets Manager.
-
Choisissez Store a new secret (Stocker un nouveau secret).
-
Sous Type de secret, choisissez Informations d’identification pour Amazon Redshift.
-
Entrez le nom d’utilisateur et le mot de passe de l’administrateur configurés lors du lancement du cluster Amazon Redshift.
-
Sélectionnez le cluster Amazon Redshift associé aux secrets.
-
Donnez un nom à votre secret.
-
Les autres paramètres peuvent être conservés à leurs valeurs par défaut lors de la création initiale du secret, ou personnalisés si nécessaire.
-
Créez le secret et extrayez son ARN.
Configuration d’une connexion AWS Glue pour Amazon Redshift
L’extension SQL se connecte aux sources de données à l’aide de connexions AWS Glue personnalisées. Pour obtenir des informations générales sur la création de connexions AWS Glue pour connecter une source de données, consultez Création de connexions AWS Glue (pour les administrateurs). L’exemple suivant est un exemple de définition de connexion AWS Glue pour la connexion à Amazon Redshift.
Avant de créer une nouvelle connexion, tenez compte des recommandations suivantes :
-
Les propriétés au sein de la clé
PythonPropertiessont constituées de paires clé-valeur sous forme de chaînes. Échappez les guillemets doubles utilisés dans les clés ou les valeurs à l’aide d’une barre oblique inverse (\). -
Dans le fichier de définition de connexion, entrez le nom et la description de la connexion, remplacez l’ARN du secret dans
aws_secret_arnpar l’ARN du secret créé précédemment. -
Assurez-vous que la base de données déclarée par son nom dans la définition de connexion ci-dessus correspond à la base de données du cluster. Vous pouvez vérifier cela en accédant à la page des détails du cluster sur la console Amazon Redshift
et en vérifiant le nom de la base de données sous Configurations de base de données dans la section Propriétés. -
Pour des paramètres supplémentaires, consultez la liste des propriétés de connexion prises en charge par Amazon Redshift dans Paramètres de connexion Amazon Redshift.
Note
-
Par défaut, le connecteur de l’extension SQL pour Python exécute toutes les requêtes d’une transaction, sauf si
auto_commitest défini surtruedans les propriétés de connexion. -
Vous pouvez ajouter tous les paramètres de connexion, y compris le nom
database, à un secret.
-
{ "ConnectionInput": { "Name": "Redshift connection name", "Description": "Redshift connection description", "ConnectionType": "REDSHIFT", "ConnectionProperties": { "PythonProperties":"{\"aws_secret_arn\": \"arn:aws:secretsmanager:region:account_id:secret:secret_name\", \"database\":\"database_name\", \"database_metadata_current_db_only\": false}" } } }
Une fois votre fichier de définition mis à jour, suivez les étapes décrites dans Création de connexions AWS Glue pour créer votre connexion AWS Glue.
Cette section fournit des détails sur les propriétés de connexion dans les fichiers de définition JSON spécifiques à Athena.
Configuration d’une connexion AWS Glue pour Athena
L’extension SQL se connecte aux sources de données à l’aide de connexions AWS Glue personnalisées. Pour obtenir des informations générales sur la création de connexions AWS Glue pour connecter une source de données, consultez Création de connexions AWS Glue (pour les administrateurs). L’exemple suivant est un exemple de définition de connexion AWS Glue pour la connexion à Athena.
Avant de créer une nouvelle connexion, tenez compte des recommandations suivantes :
-
Les propriétés au sein de la clé
ConnectionPropertiessont constituées de paires clé-valeur sous forme de chaînes. Échappez les guillemets doubles utilisés dans les clés ou les valeurs à l’aide d’une barre oblique inverse (\). -
Dans le fichier de définition de connexion, entrez le nom et la description de la connexion, remplacez
catalog_namepar le nom de votre catalogue,s3_staging_dirpar l’URI (Uniform Resource Identifier) Amazon S3 de votre répertoire de sortie dans votre compartiment Amazon S3 etregion_namepar la région de votre compartiment Amazon S3. -
Pour des paramètres supplémentaires, consultez la liste des propriétés de connexion prises en charge par Athena dans Paramètres de connexion à Athena.
Note
-
Vous pouvez ajouter tous les paramètres de connexion, y compris
catalog_nameous3_staging_dir, à un secret. -
Si vous spécifiez un
workgroup, il n’est pas nécessaire de spécifiers3_staging_dir.
-
{ "ConnectionInput": { "Name": "Athena connection name", "Description": "Athena connection description", "ConnectionType": "ATHENA", "ConnectionProperties": { "PythonProperties": "{\"catalog_name\": \"catalog_name\",\"s3_staging_dir\": \"s3://amzn-s3-demo-bucket_in_same_region/output_query_results_dir/\", \"region_name\": \"region\"}" } } }
Une fois votre fichier de définition mis à jour, suivez les étapes décrites dans Création de connexions AWS Glue pour créer votre connexion AWS Glue.
Cette section fournit des détails sur les propriétés de secret et de connexion dans les fichiers de définition JSON spécifiques à Snowflake. Avant de créer votre fichier de configuration de connexion, nous vous recommandons de stocker vos informations d’identification et d’accès Snowflake en tant que secret dans Secrets Manager.
Création d’un secret pour les informations d’identification et d’accès Snowflake
Pour stocker les informations Amazon Redshift dans Secrets Manager
-
Depuis la console AWS, accédez à AWS Secrets Manager.
-
Choisissez Store a new secret (Stocker un nouveau secret).
-
Sous Type de secret, choisissez Autre type de secret.
-
Dans la paire clé-valeur, choisissez Texte brut, puis copiez le contenu JSON suivant. Remplacez
user,passwordetaccountpar leurs valeurs.{ "user":"snowflake_user", "password":"snowflake_password", "account":"account_id" } -
Nommez le secret.
-
Les autres paramètres peuvent être conservés à leurs valeurs par défaut lors de la création initiale du secret, ou personnalisés si nécessaire.
-
Créez le secret et extrayez son ARN.
Configuration d’une connexion AWS Glue pour Snowflake
L’extension SQL se connecte aux sources de données à l’aide de connexions AWS Glue personnalisées. Pour obtenir des informations générales sur la création de connexions AWS Glue pour connecter une source de données, consultez Création de connexions AWS Glue (pour les administrateurs). L’exemple suivant est un exemple de définition de connexion AWS Glue pour la connexion à Snowflake.
Avant de créer une nouvelle connexion, tenez compte des recommandations suivantes :
-
Les propriétés au sein de la clé
ConnectionPropertiessont constituées de paires clé-valeur sous forme de chaînes. Échappez les guillemets doubles utilisés dans les clés ou les valeurs à l’aide d’une barre oblique inverse (\). -
Dans le fichier de définition de connexion, entrez le nom et la description de la connexion, puis remplacez l’ARN du secret dans
aws_secret_arnpar l’ARN du secret créé précédemment, et votre identifiant de compte dansaccount. -
Pour des paramètres supplémentaires, consultez la liste des propriétés de connexion prises en charge par Snowflake dans Paramètres de connexion à Snowflake.
Note
Vous pouvez ajouter tous les paramètres de connexion, y compris le
account, à un secret.
{ "ConnectionInput": { "Name": "Snowflake connection name", "Description": "Snowflake connection description", "ConnectionType": "SNOWFLAKE", "ConnectionProperties": { "PythonProperties": "{\"aws_secret_arn\": \"arn:aws:secretsmanager:region:account_id:secret:secret_name\", \"account\":\"account_id\"}"}" } } }
Une fois votre fichier de définition mis à jour, suivez les étapes décrites dans Création de connexions AWS Glue pour créer votre connexion AWS Glue.
Création de connexions AWS Glue
Pour créer une connexion AWS Glue via l’AWS CLI, utilisez votre fichier de définition de connexion et exécutez cette commande AWS CLI. Remplacez l’espace réservé region par le nom de votre région AWS et indiquez le chemin local vers votre fichier de définition.
Note
Le chemin d’accès à votre fichier de définition de configuration doit être précédé de file://.
aws --regionregionglue create-connection --cli-input-json file://path_to_file/sagemaker-sql-connection.json
Vérifiez que la connexion AWS Glue a été créée en exécutant la commande suivante et vérifiez le nom de votre connexion.
aws --regionregionglue get-connections
Vous pouvez également mettre à jour une connexion AWS Glue existante comme suit :
-
Modifiez le fichier de définition de connexion AWS Glue selon vos besoins.
-
Exécutez la commande suivante pour mettre à jour la connexion.
aws --regionregionglue update-connection --nameglue_connection_name--cli-input-json file://path_to_file/sagemaker-sql-connection.json