Utiliser des comptes de service pour créer des règles

Un compte de service est un type de compte particulier généralement utilisé par une application ou une charge de travail de calcul, telle qu'une instance Compute Engine, plutôt que par une personne. Ce compte est identifié par son adresse e-mail, qui lui est propre.

Les applications utilisent les comptes de service pour effectuer des appels d'API autorisés en s'authentifiant soit en tant que compte de service, soit en tant qu'utilisateurs Google Workspace ou Cloud Identity via la délégation au niveau du domaine. Lorsqu'une application s'authentifie en tant que compte de service, elle a accès à toutes les ressources auxquelles le compte de service est autorisé à accéder.

Vous pouvez utiliser un compte de service pour identifier la source du trafic et configurer les règles du proxy Web sécurisé, si nécessaire.

Cette page vous explique comment :

  • Créez une instance Secure Web Proxy avec une règle vide.
  • Créez des comptes de service et associez-les à des ressources.
  • Utilisez des comptes de service pour créer une règle de proxy Web sécurisé.
  • Créez une instance Secure Web Proxy.
  • Testez la connectivité depuis vos VM.

Avant de commencer

  • Suivez les étapes de configuration initiale.

  • Demandez à un administrateur de l'organisation d'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 -n1
    

    Si 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 Secure Web Proxy avec une règle vide

Pour créer une instance de proxy Web sécurisé, vous devez d'abord créer une stratégie de sécurité vide, puis créer un proxy Web qui utilise cette stratégie.

Créer une règle de sécurité vide

Console

  1. Dans la console Google Cloud , accédez à la page Règles SWP.

    Accéder aux règles SWP

  2. Cliquez sur Créer une règle.

  3. Dans le champ Nom, saisissez un nom pour la stratégie (par exemple, myswppolicy).

  4. Dans le champ Description, saisissez une description de la règle, par exemple My new swp policy.

  5. Pour Régions, sélectionnez la région dans laquelle vous souhaitez créer le règlement, par exemple us-central1.

  6. Cliquez sur Créer.

Cloud Shell

  1. Utilisez l'éditeur de texte de votre choix pour créer un fichier policy.yaml.

  2. Ajoutez ce qui suit au fichier policy.yaml que vous avez créé :

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    description: POLICY_DESCRIPTION
    

    Remplacez les éléments suivants :

    • PROJECT_NAME : nom de votre projet

    • REGION : région dans laquelle votre stratégie est créée, par exemple us-central1

    • POLICY_NAME : nom de votre règle

    • POLICY_DESCRIPTION : description de votre règle

  3. Importez la stratégie de sécurité à l'aide de la commande gcloud network-security gateway-security-policies import :

    gcloud network-security gateway-security-policies import POLICY_NAME \
        --source=POLICY_FILE.yaml \
        --location=REGION
    

Créer un proxy Web

Console

  1. Dans la console Google Cloud , accédez à la page Proxys Web.

    Accéder aux proxys Web

  2. Cliquez sur Créer un proxy Web sécurisé.

  3. Dans le champ Nom, saisissez un nom pour le proxy Web, tel que myswp.

  4. Dans le champ Description, saisissez une description du proxy Web, par exemple My new swp.

  5. Pour Mode de routage, sélectionnez l'option Explicite.

  6. Pour Régions, sélectionnez la région dans laquelle vous souhaitez créer le proxy Web, par exemple us-central1.

  7. Pour Réseau, sélectionnez le réseau sur lequel vous souhaitez créer le proxy Web.

  8. Pour Sous-réseau, sélectionnez le sous-réseau VPC que vous avez créé précédemment dans les étapes de configuration initiale.

  9. 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 Secure Web Proxy choisit automatiquement une adresse IP dans le sous-réseau sélectionné.

  10. Pour Certificat, sélectionnez le certificat que vous souhaitez utiliser pour créer le proxy Web.

  11. Pour Règle, sélectionnez la règle que vous avez créée pour associer le proxy Web.

  12. Cliquez sur Créer.

Cloud Shell

  1. Utilisez l'éditeur de texte de votre choix pour créer un fichier gateway.yaml.

  2. 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: samplescope
    

    Remplacez les éléments suivants :

    • GATEWAY_NAME : nom de cette instance Secure Web Proxy

    • GATEWAY_PORT_NUMBERS : liste des numéros de port pour cette passerelle, par exemple [80,443].

    • CERTIFICATE_URLS : liste des URL des certificats SSL

    • SUBNETWORK : sous-réseau VPC que vous avez créé précédemment dans le cadre des étapes de configuration initiale.

    • GATEWAY_IP_ADDRESS : liste facultative d'adresses IP pour vos instances Secure Web Proxy dans les sous-réseaux de proxy que vous avez créés précédemment dans les étapes de configuration initiale

      Si vous choisissez de ne pas lister les adresses IP, omettez le champ pour laisser le proxy Web choisir une adresse IP pour vous.

  3. Créez l'instance Secure Web Proxy à l'aide de la commande gcloud network-services gateways import :

    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 de 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é renvoie un code d'état 403 Forbidden. Cette erreur confirme les points suivants :

  • L'instance de proxy Web sécurisé a été déployée et reçoit activement du trafic.

  • La stratégie de proxy Web sécurisé applique correctement la posture de sécurité par défaut qui consiste à refuser tout le trafic jusqu'à ce que vous définissiez des règles allow spécifiques dans les sections suivantes.

Créer et associer des comptes de service à des ressources

Pour créer et associer des comptes de service :

  1. Créez les comptes de service.

  2. Associez des comptes de service à des ressources.

Créer des règles Secure Web Proxy

Pour créer des règles de proxy Web sécurisé :

  1. Utilisez l'éditeur de texte de votre choix pour créer un fichier RULE_FILE.yaml. Remplacez RULE_FILE par le nom de fichier de votre choix.

  2. Pour autoriser l'accès à une URL à partir du compte de service choisi, ajoutez les éléments suivants au fichier YAML :

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
    description: RULE_DESCRIPTION
    enabled: true
    priority: RULE_PRIORITY
    sessionMatcher: CEL_EXPRESSION
    basicProfile: ALLOW
    

    Remplacez les éléments suivants :

    • RULE_NAME : nom de cette règle
    • RULE_DESCRIPTION : description de la règle que vous créez
    • RULE_PRIORITY : priorité de cette règle. Plus le nombre est faible, plus la priorité est élevée.
    • CEL_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 souhaité associé, ajoutez ce qui suit au fichier YAML que vous avez créé pour sessionMatcher :

      sessionMatcher: "source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'example.com'"
      

      Remplacez SERVICE_ACCOUNT par le compte de service que vous souhaitez autoriser. Il doit s'agir de l'adresse e-mail du compte de service.

  3. Importez les règles que vous avez créées :

    gcloud network-security gateway-security-policies rules import RULE_NAME \
       --source=RULE_FILE.yaml \
       --location=REGION \
       --gateway-security-policy=POLICY_NAME
    

Tester la connectivité

Pour tester la connectivité, utilisez la commande curl à partir de la ressource 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 Secure Web Proxy.

Étapes suivantes