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, ajouter des projets au périmètre 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 le périmètre de service créé, la prise en compte et la propagation des modifications peuvent prendre jusqu'à 30 minutes.

Console

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

    Accéder à la page VPC Service Controls

  2. Si vous y êtes invité, sélectionnez votre organisation. Les périmètres ne peuvent pas être créés au niveau du projet.

  3. En haut de 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.

  6. Sélectionnez les projets que vous souhaitez sécuriser au sein du périmètre :

    1. Sous Projets à protéger, cliquez sur Ajouter des projets.

    2. Pour ajouter un projet au périmètre, cochez la case correspondant à ce projet dans la fenêtre Ajouter des projets.

    3. Cliquez sur Ajouter des projets. Un message s'affiche pour indiquer que n projets ont été ajoutés, où n correspond au nombre de projets sélectionnés.

    4. Cliquez sur OK. Les projets ajoutés s'affichent sous Projets à protéger.

  7. Sélectionnez les services que vous souhaitez sécuriser au sein du périmètre :

    1. Sous Services à protéger, cliquez sur Ajouter des services.

    2. Pour sécuriser des services dans le périmètre, dans la fenêtre Spécifier les services à limiter, cochez la case correspondant à ces services.

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

  8. Pour autoriser l'accès d'un client API situé en dehors du périmètre de service aux ressources d'un périmètre de service, ajoutez une règle d'entrée et spécifiez les attributs de la règle :

    1. Dans le menu de gauche, cliquez sur Règle d'entrée.

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

    3. Définissez les valeurs requises de votre choix pour les champs Attributs "FROM" du client API et les Attributs "TO" des ressources/services GCP.

      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.

  9. Pour autoriser l'accès impliquant un client API ou des ressources situées au sein du périmètre de service à des ressources extérieures au périmètre de service, ajoutez une règle de sortie et spécifiez les attributs de la règle :

    1. Dans le menu de gauche, cliquez sur Règle de sortie.

    2. Sous Règles de sortie, cliquez sur Ajouter une règle.

    3. Définissez les valeurs requises de votre choix pour les champs Attributs "FROM" du client API et les Attributs "TO" des ressources/services GCP.

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

  10. Facultatif : si vous souhaitez définir les services accessibles dans un périmètre (par exemple, à partir de VM d'un réseau VPC hébergé par l'un des projets que vous avez précédemment sélectionnés), procédez comme suit :

    1. Sous Services accessibles par VPC, sélectionnez Services sélectionnés.

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

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

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

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

  11. Facultatif : Si vous souhaitez autoriser les requêtes adressées à des services protégés et provenant de l'extérieur du périmètre, procédez comme suit :

    1. Cochez la case Sélectionnez le niveau d'accès.

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

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

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

gcloud

Pour créer un périmètre, exécutez la commande create.

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

Remplacez les éléments suivants :

  • beta et dry-run ne sont obligatoires que si vous souhaitez créer le périmètre en mode de simulation. Par exemple, gcloud beta access-context-manager perimeters dry-run create ....

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

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

  • PROJECTS est une liste d'un ou de plusieurs numéros de projet, séparés par une virgule. Par exemple, projects/12345 ou projects/12345,projects/67890. 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 :

  • --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 --add-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 : --add-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 nommé ProdPerimeter, qui inclut les projets example-project et example-project2, et limite les API Cloud Storage et BigQuery.

gcloud access-context-manager perimeters \
  create ProdPerimeter --title="Production Perimeter" \
  --resources=projects/12345,projects/67890 \
  --restricted-services=storage.googleapis.com,bigquery.googleapis.com \
  --ingress-policies=ingress.yaml \
  --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.

Étape suivante