Règles d'administration des connexions

Cette page fournit des informations générales sur l'utilisation d'une règle d'administration des connexions avec votre projet Cloud SQL. Pour commencer à créer des règles d'administration des connexions, consultez la section Configurer des règles d'administration des connexions.

Présentation

Les règles d'administration des connexions permettent un contrôle centralisé des paramètres des adresses IP publiques de Cloud SQL, afin de réduire la surface d'attaque de sécurité des instances Cloud SQL sur Internet. Un administrateur des règles d'administration peut utiliser une règle de connexion pour restreindre les configurations des adresses IP publiques de Cloud SQL au niveau du projet, du dossier ou de l'organisation.

Comprendre les règles d'administration

Les règles d'administration permettent aux administrateurs de définir des restrictions sur la manière dont les utilisateurs peuvent configurer des instances au sein de cette organisation. Les règles d'administration définissent des règles, appelées contraintes, que l'administrateur place sur un projet, un dossier ou une organisation. Les contraintes appliquent la règle à toutes les instances. Par exemple, si vous essayez d'ajouter une instance à une entité dotée d'une règle d'administration, la contrainte exécute une vérification pour s'assurer que la configuration de l'instance respecte les exigences de la contrainte. Si la vérification échoue, Cloud SQL ne crée pas l'instance.

Lorsque vous ajoutez des projets à une organisation ou un dossier qui utilise une règle d'administration, les projets héritent des contraintes de cette règle.

Pour en savoir plus sur les règles d'administration, consultez les sections concernant le service de règles d'administration, les contraintes et l'évaluation hiérarchique.

Contraintes liées aux règles d'administration des connexions

Les règles d'administration des connexions s'appuient sur deux types de contraintes pour réguler l'accès aux instances Cloud SQL.

Contrainte Description Par défaut
Limiter l'accès des adresses IP publiques sur les instances Cloud SQL Cette contrainte booléenne limite la configuration d'adresses IP publiques, sur les instances Cloud SQL pour lesquelles cette contrainte est définie sur True. Elle n'est pas rétroactive : les instances Cloud SQL comportant déjà des adresses IP publiques fonctionnent toujours, même lorsque la contrainte est appliquée.
Par défaut, l'accès aux adresses IP publiques est accordé aux instances Cloud SQL.

constraints/sql.restrictPublicIp
ALLOW (Autoriser)
Limiter le nombre de réseaux autorisés sur les instances Cloud SQL Cette contrainte booléenne limite l'ajout de réseaux autorisés pour l'accès à la base de données sans proxy, sur les instances Cloud SQL pour lesquelles cette contrainte est définie sur True. Elle n'est pas rétroactive : les instances Cloud SQL comportant déjà des réseaux autorisés fonctionnent toujours, même lorsque la contrainte est appliquée.
Par défaut, des réseaux autorisés peuvent être ajoutés aux instances Cloud SQL.

constraints/sql.restrictAuthorizedNetworks
ALLOW (Autoriser)

Règles d'application des règles d'administration des connexions

Cloud SQL applique les règles d'administration des connexions lors des tâches suivantes :

  • Création d'une instance
  • Création d'une instance dupliquée
  • Reconfiguration d'une instance
  • Clonage d'une instance
  • Restauration d'une instance

Comme pour toutes les contraintes des règles d'administration Cloud SQL, les modifications apportées aux règles ne s'appliquent pas rétroactivement aux instances existantes.

  • Une nouvelle règle n'a aucun effet sur les instances existantes.
  • Une configuration d'instance existante reste valide, sauf si un utilisateur change la configuration de l'instance d'un état de conformité à un état de non-conformité via la console, l'outil de ligne de commande gcloud ou un appel de procédure à distance (RPC).
  • Une mise à jour de maintenance planifiée n'entraîne pas l'application de règles, car la maintenance ne modifie pas la configuration des instances.

Restrictions

Lorsque vous définissez les règles d'administration des connexions pour chaque projet, vous devez déterminer si l'une des conditions suivantes s'applique à votre projet :

Conflits d'adresses IP publiques d'instances dupliquées avec accès en lecture

Les instances dupliquées avec accès en lecture de Cloud SQL se connectent à l'instance principale via la connexion sans proxy à la base de données. Vous utilisez le paramètre Réseaux autorisés de l'instance principale pour configurer explicitement ou implicitement les adresses IP publiques des instances dupliquées avec accès en lecture.

Si l'instance principale et l'instance dupliquée se trouvent dans la même région et activent une adresse IP privée, il n'y a aucun conflit avec les contraintes des règles d'administration des connexions.

Incompatibilité avec gcloud sql connect

La commande gcloud sql connect utilise une adresse IP publique pour se connecter directement aux instances Cloud SQL. Par conséquent, elle n'est pas compatible avec la contrainte sql.restrictPublicIp. Il s'agit généralement d'un problème pour les instances qui utilisent une adresse IP privée.

En outre, la commande gcloud sql connect n'utilise pas le proxy, ce qui la rend incompatible avec la contrainte sql.restrictAuthorizedNetworks.

Utilisez plutôt la version bêta de la commande :

gcloud beta auth login
gcloud beta sql connect [INSTANCE_ID]

Cette version utilise le proxy Cloud SQL. Pour plus d'informations, consultez la documentation de référence sur gcloud beta sql connect.

La première fois que vous exécutez cette commande, il vous est demandé d'installer le composant gcloud du proxy Cloud SQL. Pour cela, vous devez disposer d'une autorisation en écriture sur le répertoire d'installation du SDK gcloud sur votre machine cliente.

Accès aux services hébergés par GCP

Si votre application nécessite un accès aux instances Cloud SQL à partir d'autres services hébergés par GCP, tels qu'App Engine, elle doit utiliser des adresses IP publiques. N'appliquez pas la contrainte sql.restrictPublicIp sur le projet. Vous pouvez cependant appliquer sql.restrictAuthorizedNetworks, car les connexions à partir d'App Engine passent par la connexion sécurisée (proxy).

Adresses IP privées non RFC 1918

Les connexions à une instance Cloud SQL à l'aide d'une adresse IP privée sont automatiquement autorisées pour les plages d'adresses RFC 1918. De cette façon, tous les clients privés peuvent accéder à la base de données sans passer par le proxy. Les plages d'adresses non-RFC 1918 doivent être configurées en tant que réseaux autorisés.

Pour utiliser des plages d'adresses IP privées non-RFC 1918 qui ne sont pas configurées dans les réseaux autorisés, vous pouvez effectuer l'une des actions suivantes, ou les deux :

  1. Ne pas appliquer sql.restrictAuthorizedNetworks. Si les réseaux autorisés appliquent également sql.restrictPublicIp, vous ne pouvez pas les configurer dans la console. Utilisez plutôt l'API Cloud SQL ou l'outil de ligne de commande gcloud.
  2. Utiliser des connexions avec proxy pour les instances IP privées.

Problèmes connus

Contrainte de limitation des réseaux autorisés

Pour les instances Cloud SQL ayant une entrée de réseaux autorisés préexistante, d'autres entrées de réseaux autorisés sont permises, même si vous utilisez la contrainte de limitation du nombre de réseaux autorisés sur les instances Cloud SQL (sql.restrictAndhorizedNetworks). Cela concerne également les instances ayant activé les instances dupliquées avec accès en lecture seule ou les instances dupliquées de basculement. En effet, ces instances dupliquées disposent d'une entrée de réseaux autorisés qui n'est pas visible par l'utilisateur.

Ce problème connu sera éliminé si la contrainte ne permet que de supprimer, et non d'ajouter, des entrées de réseaux autorisés.

Étapes suivantes