Règles d'administration Cloud SQL

Cette page explique comment utiliser une règle d'administration avec votre projet Cloud SQL. Pour commencer à créer des règles d'administration, consultez la page Ajouter des règles d'administration.

Présentation

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.

Les types de règles d'administration spécifiques à Cloud SQL sont les suivants :

Règles d'administration prédéfinies

Vous pouvez utiliser les contraintes prédéfinies pour contrôler les paramètres des adresses IP publiques et les paramètres de clé de chiffrement gérée par le client (CMEK) des instances Cloud SQL. Pour un contrôle plus précis et personnalisable des autres paramètres compatibles, vous pouvez utiliser des contraintes personnalisées. Pour en savoir plus, consultez la page Règles d'administration personnalisées.

Règles d'administration des connexions

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.

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. Cette contrainte 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 aux instances Cloud SQL est autorisé.

constraints/sql.restrictPublicIp
AUTORISER
Limiter le nombre de réseaux autorisés sur les instances Cloud SQL Lorsqu'elle est définie sur True, 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. Cette contrainte 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, vous pouvez ajouter des réseaux autorisés aux instances Cloud SQL.

constraints/sql.restrictAuthorizedNetworks
AUTORISER

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

Lorsque vous définissez les règles d'administration 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. 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 d'authentification 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 CLI du proxy d'authentification Cloud SQL. Pour cela, vous devez disposer d'une autorisation en écriture sur le répertoire d'installation du SDK gcloud CLI sur votre machine cliente.

Accès aux services hébergés par Google Cloud

Si votre application nécessite un accès aux instances Cloud SQL à partir d'autres services hébergés par Google Cloud, 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).

Conflits d'adresses IP publiques d'instances dupliquées de basculement MySQL

Une instance dupliquée de basculement MySQL fonctionne comme une instance dupliquée avec accès en lecture pour les règles d'administration des connexions. 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.

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. Cela permet à tous les clients privés d'accéder à la base de données sans passer par le proxy. Vous devez configurer des plages d'adresses non-RFC 1918 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. N'appliquez pas sql.restrictAuthorizedNetworks. Si les réseaux autorisés appliquent également sql.restrictPublicIp, vous ne pourrez pas les configurer dans la console. Utilisez plutôt l'API Cloud SQL ou gcloud CLI.
  2. Utiliser des connexions avec proxy pour les instances IP privées.

Règles d'administration des clés de chiffrement gérées par le client (CMEK)

Cloud SQL accepte deux contraintes de règle d'administration qui contribuent à assurer la protection CMEK dans l'ensemble d'une organisation : constraints/gcp.restrictNonCmekServices et constraints/gcp.restrictCmekCryptoKeyProjects.

La contrainte constraints/gcp.restrictNonCmekServices nécessite une protection CMEK pour sqladmin.googleapis.com. Lorsque vous ajoutez cette contrainte et que vous ajoutez sqladmin.googleapis.com à la liste des services de la règle Deny, Cloud SQL refuse de créer des instances, sauf si elles sont activées avec CMEK.

La contrainte constraints/gcp.restrictCmekCryptoKeyProjects limite les clés de chiffrement Cloud KMS à utiliser pour la protection CMEK dans les instances Cloud SQL pour MySQL. Avec cette contrainte, lorsque Cloud SQL crée une instance avec CMEK, celle-ci doit provenir d'un projet, d'un dossier ou d'une organisation autorisée.

Ces contraintes ne sont appliquées qu'aux instances Cloud SQL pour MySQL nouvellement créées.

Pour en savoir plus, consultez la page Règles d'administration CMEK. Pour en savoir plus sur les contraintes des règles d'administration CMEK, consultez la page Contraintes liées aux règles d'administration.

Règles d'administration personnalisées

Pour un contrôle précis et personnalisable des paramètres, vous pouvez créer des contraintes personnalisées et les utiliser dans une règle d'administration personnalisée. Vous pouvez utiliser des règles d'administration personnalisées pour améliorer votre sécurité, votre conformité et votre gouvernance.

Pour savoir comment créer des règles d'administration personnalisées, consultez la page Ajouter des règles d'administration personnalisées. Vous pouvez également afficher la liste des champs compatibles avec les contraintes personnalisées.

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

Cloud SQL applique la règle d'administration lors des opérations suivantes :

  • Création d'une instance
  • Création d'une instance dupliquée
  • Redémarrage de l'instance
  • Migration d'instances
  • Clonage d'une instance

Comme pour toutes les contraintes des règles d'administration, 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 bascule la configuration de l'instance d'un état de conformité vers un état de non-conformité via la console, gcloud CLI ou un appel de procédure à distance (RPC).
  • Une mise à jour de maintenance planifiée n'entraîne pas l'application des règles, car la maintenance ne modifie pas la configuration des instances.

Étape suivante