Se connecter à Cloud SQL
En tant qu'administrateur BigQuery, vous pouvez créer une connexion permettant d'accéder aux données Cloud SQL. Cette connexion permet aux analystes de données d'interroger des données dans Cloud SQL. Pour vous connecter à Cloud SQL, procédez comme suit :
Avant de commencer
- Sélectionnez le projet contenant la base de données Cloud SQL.
- Activez l'API BigQuery Connection.
- Assurez-vous que l'instance Cloud SQL dispose d'une connexion IP publique ou d'une connexion privée :
Pour sécuriser vos instances Cloud SQL, vous pouvez ajouter une connectivité IP publique sans adresse autorisée. L'instance devient ainsi inaccessible depuis l'Internet public, mais accessible aux requêtes depuis BigQuery.
Pour permettre à BigQuery d'accéder aux données Cloud SQL via une connexion privée, configurez la connectivité IP privée pour une instance Cloud SQL nouvelle ou existante, puis sélectionnez la case à cocher Chemin d'accès privé pour les services Google Cloud. Ce service utilise un chemin d'accès direct interne au lieu de l'adresse IP privée dans le cloud privé virtuel.
-
Pour obtenir les autorisations nécessaires pour créer une connexion Cloud SQL, demandez à votre administrateur de vous accorder le rôle IAM Administrateur de connexion BigQuery (
roles/bigquery.connectionAdmin
) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Créer des connexions Cloud SQL
Il est recommandé d'utiliser des connexions pour gérer les identifiants de base de données lorsque vous vous connectez à Cloud SQL. Les connexions sont chiffrées et stockées de manière sécurisée dans le service de connexion BigQuery. Si les identifiants utilisateur sont valides pour d'autres données de la source, vous pouvez réutiliser la connexion. Par exemple, vous pouvez utiliser une connexion pour interroger plusieurs bases de données résidant dans la même instance Cloud SQL.
Sélectionnez l'une des options suivantes pour créer une connexion Cloud SQL :
Console
Accédez à la page BigQuery.
Dans le volet Explorateur, cliquez sur
Ajouter des données.Dans la boîte de dialogue Ajouter des données, cliquez sur Connexions aux sources de données externes :
Dans la boîte de dialogue Source de données externes, saisissez les informations suivantes :
- Dans le champ Type de connexion, sélectionnez le type de source, par exemple MySQL ou Postgres.
- Dans le champ Connection ID (ID de connexion), saisissez un identifiant pour la ressource de connexion. Les lettres, les chiffres et les traits de soulignement sont autorisés. Exemple :
bq_sql_connection
. - Pour Emplacement des données, sélectionnez un emplacement (ou une région) BigQuery compatible avec votre région de source de données externe.
- Facultatif : Dans le champ Nom descriptif, saisissez un nom clair pour identifier la connexion, tel que
My connection resource
. Le nom descriptif peut être n'importe quelle valeur permettant d'identifier la ressource de connexion si vous devez la modifier par la suite. - Facultatif : Dans le champ Description, saisissez une description pour la ressource de connexion.
- Facultatif : Chiffrement : Si vous souhaitez utiliser une clé de chiffrement gérée par le client (CMEK) pour chiffrer vos identifiants, sélectionnez Clé de chiffrement gérée par le client (CMEK), puis sélectionnez une clé gérée par le client. Sinon, vos identifiants sont protégés par la clé par défaut, appartenant à Google et gérée par Google.
- Si vous avez choisi Cloud SQL MySQL ou Postgres comme type de connexion, saisissez dans le champ Nom de la connexion Cloud SQL lenom complet de l'instance Cloud SQL, généralement au format
project-id:location-id:instance-id
. Vous pouvez trouver l'ID d'instance sur la page des détails de l'instance Cloud SQL que vous souhaitez interroger. - Dans le champ Nom de la base de données, saisissez le nom de la base de données.
- Comme Nom d'utilisateur de base de données, saisissez le nom d'utilisateur de la base de données.
Dans le champ Mot de passe de la base de données, saisissez le mot de passe d'accès à la base de données.
- Facultatif : Pour afficher le mot de passe, cliquez sur Afficher le mot de passe.
Cliquez sur Créer une connexion.
Cliquez sur Accéder à la connexion.
Dans le volet Informations de connexion, copiez l'ID du compte de service à utiliser à l'étape suivante.
bq
Saisissez la commande bq mk
, puis indiquez l'option de connexion --connection
. Les paramètres suivants sont également requis :
--connection_type
--properties
--connection_credential
--project_id
--location
Les options suivantes sont facultatives :
--display_name
: nom descriptif de la connexion.--description
: description de la connexion.
Le connection_id
est un paramètre facultatif qui peut être ajouté en tant que dernier argument de la commande utilisée pour le stockage en interne. Si aucun ID de connexion n'est fourni, un ID unique est généré automatiquement.
Le connection_id
peut contenir des lettres, des chiffres et des traits de soulignement.
bq mk --connection --display_name='friendly name' --connection_type=TYPE \
--properties=PROPERTIES --connection_credential=CREDENTIALS \
--project_id=PROJECT_ID --location=LOCATION \
CONNECTION_ID
Remplacez les éléments suivants :
TYPE
: type de la source de données externe.PROPERTIES
: les paramètres de la connexion créée au format JSON. Exemple :--properties='{"param":"param_value"}'
. Pour créer une ressource de connexion, vous devez fournir les paramètresinstanceID
,database
ettype
.CREDENTIALS
: les paramètresusername
etpassword
.PROJECT_ID
: ID de votre projet.LOCATION
: région où se trouve votre instance Cloud SQL.CONNECTION_ID
: identifiant de la connexion.
Par exemple, la commande suivante crée une ressource de connexion nommée "my_new_connection" (nom descriptif : "My new connection") dans un projet ayant l'ID federation-test
.
bq mk --connection --display_name='friendly name' --connection_type='CLOUD_SQL' \
--properties='{"instanceId":"federation-test:us-central1:mytestsql","database":"mydatabase","type":"MYSQL"}' \
--connection_credential='{"username":"myusername", "password":"mypassword"}' \
--project_id=federation-test --location=us my_connection_id
API
Au sein de l'API BigQuery Connection, vous pouvez appeler CreateConnection
dans ConnectionService
pour instancier une connexion. Pour en savoir plus, consultez la page sur les bibliothèques clientes.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Accorder l'accès au compte de service
Un compte de service est créé automatiquement lorsque vous créez la première connexion à Cloud SQL au sein du projet. Le nom du compte de service est Agent du service de connexion BigQuery. Pour obtenir l'ID du compte de service, affichez vos informations de connexion. L'ID du compte de service est au format suivant :
service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com
.
Pour vous connecter à Cloud SQL, vous devez accorder à la nouvelle connexion un accès en lecture seule à Cloud SQL afin que BigQuery puisse accéder aux fichiers pour le compte des utilisateurs. Le compte de service doit disposer des autorisations suivantes :
cloudsql.instances.connect
cloudsql.instances.get
Vous pouvez accorder au compte de service associé à la connexion le rôle IAM de client Cloud SQL (roles/cloudsql.client
), qui dispose de ces autorisations.
Vous pouvez omettre cette étape si le compte de service dispose déjà des autorisations requises.
Console
Accédez à la page IAM et administration.
Cliquez sur
Accorder l'accès.La boîte de dialogue Ajouter des comptes principaux s'ouvre.
Dans le champ Nouveaux comptes principaux, saisissez le nom du compte de service Agent du service de connexion BigQuery ou l'ID du compte de service récupéré depuis les informations de connexion.
Dans le champ Sélectionner un rôle, sélectionnez Cloud SQL, puis Client Cloud SQL.
Cliquez sur Enregistrer.
gcloud
Exécutez la commande gcloud projects add-iam-policy-binding
:
gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:SERVICE_ACCOUNT_ID --role=roles/cloudsql.client
Indiquez les valeurs suivantes :
PROJECT_ID
: ID de votre projet Google Cloud.SERVICE_ACCOUNT_ID
: ID du compte de service issu des informations de connexion.
Partager des connexions avec les utilisateurs
Vous pouvez attribuer les rôles suivants pour permettre aux utilisateurs d'interroger des données et de gérer les connexions :
roles/bigquery.connectionUser
permet aux utilisateurs de se connecter à des sources de données externes et d'y exécuter des requêtes.roles/bigquery.connectionAdmin
permet aux utilisateurs de gérer les connexions.
Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.
Sélectionnez l'une des options suivantes :
Console
Accédez à la page BigQuery.
Les connexions sont répertoriées dans votre projet, dans un groupe appelé Connexions externes.
Dans le volet Explorateur, cliquez sur votre nom de projet > Connexions externes > connexion.
Dans le volet Détails, cliquez sur Partager pour partager une connexion. Ensuite, procédez comme suit :
Dans la boîte de dialogue Autorisations de connexion, partagez la connexion avec d'autres comptes principaux en ajoutant ou en modifiant des comptes principaux.
Cliquez sur Enregistrer.
bq
Vous ne pouvez pas partager de connexion avec l'outil de ligne de commande bq. Pour partager une connexion, utilisez la console Google Cloud ou la méthode de l'API BigQuery Connections permettant le partage de connexion.
API
Utilisez la méthode projects.locations.connections.setIAM
dans la section de référence de l'API REST BigQuery Connections et fournissez une instance de la ressource policy
.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Étapes suivantes
- Découvrez les différents types de connexions.
- Découvrez comment gérer les connexions.
- Découvrez les requêtes fédérées.
- Découvrez comment interroger des données Cloud SQL.