Cette page explique comment créer un périmètre de service.
Avant de commencer
Découvrez comment configurer des périmètres de service.
Découvrez comment gérer les réseaux VPC dans les périmètres de service.
Découvrez comment accorder l'accès à VPC Service Controls.
Si vous souhaitez configurer un accès externe à vos services protégés lorsque vous créez votre périmètre, créez un ou plusieurs niveaux d'accès avant de créer le périmètre.
Créer un périmètre de service
Cette section explique comment créer un périmètre de service, ajouter des projets ou des réseaux VPC 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 que vous avez créé ou mis à jour un périmètre de service, la propagation et la prise en compte des modifications peuvent prendre jusqu'à 30 minutes. Pendant cette période, 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
Dans le menu de navigation de la console Google Cloud, cliquez sur Sécurité, puis sur VPC Service Controls.
Si vous y êtes invité, sélectionnez votre organisation, votre dossier ou votre projet.
Sélectionnez une règle d'accès existante ou créez-en une. Assurez-vous que le champ d'application de la règle d'accès inclut tous les projets et réseaux VPC que vous souhaitez ajouter au périmètre.
Sur la page VPC Service Controls, sélectionnez un mode d'application du 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.
Cliquez sur Nouveau périmètre.
Sur la page Créer un périmètre de service, dans le champ Titre, saisissez un nom pour le 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.Facultatif: Dans le champ Description, saisissez une description du périmètre.
Pour Type de périmètre, sélectionnez Standard.
Dans Mode d'application, sélectionnez un mode d'application du périmètre. Les options disponibles sont Test à blanc et Appliqué.
Cliquez sur Continuer.
Pour ajouter des projets ou des réseaux VPC que vous souhaitez sécuriser au sein du périmètre, procédez comme suit:
Pour ajouter des projets au périmètre, cliquez sur Ajouter des projets.
Dans le volet Ajouter des projets, sélectionnez les projets que vous souhaitez protéger.
Cliquez sur Ajouter les projets sélectionnés. Les projets ajoutés apparaissent dans la section Projets.
Pour ajouter des réseaux VPC au périmètre, cliquez sur Ajouter des réseaux.
Dans la liste des projets, cliquez sur celui qui contient les réseaux VPC.
Dans le volet Ajouter des réseaux VPC, sélectionnez les réseaux VPC que vous souhaitez protéger.
Cliquez sur Ajouter les réseaux sélectionnés. Les réseaux ajoutés apparaissent dans la section Réseaux VPC.
Cliquez sur Continuer.
Pour sélectionner les services que vous souhaitez sécuriser au sein du périmètre, procédez comme suit :
Dans le volet Services restreints, cliquez sur Ajouter des services.
Dans le volet Ajouter des services, sélectionnez les services que vous souhaitez protéger.
Cliquez sur Ajouter les services sélectionnés.
Cliquez sur Continuer.
Facultatif: si vous souhaitez définir les services accessibles à partir de points de terminaison du réseau dans un périmètre, dans le volet Services accessibles par VPC, sélectionnez l'une des options disponibles:
Tous les services: cette option autorise tous les Google Cloud services.
Aucun service: cette option n'autorise aucun des Google Cloud services.
Tous les services restreints: cette option n'autorise que les Google Cloud services que vous avez protégés dans ce périmètre.
Services sélectionnés: cette option n'autorise que les Google Cloud services que vous avez sélectionnés.
Cliquez sur Ajouter des services.
Dans le volet Ajouter des services, sélectionnez les services que vous souhaitez autoriser.
Cliquez sur Ajouter les services sélectionnés.
Pour inclure également tous les services restreints que le périmètre protège aux services sélectionnés, activez l'option Inclure tous les services restreints.
Cliquez sur Continuer.
Vous pouvez également ajouter des services accessibles après la création d'un périmètre.
Pour en savoir plus, consultez la page Services accessibles par VPC.
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:
Dans le volet Niveaux d'accès, cliquez sur Ajouter des niveaux d'accès.
Vous pouvez également ajouter des niveaux d'accès après la création d'un périmètre.
Cochez les cases correspondant aux niveaux d'accès que vous souhaitez appliquer au périmètre.
Cliquez sur Ajouter les niveaux d'accès sélectionnés.
Cliquez sur Continuer.
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 :
Dans le volet Règles d'entrée, cliquez sur Ajouter une règle d'entrée.
Dans le champ Title (Titre), saisissez un titre pour la règle d'entrée.
Dans la section De, spécifiez les sources situées en dehors du périmètre qui nécessitent un accès. Vous pouvez spécifier des projets, des niveaux d'accès et des réseaux VPC comme sources.
Dans la section À, spécifiez les ressources du périmètre auxquelles les sources peuvent accéder.
Cliquez sur Continuer.
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.
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 :
Dans le volet Règles de sortie, cliquez sur Ajouter une règle de sortie.
Dans le champ Titre, saisissez un titre pour la règle de sortie.
Dans la section De, spécifiez les sources situées dans le périmètre qui nécessitent un accès.
Dans la section À, spécifiez les ressources en dehors du périmètre auxquelles les sources peuvent accéder.
Pour obtenir la liste des attributs de règle de sortie, consultez la documentation de référence sur les règles de sortie.
Cliquez sur Créer.
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 de noms de réseaux 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 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
oustorage.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
.
Étape suivante
- Découvrez comment tester l'impact d'un périmètre de service à l'aide du mode simulation.
- Découvrez comment gérer des périmètres de service existants.
- Découvrez comment résoudre les problèmes courants liés à VPC Service Controls.
- Suivez cet atelier de programmation pour découvrir comment protéger les projets et leurs services à l'aide de VPC Service Controls.