Création de connexions AWS Glue (pour les administrateurs) - Amazon SageMaker AI

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:CreateConnection autrement.

  • 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, ATHENA ou SNOWFLAKE.

  • 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é ConnectionProperties sont 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 dans PythonProperties. 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.

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
  1. Depuis la console AWS, accédez à Secrets Manager.

  2. Choisissez Store a new secret (Stocker un nouveau secret).

  3. Sous Type de secret, choisissez Informations d’identification pour Amazon Redshift.

  4. Entrez le nom d’utilisateur et le mot de passe de l’administrateur configurés lors du lancement du cluster Amazon Redshift.

  5. Sélectionnez le cluster Amazon Redshift associé aux secrets.

  6. Donnez un nom à votre secret.

  7. 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.

  8. 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é PythonProperties sont 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_arn par 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_commit est défini sur true dans 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é ConnectionProperties sont 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_name par le nom de votre catalogue, s3_staging_dir par l’URI (Uniform Resource Identifier) Amazon S3 de votre répertoire de sortie dans votre compartiment Amazon S3 et region_name par 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_name ou s3_staging_dir, à un secret.

    • Si vous spécifiez un workgroup, il n’est pas nécessaire de spécifier s3_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
  1. Depuis la console AWS, accédez à AWS Secrets Manager.

  2. Choisissez Store a new secret (Stocker un nouveau secret).

  3. Sous Type de secret, choisissez Autre type de secret.

  4. Dans la paire clé-valeur, choisissez Texte brut, puis copiez le contenu JSON suivant. Remplacez user, password et account par leurs valeurs.

    { "user":"snowflake_user", "password":"snowflake_password", "account":"account_id" }
  5. Nommez le secret.

  6. 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.

  7. 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é ConnectionProperties sont 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_arn par l’ARN du secret créé précédemment, et votre identifiant de compte dans account.

  • 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 --region region glue 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 --region region glue 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 --region region glue update-connection --name glue_connection_name --cli-input-json file://path_to_file/sagemaker-sql-connection.json