Cette page contient des informations sur la configuration des règles de stratégie de sécurité Cloud Armor pour la gestion des robots. Avant de configurer la gestion des robots, assurez-vous de connaître les informations de la présentation de la gestion des robots.
Avant de commencer
Les sections suivantes expliquent tous les rôles et autorisations IAM (Identity and Access Management) requis pour configurer les règles de sécurité Cloud Armor. Pour les cas d'utilisation de ce document, vous n'avez besoin que des autorisations compute.securityPolicies.create
et compute.securityPolicies.update
.
Configurer les autorisations IAM pour les stratégies de sécurité Cloud Armor
Les opérations suivantes nécessitent le rôle IAM Administrateur de sécurité Identity and Access Management (roles/compute.securityAdmin
) :
- Configurer, modifier, mettre à jour et supprimer une stratégie de sécurité Cloud Armor
- en utilisant les méthodes d'API suivantes :
SecurityPolicies insert
SecurityPolicies delete
SecurityPolicies patch
SecurityPolicies addRule
SecurityPolicies patchRule
SecurityPolicies removeRule
Un utilisateur disposant du rôle Administrateur de réseaux Compute (roles/compute.networkAdmin
) peut effectuer les opérations suivantes :
- Définir une stratégie de sécurité Cloud Armor pour un service de backend
- en utilisant les méthodes d'API suivantes :
BackendServices setSecurityPolicy
BackendServices list
(gcloud
uniquement)
Les utilisateurs disposant du rôle d'administrateur de sécurité (roles/iam.securityAdmin
) et du rôle d'administrateur de réseau Compute peuvent afficher les stratégies de sécurité Cloud Armor à l'aide des méthodes d'API SecurityPolicies
get
, list
et getRule
.
Configurer les autorisations IAM pour les rôles personnalisés
Le tableau suivant répertorie les autorisations standards des rôles IAM, ainsi que les méthodes d'API associées.
Autorisation IAM | Méthodes d'API |
---|---|
compute.securityPolicies.create |
SecurityPolicies insert |
compute.securityPolicies.delete |
SecurityPolicies delete |
compute.securityPolicies.get |
SecurityPolicies get SecurityPolicies getRule |
compute.securityPolicies.list |
SecurityPolicies list |
compute.securityPolicies.use |
BackendServices setSecurityPolicy |
compute.securityPolicies.update |
SecurityPolicies patch SecurityPolicies addRule SecurityPolicies patchRule SecurityPolicies removeRule |
compute.backendServices.setSecurityPolicy |
BackendServices setSecurityPolicy |
Utiliser une question d'authentification manuelle reCAPTCHA pour distinguer les clients humains des clients automatisés
Pour utiliser reCAPTCHA avec Cloud Armor, vous devez associer votre clé de site WAF reCAPTCHA (clé reCAPTCHA) de type CHALLENGEPAGE
à une stratégie de sécurité. Pour en savoir plus sur les clés reCAPTCHA, consultez la présentation des clés reCAPTCHA.
Pour associer ou dissocier votre propre clé reCAPTCHA à une stratégie de sécurité, utilisez la commande suivante :
gcloud compute security-policies update SECURITY_POLICY \ --recaptcha-redirect-site-key SITE_KEY
Remplacez les éléments suivants :
SECURITY_POLICY
: nom de la stratégie de sécuritéSITE_KEY
: votre clé reCAPTCHACHALLENGEPAGE
Associer une clé reCAPTCHA
L'exemple suivant associe une clé reCAPTCHA à une stratégie de sécurité. La clé reCAPTCHA associée s'applique à toutes les règles qui utilisent la fonctionnalité de question d'authentification manuelle dans le cadre de la stratégie de sécurité donnée.
gcloud compute security-policies update SECURITY_POLICY \ --recaptcha-redirect-site-key "SITE_KEY"
Dissocier une clé reCAPTCHA
Pour dissocier une clé reCAPTCHA d'une stratégie de sécurité, utilisez la commande suivante :
gcloud compute security-policies update SECURITY_POLICY \ --recaptcha-redirect-site-key ""
Rediriger le trafic pour l'évaluation reCAPTCHA
Une fois que vous avez associé votre clé reCAPTCHA à votre stratégie de sécurité, vous pouvez créer une règle dans cette stratégie pour rediriger le trafic en interne pour l'évaluation reCAPTCHA. Utilisez le format suivant dans gcloud CLI pour rediriger le trafic :
gcloud compute security-policies rules create PRIORITY \ --security-policy SECURITY_POLICY \ {--expression EXPRESSION | --src-ip-ranges SRC_IP_RANGE} \ --action redirect \ --redirect-type google-recaptcha
Remplacez les éléments suivants :
PRIORITY
: priorité à laquelle vous souhaitez créer la règleSECURITY_POLICY
: nom de la stratégie de sécuritéEXPRESSION
: expression du langage de règles personnalisées qui correspond au trafic sur lequel vous souhaitez appliquer l'évaluation reCAPTCHA.SRC_IP_RANGE
: plage d'adresses IP. Utilisez cette option pour appliquer l'évaluation reCAPTCHA à toutes les requêtes de cette plage.
L'exemple suivant crée une règle qui redirige le trafic tentant d'atteindre /login.html
vers une question d'authentification manuelle reCAPTCHA :
gcloud compute security-policies rules create 1000 \ --security-policy SECURITY_POLICY \ --expression "request.path.matches(\"/login.html\")" \ --action redirect \ --redirect-type google-recaptcha
Appliquer l'évaluation fluide de reCAPTCHA
Avant de continuer, consultez la présentation de la gestion des robots pour connaître les conditions préalables à l'utilisation des jetons d'action ou des jetons de session reCAPTCHA.
Pour extraire des attributs d'un jeton d'action reCAPTCHA, vous pouvez utiliser token.recaptcha_action.ATTRIBUTE
. Remplacez ATTRIBUTE
par un attribut de jeton valide dans le langage des règles Cloud Armor.
De même, utilisez token.recaptcha_session.ATTRIBUTE
pour extraire les attributs d'un jeton de session reCAPTCHA. Pour en savoir plus sur la syntaxe des attributs de jeton reCAPTCHA disponibles, consultez la documentation de référence sur le langage des règles.
Un jeton d'action peut provenir d'une application Web, iOS ou Android, tandis qu'un jeton de session ne peut provenir que d'une application Web. Chaque plate-forme nécessite une clé reCAPTCHA distincte. Les expressions token.recaptcha_action.ATTRIBUTE
et token.recaptcha_session.ATTRIBUTE
s'appliquent aux jetons de l'une de ces plates-formes. Pour distinguer les jetons des différentes plates-formes et éviter leur vol, nous vous recommandons d'associer des clés reCAPTCHA lorsque vous configurez des règles qui utilisent ces expressions.
Exemples
Le premier exemple crée une règle qui autorise le ciblage du trafic pour /login.html
, avec un jeton d'action reCAPTCHA dont le score est d'au moins 0.8
.
gcloud compute security-policies rules create 1000 \ --security-policy SECURITY_POLICY \ --expression "request.path.matches(\"/login.html\") && token.recaptcha_action.score >= 0.8" \ --action allow
Le deuxième exemple est identique au premier, mais il exige également que le jeton d'action soit émis avec une clé reCAPTCHA de example-site-key-1
ou example-site-key-2
:
gcloud compute security-policies rules create 1000 \ --security-policy SECURITY_POLICY \ --expression "request.path.matches(\"/login.html\") && token.recaptcha_action.score >= 0.8" \ --recaptcha-action-site-keys "example-site-key-1,example-site-key-2" \ --action allow
Le troisième exemple crée une règle qui autorise le ciblage du trafic /login.html
, avec un jeton de session reCAPTCHA émis avec une clé reCAPTCHA de example-site-key-3
et avec un score d'au moins 0.8
.
gcloud compute security-policies rules create 1000 \ --security-policy SECURITY_POLICY \ --expression "request.path.matches(\"/login.html\") && token.recaptcha_session.score >= 0.8" \ --recaptcha-session-site-keys "example-site-key-3" \ --action allow
Redirection (réponse 302)
Pour créer une règle permettant de rediriger le trafic vers une URL configurée par l'utilisateur, utilisez le format suivant dans Google Cloud CLI :
gcloud compute security-policies rules create PRIORITY \ --security-policy SECURITY_POLICY \ {--expression EXPRESSION | --src-ip-ranges SRC_IP_RANGE} \ --action redirect \ --redirect-type external-302 \ --redirect-target REDIRECT_URL
Remplacez les éléments suivants :
PRIORITY
: priorité à laquelle vous souhaitez créer la règleSECURITY_POLICY
: nom de la stratégie de sécuritéEXPRESSION
: expression du langage de règles personnalisées qui correspond au trafic pour lequel vous souhaitez appliquer l'évaluation reCAPTCHA.SRC_IP_RANGE
: plage d'adresses IP. Utilisez cette option pour appliquer l'évaluation reCAPTCHA à toutes les requêtes de cette plage.REDIRECT_URL
: URL vers laquelle vous souhaitez rediriger le trafic
L'exemple suivant crée une règle qui redirige le trafic provenant de 10.10.10.0/24 vers https://www.example.com.
gcloud compute security-policies rules create 1000 \ --security-policy SECURITY_POLICY \ --src-ip-ranges "10.10.10.0/24" \ --action redirect \ --redirect-type external-302 \ --redirect-target "https://www.example.com"
Décorer la requête
Pour créer une règle qui autorise le trafic, mais ajoute des en-têtes personnalisés et des valeurs statiques définies par l'utilisateur avant de les envoyer aux backends protégés, utilisez le format suivant dans la gcloud CLI :
gcloud compute security-policies rules create PRIORITY \ --security-policy SECURITY_POLICY \ {--expression EXPRESSION | --src-ip-ranges SRC_IP_RANGE} \ --action allow \ --request-headers-to-add HEADER_1=VALUE_1,HEADER_2=VALUE_2,...
Remplacez les éléments suivants :
PRIORITY
: priorité à laquelle vous souhaitez créer la règleSECURITY_POLICY
: nom de la stratégie de sécuritéEXPRESSION
: expression du langage de règles personnalisées qui correspond au trafic sur lequel vous souhaitez appliquer l'évaluation reCAPTCHA.SRC_IP_RANGE
: plage d'adresses IP. Utilisez cette option pour appliquer l'évaluation reCAPTCHA à toutes les requêtes de cette plage.HEADER_#
: nom de l'en-tête de requête avec lequel vous souhaitez décorer la requêteVALUE_#
: valeur de l'en-tête de requête avec laquelle vous souhaitez décorer la requête
L'exemple suivant crée une règle qui autorise le ciblage du trafic pour /login.html
, à condition que la requête comporte également un jeton d'action reCAPTCHA dont le score est inférieur à 0.2
.
gcloud compute security-policies rules create 1000 \ --security-policy SECURITY_POLICY \ --expression "request.path.matches("/login.html") && token.recaptcha_action.score < 0.2" \ --action allow \ --request-headers-to-add "reCAPTCHA-Warning=high"
Étapes suivantes
- Consultez la présentation de la limitation du débit.
- En savoir plus sur la gestion des robots