Créer un périmètre de service

Cette page explique comment créer un périmètre de service.

Avant de commencer

Créer un périmètre de service

Cette section explique comment créer un périmètre de service, y ajouter des projets ou des réseaux VPC, et protéger des services.

Lorsque vous créez un périmètre de service, vous pouvez éventuellement autoriser l'accès aux services protégés à l'extérieur du périmètre et indiquer les services accessibles à d'autres services et utilisateurs à l'intérieur du périmètre. Si vous préférez, vous pouvez configurer ces paramètres après avoir créé un périmètre.

Une fois que vous avez créé un périmètre de service ou mis à jour un périmètre de service existant, la propagation et la prise en compte des modifications peuvent prendre jusqu'à 30 minutes. Pendant ce temps, le périmètre peut bloquer les requêtes avec le message d'erreur suivant: Error 403: Request is prohibited by organization's policy.

Console

  1. Dans le menu de navigation de la console Google Cloud, cliquez sur Sécurité, puis sur VPC Service Controls.

    Accéder à VPC Service Controls

  2. Si vous y êtes invité, sélectionnez votre organisation, votre dossier ou votre projet.

  3. Sur la page VPC Service Controls, sélectionnez un mode de périmètre. Par défaut, le mode application forcée est sélectionné. Si vous souhaitez créer un périmètre en mode simulation, cliquez sur Mode de simulation.

    Les périmètres en mode application forcée empêchent activement l'accès aux services protégés. Les périmètres en mode simulation consignent les violations du périmètre comme si les services étaient protégés, mais n'empêchent pas l'accès à ces services. Pour plus d'informations sur les modes application forcée et de simulation, consultez la page sur les périmètres de service.

  4. Cliquez sur Nouveau périmètre.

  5. Sur la page Nouveau périmètre de service VPC, saisissez un nom dans le champ Nom du périmètre.

    Un nom de périmètre peut comporter au maximum 50 caractères, commencer par une lettre et ne contenir que des lettres de l'alphabet latin ASCII (az, AZ), des chiffres (0-9) ou des traits de soulignement (_). Le nom du périmètre est sensible à la casse et doit être unique dans une règle d'accès.

  6. Pour ajouter des projets ou des réseaux VPC que vous souhaitez sécuriser au sein du périmètre, procédez comme suit:

    1. Cliquez sur Ajouter des ressources.

    2. Pour ajouter des projets au périmètre, cliquez sur Ajouter un projet dans le volet Ajouter des ressources.

      1. Pour sélectionner un projet, cochez la case correspondant à ce projet dans la boîte de dialogue Ajouter des projets.

      2. Cliquez sur Ajouter les ressources sélectionnées. Les projets ajoutés apparaissent dans la section Projets.

    3. Pour ajouter des réseaux VPC au périmètre, cliquez sur Ajouter un réseau VPC dans le volet Ajouter des ressources.

      1. Dans la liste des projets, cliquez sur le projet contenant les réseaux VPC.
      2. Pour ajouter un réseau VPC, dans la boîte de dialogue Ajouter des ressources, cochez la case correspondant à ce réseau VPC.
      3. Cliquez sur Ajouter les ressources sélectionnées. Le réseau ajouté apparaît dans la section Réseaux VPC.
  7. Pour sélectionner les services que vous souhaitez sécuriser au sein du périmètre, procédez comme suit :

    1. Cliquez sur Services restreints.

    2. Dans le volet Services restreints, cliquez sur Ajouter des services.

    3. Pour sécuriser des services dans le périmètre, dans la boîte de dialogue Spécifier les services à limiter, cochez la case correspondant à ces services.

    4. Cliquez sur Ajouter n services, où n correspond au nombre de services que vous avez sélectionnés à l'étape précédente.

  8. Facultatif : si vous souhaitez définir les services accessibles dans un périmètre, procédez comme suit :

    1. Cliquez sur Services accessibles par VPC.

    2. Dans le volet Services accessibles par VPC, sélectionnez Services sélectionnés.

      Pour inclure rapidement tous les services limités que le périmètre protège dans la liste des services accessibles, sélectionnez Inclure tous les services limités. Cette option vous permet d'inclure des services distincts en plus des services restreints.

    3. Cliquez sur Ajouter des services accessibles par VPC.

      Vous pouvez également ajouter des services accessibles après la création d'un périmètre.

    4. Sur la page Spécifier les services accessibles, sélectionnez le service que vous souhaitez rendre accessible au sein de votre périmètre.

    5. Cliquez sur Ajouter n services, où n correspond au nombre de services que vous avez sélectionnés à l'étape précédente.

  9. Facultatif : pour autoriser l'accès aux ressources protégées depuis l'extérieur du périmètre à l'aide de niveaux d'accès, procédez comme suit :

    1. Cliquez sur Niveaux d'accès.

    2. Dans le volet Stratégie d'entrée : niveaux d'accès, cliquez sur le champ Choisir un niveau d'accès.

      Vous pouvez également ajouter des niveaux d'accès après la création d'un périmètre.

    3. Cochez les cases correspondant aux niveaux d'accès que vous souhaitez appliquer au périmètre.

  10. Pour autoriser l'accès aux ressources dans un périmètre à partir de clients API en dehors du périmètre, procédez comme suit :

    1. Cliquez sur Règle d'entrée.

    2. Dans le volet Règles d'entrée, cliquez sur Ajouter une règle.

    3. Spécifiez les sources extérieures au périmètre nécessitant un accès dans la section Attributs "De" du client API. Vous pouvez spécifier des projets, des niveaux d'accès et des réseaux VPC en tant que sources.

    4. Spécifiez les ressources situées dans le périmètre auxquelles les sources peuvent accéder dans la section Attributs "À" des ressources/services Google Cloud.

      Pour obtenir la liste des attributs de règle d'entrée, consultez la documentation de référence sur les règles d'entrée.

  11. Pour autoriser l'accès impliquant un client API ou des ressources situées dans le périmètre à des ressources extérieures à un périmètre, procédez comme suit :

    1. Cliquez sur Règle de sortie.

    2. Dans le volet Règles de sortie, cliquez sur Ajouter une règle.

    3. Spécifiez les attributs "From" du client API et les attributs "To" des ressources/services Google Cloud que vous souhaitez.

      Pour obtenir la liste des attributs de règle de sortie, consultez la documentation de référence sur les règles de sortie.

  12. Cliquez sur Créer un périmètre.

