Cette page présente le proxy d'authentification AlloyDB, un connecteur qui vous permet d'établir des connexions chiffrées et autorisées aux bases de données AlloyDB.
Pour obtenir un guide détaillé sur l'utilisation du proxy d'authentification, consultez la section Se connecter à l'aide du proxy d'authentification AlloyDB.
Présentation
Le proxy d'authentification présente les avantages suivants par rapport à la connexion directe des clients aux bases de données AlloyDB:
Autorisation de connexion basée sur IAM (AuthZ) : le proxy d'authentification utilise les identifiants et les autorisations d'un principal IAM pour autoriser les connexions aux instances AlloyDB.
Communication sécurisée et chiffrée:le proxy d'authentification crée, utilise et gère automatiquement une connexion TLS 1.3 à l'aide d'un algorithme AES 256 bits entre votre client et une instance AlloyDB pour valider les identités du client et du serveur, et chiffrer le trafic de données.
Pour en savoir plus sur la connexion aux instances AlloyDB, consultez la section Présentation de la connexion.
Fonctionnement du proxy d'authentification AlloyDB
Le proxy d'authentification AlloyDB fonctionne avec un client local qui s'exécute dans l'environnement local. Pour communiquer avec le proxy d'authentification AlloyDB, votre application utilise le protocole de base de données standard de votre base de données.
Le proxy d'authentification AlloyDB utilise un tunnel sécurisé (TLS 1.3, algorithme AES 256 bits) pour communiquer avec son processus associé exécuté sur le serveur. Chaque connexion établie via le proxy d'authentification AlloyDB crée une connexion à l'instance AlloyDB.
Lorsqu'une application se connecte au proxy d'authentification AlloyDB, elle vérifie si une connexion existante entre elle et l'instance AlloyDB cible est disponible. Si la connexion n'existe pas, elle appelle les API AlloyDB Admin pour obtenir un certificat SSL éphémère et l'utilise pour se connecter à AlloyDB. Les certificats SSL éphémères expirent au bout de 24 heures. Le proxy d'authentification AlloyDB actualise ces certificats avant leur expiration.
Bien que le proxy d'authentification AlloyDB puisse écouter sur n'importe quel port, il ne crée des connexions sortantes vers votre instance AlloyDB que sur le port 5433. Étant donné que le proxy d'authentification AlloyDB appelle les API via le nom de domaine alloydb.googleapis.com
qui ne possède pas d'adresse IP fixe, toutes les connexions TCP sortantes sur le port 443 doivent être autorisées. Si votre machine cliente dispose d'une règle de pare-feu sortante, assurez-vous qu'elle autorise les connexions sortantes sur le port 5433 sur l'adresse IP de votre instance AlloyDB.
Comment le proxy d'authentification AlloyDB autorise les principaux IAM
Pour autoriser la connexion d'un client à une instance AlloyDB, le client du proxy d'authentification s'authentifie auprès de Google Cloud à l'aide des identifiants du principal IAM sur le client, puis vérifie que le principal IAM dispose des rôles IAM Client AlloyDB Cloud (roles/alloydb.client
) et Consommateur d'utilisation de service (roles/serviceusage.serviceUsageConsumer
).
Pour localiser les identifiants IAM sur le client, le client du proxy d'authentification recherche chacun des éléments suivants, en utilisant le premier qu'il trouve pour tenter d'authentifier Google Cloud:
Identifiants fournis par l'option --credentials-file
Utilisez un compte de service pour créer et télécharger le fichier de clé JSON associé, et définissez l'option--credentials-file
sur le chemin du fichier lorsque vous démarrez le client du proxy d'authentification. Le compte de service doit disposer des rôles IAM Client Cloud AlloyDB (roles/alloydb.client
) et Consommateur de service Usage (roles/serviceusage.serviceUsageConsumer
) pour l'instance AlloyDB.Pour utiliser cette option sur la ligne de commande, appelez la commande
alloydb-auth-proxy
avec l'option--credentials-file
définie sur le chemin d'accès et le nom de fichier d'un fichier d'identifiants JSON. Le chemin d'accès peut être absolu, ou relatif au répertoire de travail actuel.Identifiants fournis par l'option --token
Créez un jeton d'accès et appelez la commande
alloydb-auth-proxy
avec l'option--token
définie sur un jeton d'accès OAuth 2.0.Identifiants fournis par une variable d'environnement
Cette option est semblable à l'utilisation de l'indicateur
--credentials-file
, sauf que vous spécifiez le fichier d'identifiants JSON que vous définissez dans la variable d'environnementGOOGLE_APPLICATION_CREDENTIALS
au lieu d'utiliser l'indicateur--credentials-file
.Identifiants d'un client Google Cloud CLI authentifié
Si vous avez installé la CLI gcloud et que vous vous êtes authentifié avec votre compte personnel, le client du proxy d'authentification peut utiliser les mêmes identifiants de compte. Cette méthode est particulièrement utile pour rendre opérationnel un environnement de développement.
Si aucun compte n'a été sélectionné pour
gcloud auth login
, le client du proxy d'authentification recherche un compte sélectionné pourgcloud auth application-default login
.Identifiants associés à l'instance Compute Engine
Si vous vous connectez à AlloyDB depuis une instance Compute Engine, le client du proxy d'authentification peut utiliser le compte de service associé à l'instance Compute Engine. Si le compte de service dispose des rôles IAM Client Cloud AlloyDB (
roles/alloydb.client
) et Consommateur de service Usage (roles/serviceusage.serviceUsageConsumer
) pour l'instance AlloyDB, le client Auth Proxy s'authentifie correctement.Si l'instance Compute Engine se trouve dans le même projet que l'instance AlloyDB, le compte de service par défaut de l'instance Compute Engine dispose des autorisations nécessaires pour authentifier AlloyDB. Si ces deux instances sont dans des projets différents, vous devez ajouter le compte de service de l'instance Compute Engine au projet contenant l'instance AlloyDB.
Compte de service par défaut de l'environnement
Si le client du proxy d'authentification ne trouve pas les identifiants dans l'un des emplacements abordés précédemment, il suit la logique décrite dans la section S'authentifier en tant que compte de service. Certains environnements (tels que Compute Engine, App Engine et d'autres) fournissent un compte de service par défaut que votre application peut utiliser pour s'authentifier par défaut. Si vous utilisez un compte de service par défaut, il doit disposer des rôles IAM Client Cloud AlloyDB (roles/alloydb.client
) et Consommateur de service Usage (roles/serviceusage.serviceUsageConsumer
).Pour en savoir plus sur l'approche de Google Cloud en matière d'authentification, consultez la page Présentation de l'authentification.