Un compte de service est un compte Google spécial non humain que les applications, les processus automatisés ou les charges de travail de calcul, telles qu'une instance Compute Engine, utilisent pour effectuer des appels d'API autorisés. Contrairement aux comptes utilisateur, un compte de service est identifié uniquement par son adresse e-mail unique.
Les applications utilisent des comptes de service pour s'authentifier et accéder aux Google Cloud ressources. Lorsqu'une application s'authentifie à l'aide d'un compte de service, elle accède aux ressources pour lesquelles des autorisations Identity and Access Management explicites ont été attribuées au compte de service. Cela fournit une méthode sécurisée, auditable et centralisée pour l'autorisation de machine à machine.
Pour le proxy Web sécurisé, les comptes de service jouent un rôle essentiel dans l'autorisation et l'application des règles. En utilisant un compte de service pour identifier la source de trafic d'une charge de travail, vous pouvez créer des règles de proxy Web sécurisé précises qui autorisent ou refusent spécifiquement le trafic Web en fonction de l'identité de l'application, et pas seulement de son adresse IP.
Cette page vous explique comment :
- Créer une instance de proxy Web sécurisée avec une règle vide
- Créer un compte de service et attribuer des rôles IAM
- Créer des règles de proxy Web sécurisé
- Tester la connectivité de l'ensemble de votre configuration de proxy Web sécurisé
Avant de commencer
Suivez la procédure de configuration initiale.
Demandez à un administrateur de l'organisation de vous accorder l'accès à un compte de service.
Vérifiez que la version 406.0.0 (ou ultérieure) de la Google Cloud CLI est installée :
gcloud version | head -n1Si vous avez installé une version antérieure de la gcloud CLI, mettez-la à jour :
gcloud components update --version=406.0.0
Créer une instance de proxy Web sécurisée avec une règle vide
Pour créer une instance de proxy Web sécurisée, vous devez d'abord créer une règle de sécurité vide, puis créer un proxy Web qui utilise cette règle.
Créer une règle de sécurité vide
Console
Dans la Google Cloud console, accédez à la page Règles SWP.
Cliquez sur Créer une règle.
Dans le champ Nom, saisissez un nom pour la règle, par exemple
myswppolicy.Dans le champ Description, saisissez une description pour la règle, par exemple
My new swp policy.Pour Régions, sélectionnez la région dans laquelle vous souhaitez créer la règle, par exemple
us-central1.Cliquez sur Créer.
Cloud Shell
Utilisez l'éditeur de texte de votre choix pour créer un fichier
policy.yaml.Ajoutez ce qui suit au fichier
policy.yamlque vous avez créé :name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME description: POLICY_DESCRIPTIONRemplacez les éléments suivants :
PROJECT_NAME: nom de votre projetREGION: région dans laquelle votre règle est créée, par exempleus-central1POLICY_NAME: nom de votre règlePOLICY_DESCRIPTION: description de votre règle
Importez la règle de sécurité à l'aide de la
gcloud network-security gateway-security-policies importcommande :gcloud network-security gateway-security-policies import POLICY_NAME \ --source=POLICY_FILE.yaml \ --location=REGION
Créer un proxy Web
Console
Dans la Google Cloud console, accédez à la page Proxys Web.
Cliquez sur Créer un proxy Web sécurisé.
Dans le champ Nom, saisissez un nom pour le proxy Web, par exemple
myswp.Dans le champ Description, saisissez une description pour le proxy Web, par exemple
My new swp.Pour Mode de routage, sélectionnez l'option Explicite.
Pour Régions, sélectionnez la région dans laquelle vous souhaitez créer le proxy Web, par exemple
us-central1.Pour Réseau, sélectionnez le réseau dans lequel vous souhaitez créer le proxy Web.
Pour Sous-réseau, sélectionnez le sous-réseau VPC que vous avez créé précédemment lors de la configuration initiale.
Facultatif : dans le champ Adresse IP du proxy Web, saisissez l'adresse IP du proxy Web sécurisé.
Vous pouvez saisir une adresse IP de la plage d'adresses IP du proxy Web sécurisé qui se trouve dans le sous-réseau que vous avez créé à l'étape précédente. Si vous ne saisissez pas l'adresse IP, votre instance de proxy Web sécurisée en choisit automatiquement une dans le sous-réseau sélectionné.
Pour Certificat, sélectionnez le certificat que vous souhaitez utiliser pour créer le proxy Web.
Pour Règle, sélectionnez la règle que vous avez créée pour associer le proxy Web.
Cliquez sur Créer.
Cloud Shell
Utilisez l'éditeur de texte de votre choix pour créer un fichier
gateway.yaml.Ajoutez ce qui suit au fichier
gateway.yaml:name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME type: SECURE_WEB_GATEWAY ports: [GATEWAY_PORT_NUMBERS] certificateUrls: [CERTIFICATE_URLS] gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME network: projects/PROJECT_NAME/global/networks/NETWORK_NAME subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNETWORK addresses: [GATEWAY_IP_ADDRESS] scope: samplescopeRemplacez les éléments suivants :
GATEWAY_NAME: nom de cette instance de proxy Web sécuriséeGATEWAY_PORT_NUMBERS: liste des numéros de port pour cette passerelle, par exemple[80,443]CERTIFICATE_URLS: liste des URL de certificat SSLSUBNETWORK: Sous-réseau VPC que vous avez créé précédemment dans le cadre des étapes de configuration initialeGATEWAY_IP_ADDRESS: liste facultative des adresses IP de vos instances de proxy Web sécurisées dans les sous-réseaux de proxy que vous avez créés précédemment lors des étapes de configuration initialeSi vous choisissez de ne pas lister les adresses IP, omettez le champ pour laisser le proxy Web choisir une adresse IP pour vous.
Créez l'instance de proxy Web sécurisée à l'aide de la
gcloud network-services gateways importcommande :gcloud network-services gateways import GATEWAY_NAME \ --source=gateway.yaml \ --location=REGION
Tester la connectivité
Pour tester la connectivité, utilisez la commande curl à partir de n'importe quelle instance de machine virtuelle (VM) de votre réseau cloud privé virtuel (VPC) :
curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure
Si tout fonctionne correctement, votre instance de proxy Web sécurisée renvoie un code d'état 403 Forbidden. Cette erreur confirme les points suivants :
L'instance de proxy Web sécurisée a été déployée et reçoit activement du trafic.
La règle de proxy Web sécurisée applique correctement la stratégie de sécurité par défaut qui consiste à refuser tout le trafic jusqu'à ce que vous définissiez des règles
allowspécifiques dans les sections suivantes.
Créer un compte de service et attribuer des rôles IAM
Créez un compte de service : utilisez la
gcloud iam service-accounts createcommande pour créer un compte de service nommémy-swp-sadans votre Google Cloud projet.gcloud iam service-accounts create my-swp-sa \ --display-name="Secure Web Proxy service account" \ --description="Service account for Secure Web Proxy instances"
Attribuez des rôles IAM au compte de service: utilisez la
gcloud projects add-iam-policy-bindingcommande pour attribuer les rôles IAM nécessaires au compte de service afin qu'il puisse gérer ou utiliser des ressources dans votre Google Cloud projet.Par exemple, pour autoriser le compte de service à utiliser des ressources réseau, attribuez-lui le rôle Utilisateur de réseau de Compute (
roles/compute.networkUser).gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:my-swp-sa@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/compute.networkUser"
Remplacez
PROJECT_IDpar l'ID de votre Google Cloud projet.
Créer une règle de proxy Web sécurisée
Console
Dans la Google Cloud console, accédez à la page Règles SWP.
Cliquez sur le nom de la règle que vous avez créée précédemment, par exemple
myswppolicy.Cliquez sur Ajouter une règle.
Pour chaque règle, procédez comme suit :
Dans le champ Priorité, saisissez un ordre d'évaluation numérique pour la règle. Les règles sont évaluées de la priorité la plus élevée à la plus basse, où
0est la priorité la plus élevée.Dans le champ Nom, saisissez un nom pour la règle.
Dans le champ Description, saisissez une description pour la règle.
Pour Action, sélectionnez l'une des options suivantes :
- Autoriser : pour autoriser les requêtes de connexion correspondant à la règle.
- Refuser : pour refuser les requêtes de connexion correspondant à la règle.
Dans le champ État, sélectionnez l'une des options suivantes pour l'application de la règle :
- Activé : pour appliquer la règle à votre instance de proxy Web sécurisée.
- Désactivé : pour ne pas appliquer la règle à votre instance de proxy Web sécurisée.
Dans la section Correspondance de session, spécifiez l'adresse e-mail du compte de service que vous avez créé précédemment. Exemple :
sessionMatcher: "source.matchServiceAccount(SERVICE_ACCOUNT) && host() == 'example.com'"Pour en savoir plus sur la syntaxe de
SessionMatcher, consultez la documentation de référence sur le langage de correspondance CEL.Dans la section Correspondance d'application, spécifiez les critères de correspondance de la requête.
Cliquez sur Ajouter une règle.
Pour ajouter une autre règle, cliquez sur Ajouter une règle.
Cloud Shell
Utilisez l'éditeur de texte de votre choix pour créer le fichier
rule.yaml.Pour autoriser l'accès à une URL à partir du compte de service approprié, ajoutez ce qui suit au fichier
rule.yamlque vous avez créé :name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME description: RULE_DESCRIPTION enabled: true priority: RULE_PRIORITY sessionMatcher: CEL_EXPRESSION basicProfile: ALLOWRemplacez les éléments suivants :
RULE_NAME: nom de cette règleRULE_DESCRIPTION: description de la règleRULE_PRIORITY: priorité de cette règle ; un nombre inférieur correspond à une priorité plus élevéeCEL_EXPRESSION: expression CEL (Common Expression Language). Pour en savoir plus, consultez la documentation de référence sur le langage de correspondance CEL .
Par exemple, pour autoriser l'accès à
example.comà partir de la ressource avec le compte de service requis, ajoutez ce qui suit au fichier YAML que vous avez créé poursessionMatcher:```yaml sessionMatcher: "source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'example.com'" ```Remplacez
SERVICE_ACCOUNTpar le compte de service que vous souhaitez autoriser. Il doit s'agir de l'adresse e-mail du compte de service.Importez les règles que vous avez créées à l'aide de la
gcloud network-security gateway-security-policies rules importcommande :gcloud network-security gateway-security-policies rules import RULE_NAME \ --source=RULE_FILE.yaml \ --location=REGION \ --gateway-security-policy=POLICY_NAME
Tester la connectivité
Vous pouvez tester à nouveau la connectivité pour vérifier que l'ensemble de votre configuration de proxy Web sécurisé, y compris le compte de service, les règles de sécurité et la passerelle, fonctionne comme prévu.
Pour tester la connectivité, utilisez la commande curl à partir de la ressource (par exemple, une instance de VM) avec le SERVICE_ACCOUNT associé :
curl -x https://IPv4_ADDRESS:443 http://example.com
--proxy-insecure
Remplacez IPv4_ADDRESS par l'adresse IPv4 de votre instance de proxy Web sécurisée.
Si tout fonctionne correctement, vous recevez un code d'état 200 OK. Ce code d'état confirme les résultats clés suivants :
Autorisation réussie : cela prouve que le trafic provenant de la ressource est correctement identifié par le compte de service attribué et que cette identité correspond à la règle
allowque vous avez ajoutée à la règle de sécurité.Fonctionnalité de bout en bout : cela valide que le trafic circule correctement via le chemin configuré : de la ressource à l' instance de proxy Web sécurisée, en passant par la règle de sécurité, et en atteignant la destination externe.