gcloud

Pour créer un périmètre en mode forcé, utilisez la commande gcloud access-context-manager perimeters create.

gcloud access-context-manager perimeters create NAME \
  --title=TITLE \
  --resources=RESOURCES \
  --restricted-services=RESTRICTED-SERVICES \
  --ingress-policies=INGRESS-FILENAME.yaml \
  --egress-policies=EGRESS-FILENAME.yaml \
  [--access-levels=LEVELS] \
  [--enable-vpc-accessible-services] \
  [--vpc-allowed-services=ACCESSIBLE-SERVICES] \
  --policy=POLICY_NAME

Pour créer un périmètre en mode de simulation, utilisez la commande gcloud access-context-manager perimeters dry-run create.

gcloud access-context-manager perimeters dry-run create NAME \
  --perimeter-title=TITLE \
  --perimeter-type=TYPE \
  --perimeter-resources=RESOURCES \
  --perimeter-restricted-services=RESTRICTED-SERVICES \
  --perimeter-ingress-policies=INGRESS-FILENAME.yaml \
  --perimeter-egress-policies=EGRESS-FILENAME.yaml \
  [--perimeter-access-levels=LEVELS] \
  [--perimeter-enable-vpc-accessible-services] \
  [--perimeter-vpc-allowed-services=ACCESSIBLE-SERVICES] \
  --policy=POLICY_NAME

