Bastionhost prend en charge la maintenance et l'audit des instances ApsaraDB RDS for MySQL, SQL Server et PostgreSQL, des clusters PolarDB for MySQL, PostgreSQL et PostgreSQL (compatible Oracle), ainsi que des bases de données MySQL, SQL Server, PostgreSQL et Oracle auto-gérées. Vous pouvez également utiliser un jeton de maintenance pour établir un tunnel SSH afin d'effectuer des opérations de maintenance et d'audit. Cette rubrique explique comment effectuer la maintenance des bases de données sur un système Windows.
Prérequis
Vous avez installé un outil de maintenance pour bases de données prenant en charge les tunnels Secure Shell (SSH) sur votre hôte local, tel que DBeaver, DbVisualizer, Navicat Premium ou Navicat for MySQL.
-
Vous avez obtenu l'adresse de maintenance de l'instance Bastionhost. Vous trouverez cette adresse dans la section Bastion Host Information de la page Overview. Pour plus d'informations, consultez la rubrique Présentation de la console Bastionhost.
RemarqueBastionhost fournit une adresse de maintenance fixe sous forme de nom de domaine et utilise des adresses IP dynamiques pour prévenir les attaques. L'adresse IP résolue à partir de l'adresse de maintenance peut changer. Pour éviter les échecs de maintenance dus aux changements d'adresse IP, vous devez utiliser le nom de domaine fourni par Bastionhost pour vos opérations de maintenance.
Se connecter avec un outil client via un tunnel SSH
Cette rubrique utilise Navicat Premium comme exemple pour décrire comment se connecter à différents types de bases de données depuis un système Windows.
-
Connectez-vous à la console Bastionhost ou au portail de maintenance pour obtenir un jeton de maintenance. Pour plus d'informations, consultez la rubrique Obtenir un jeton de maintenance.
RemarqueLorsque vous obtenez un jeton de maintenance depuis le portail de maintenance, si le compte de base de données actuel n'est pas géré par Bastionhost, vous devez d'abord configurer les informations de base du compte de base de données dans la boîte de dialogue O&M Token. Pour savoir comment créer un compte de base de données, consultez la rubrique Gestion des bases de données.
Les jetons de maintenance doivent être utilisés pendant leur période de validité. Un administrateur peut définir cette période dans la console Bastionhost. Si l'approbation de maintenance est activée, la période de validité définie par l'administrateur lors du processus d'approbation s'applique.
Si un administrateur autorise les utilisateurs de maintenance à renouveler leurs propres jetons, ces derniers peuvent les renouveler avant leur expiration. Une fois qu'un jeton a expiré, l'utilisateur doit en demander un nouveau. Si l'approbation de maintenance est activée, les utilisateurs ne peuvent pas renouveler les jetons. Après modification des paramètres du jeton, vous devez demander un nouveau jeton ou mettre à jour le jeton existant pour que les nouveaux paramètres prennent effet.
Si un jeton est valide mais que la connexion de maintenance échoue, il est possible que le nombre de connexions de maintenance simultanées ait atteint la limite supérieure. Dans ce cas, contactez un administrateur pour mettre à niveau le type d'instance de votre instance Bastionhost ou libérer les connexions inactives. Une autre raison possible est qu'un administrateur a bloqué les demandes de maintenance provenant de votre adresse IP source ou durant la période actuelle. Contactez alors l'administrateur pour lever ces restrictions.
Les journaux d'audit enregistrent l'utilisateur qui a demandé le jeton, et non le nom d'utilisateur ou le compte d'actif saisi sur le client.
-
Ouvrez Navicat Premium et créez une connexion vers la base de données cible.
-
Dans l'onglet General, configurez les paramètres de connexion comme indiqué dans le tableau suivant.
Parameter
Description
Host
The address of the database asset.
User name
The user name for the database asset.
Password
-
For MySQL, SQL Server, and PostgreSQL databases: If the password of the database account is hosted in Bastionhost, you do not need to enter a password. If the password is not hosted, enter the password for the database account.
-
For Oracle databases:
-
If the password of the database account is hosted in Bastionhost, enter
123456and select the logon property specified in the O&M token details. -
If the password is not hosted, enter the password for the database account and select the specified logon property.
-
-
-
Dans l'onglet SSH, configurez les informations de base pour Bastionhost comme indiqué dans le tableau suivant.
Parameter
Description
Use SSH tunnel
Sélectionnez Use SSH tunnel.
Host
L'adresse de maintenance de l'instance Bastionhost.
Port
Le port SSH de maintenance de l'instance Bastionhost. Le port par défaut est 60022.
User name
Votre nom d'utilisateur Bastionhost.
Password
Le jeton de maintenance que vous avez obtenu.
-
Dans Navicat Premium, double-cliquez sur la nouvelle connexion à la base de données pour vous connecter à l'actif de base de données et effectuer les opérations de maintenance.
Se connecter avec la CLI via un tunnel SSH
Cette rubrique utilise le protocole MySQL comme exemple pour décrire comment se connecter à l'aide de l'interface de ligne de commande (CLI).
L'utilisation de la CLI pour effectuer la maintenance des bases de données Oracle via un tunnel SSH n'est pas prise en charge.
Connectez-vous au portail de maintenance. Pour plus d'informations, consultez la rubrique Se connecter au portail de maintenance.
Dans le volet de navigation de gauche, cliquez sur Databases.
Sur la page Database O&M, recherchez la base de données cible et, dans la colonne O&M Token, cliquez sur le jeton de maintenance correspondant.
-
Dans la boîte de dialogue O&M Token, sélectionnez un compte de base de données et cliquez sur Obtain O&M Token.
RemarqueLorsque vous obtenez un jeton de maintenance depuis le portail de maintenance, si le compte de base de données actuel n'est pas géré par Bastionhost, vous devez d'abord configurer les informations de base du compte de base de données dans la boîte de dialogue O&M Token. Pour savoir comment créer un compte de base de données, consultez la rubrique Gestion des bases de données.
Les jetons de maintenance doivent être utilisés pendant leur période de validité. Un administrateur peut définir cette période dans la console Bastionhost. Si l'approbation de maintenance est activée, la période de validité définie par l'administrateur lors du processus d'approbation s'applique.
Si un administrateur autorise les utilisateurs de maintenance à renouveler leurs propres jetons, ces derniers peuvent les renouveler avant leur expiration. Une fois qu'un jeton a expiré, l'utilisateur doit en demander un nouveau. Si l'approbation de maintenance est activée, les utilisateurs ne peuvent pas renouveler les jetons. Après modification des paramètres du jeton, vous devez demander un nouveau jeton ou mettre à jour le jeton existant pour que les nouveaux paramètres prennent effet.
Si un jeton est valide mais que la connexion de maintenance échoue, il est possible que le nombre de connexions de maintenance simultanées ait atteint la limite supérieure. Dans ce cas, contactez un administrateur pour mettre à niveau le type d'instance de votre instance Bastionhost ou libérer les connexions inactives. Une autre raison possible est qu'un administrateur a bloqué les demandes de maintenance provenant de votre adresse IP source ou durant la période actuelle. Contactez alors l'administrateur pour lever ces restrictions.
Les journaux d'audit enregistrent l'utilisateur qui a demandé le jeton, et non le nom d'utilisateur ou le compte d'actif saisi sur le client.
-
Ouvrez un outil CLI et exécutez la commande suivante.
ssh -N -L <localport>:<databaseAddress>:<databasePort> <bastionusername>@<bastionAddress> -p <bastionPort>Paramètres
Parameter
Description
localport
Le port d'écoute local personnalisé pour le tunnel. Assurez-vous que ce port n'entre pas en conflit avec les ports d'écoute existants sur votre machine locale.
databaseAddress
L'adresse de l'actif de base de données cible.
databasePort
Le port de l'actif de base de données cible.
bastionusername
Votre nom d'utilisateur pour Bastionhost.
bastionAddress
L'adresse de maintenance de votre instance Bastionhost.
bastionPort
Le port SSH de maintenance de votre instance Bastionhost. Le port par défaut est 60022.
-
Lorsque vous êtes invité à saisir un mot de passe, entrez le jeton de maintenance et appuyez sur Entrée.
[root@localhost ~]# ssh -N -L 33061:rm-xxxx.mysql.rds.aliyuncs.com:3306 testuser@bh-xxxx.bastionhost.aliyuncs.com -p 60022 The authenticity of host '[bh-xxxx.bastionhost.aliyuncs.com]:60022 ([47.x.x.x]:60022)' can't be established. RSA key fingerprint is SHA256:ji2v1TxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxLKU. RSA key fingerprint is MD5:61:0e:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:9e:01. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[bh-xxxx.bastionhost.aliyuncs.com]:60022' (RSA) to the list of known hosts. testuser@bh-xxxx.bastionhost.aliyuncs.com's password: -
Ouvrez une autre fenêtre CLI et vérifiez que le port local personnalisé est à l'état d'écoute. LISTEN indique que le port est à l'état d'écoute.
ss -an | grep 33061 tcp LISTEN 0 128 127.0.0.1:33061 *:* tcp LISTEN 0 128 ::1:33061 :::* -
Exécutez la commande suivante pour vous connecter à la base de données MySQL.
mysql -h 127.0.0.1 -u <accountname> -P <localport><accountname>est un paramètre obligatoire.accountnamespécifie le nom d'utilisateur de la base de données.<localport>est un paramètre obligatoire.localportspécifie le port d'écoute local que vous avez défini à l'étape Étape 5.
Une fois connecté, vous pouvez exécuter des commandes de maintenance.
[root@localhost ~]# mysql -h 127.0.0.1 -u <accountname> -P 33061 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 4041 Server version: 8.0.13 Source distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]>