Remplacez les éléments suivants :

  • NAME est le nom du périmètre.

    Un nom de périmètre peut comporter au maximum 50 caractères, commencer par une lettre et ne contenir que des lettres de l'alphabet latin ASCII (az, AZ), des chiffres (0-9) ou des traits de soulignement (_). Le nom du périmètre est sensible à la casse et doit être unique dans une règle d'accès.

  • TITLE est le titre lisible du périmètre.

  • TYPE est le type du périmètre. Par exemple, un périmètre "standard" ou un périmètre "pont".

  • RESOURCES est une liste d'un ou de plusieurs numéros de projet ou noms de réseau VPC séparés par une virgule. Par exemple, projects/12345 ou //compute.googleapis.com/projects/my-project/global/networks/vpc1. Seuls les projets et les réseaux VPC sont autorisés. Format du projet: projects/project_number. Format du VPC: //compute.googleapis.com/projects/project-id/global/networks/network_name. Si vous spécifiez des projets, seuls les numéros de projet sont acceptés. Vous ne pouvez pas utiliser le nom ni l'ID du projet.

  • RESTRICTED-SERVICES est une liste d'un ou de plusieurs services, séparés par une virgule. Par exemple, storage.googleapis.com ou storage.googleapis.com,bigquery.googleapis.com.

  • INGRESS-FILENAME est un fichier JSON ou YAML qui contient les valeurs des attributs de source, d'identité, de projet et de service. Pour obtenir la liste des attributs de règle d'entrée, consultez la documentation de référence sur les règles d'entrée.

  • EGRESS-FILENAME est un fichier JSON ou YAML qui contient les valeurs des attributs d'identité, de projet et de service. Pour obtenir la liste des attributs de règle de sortie, consultez la documentation de référence sur les règles de sortie.

  • POLICY_NAME est le nom (au format numérique) de la règle d'accès de votre organisation. Exemple :330193482019 Vous ne devez inclure le nom de la règle que si vous n'avez pas défini de règle d'accès par défaut.

Options supplémentaires :

  • --access-levels ou --perimeter-access-levels n'est requis que si vous souhaitez ajouter des niveaux d'accès lors de la création du périmètre. LEVELS est une liste d'un ou de plusieurs niveaux d'accès, séparés par une virgule, que vous souhaitez appliquer au périmètre de service.

    Vous pouvez également ajouter des niveaux d'accès après avoir créé le périmètre.

  • --enable-vpc-accessible-services et --vpc-allowed-services, ou --perimeter-enable-vpc-accessible-services et --perimeter-vpc-allowed-services ne sont obligatoires que si vous souhaitez ajouter des services accessibles par VPC lors de la création du périmètre. ACCESSIBLE-SERVICES est une liste d'un ou de plusieurs services, séparés par une virgule, auxquels vous souhaitez autoriser l'accès aux réseaux à l'intérieur de votre périmètre. L'accès à des services non inclus dans cette liste est impossible.

    Vous ne pouvez rendre un service accessible que si vous le protégez également lors de la configuration du périmètre.

    Pour inclure rapidement tous les services protégés par un périmètre, spécifiez RESTRICTED-SERVICES dans la liste des ACCESSIBLE-SERVICES. Exemple : --perimeter-vpc-allowed-services=RESTRICTED-SERVICES.

    Vous pouvez également définir des services accessibles par VPC après avoir créé le périmètre.

Par exemple, la commande suivante crée un périmètre en mode simulation nommé ProdPerimeter, qui inclut les projets example-project et example-project2, et limite les API Cloud Storage et BigQuery.

gcloud access-context-manager perimeters \
  dry-run create ProdPerimeter --perimeter-title="Production Perimeter" \
  --perimeter-type="regular" \
  --perimeter-resources=projects/12345,projects/67890 \
  --perimeter-restricted-services=storage.googleapis.com,bigquery.googleapis.com \
  --perimeter-ingress-policies=ingress.yaml \
  --perimeter-egress-policies=egress.yaml \
  --policy=330193482019

API

Pour créer un périmètre de service, appelez accessPolicies.servicePerimeters.create.

 POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/servicePerimeters

Où :

  • POLICY_NAME est le nom (au format numérique) de la règle d'accès de votre organisation. Exemple :330193482019

Corps de la requête

Le corps de la requête doit inclure une ressource ServicePerimeter qui définit le périmètre de service.

Pour la ressource ServicePerimeter, spécifiez PERIMETER_TYPE_REGULAR pour perimeterType.

Mode de simulation

Le périmètre proposé doit être inclus en tant que spec, et useExplicitDryRunSpec doit être défini sur "true".

Corps de la réponse

Si la requête aboutit, le corps de la réponse de l'appel contient une ressource Operation qui fournit des détails sur l'opération POST.

Étapes suivantes