Apporter des modifications groupées aux périmètres de service

Access Context Manager vous permet d'effectuer des mises à jour groupées des ressources appartenant à la stratégie d'accès de votre organisation, telles que les niveaux d'accès et les périmètres de service. Les modifications apportées à vos ressources ne sont appliquées que si toutes les parties de l'opération groupée réussissent.

Cette rubrique ne décrit que le remplacement groupé des périmètres de service. Pour plus d'informations sur le remplacement groupé des niveaux d'accès, consultez la documentation Access Context Manager.

Avant de commencer

Étant donné que les opérations groupées affectent tous les périmètres de service de votre organisation, vous pouvez obtenir la liste complète de vos périmètres. Vous pouvez également mettre en forme cette liste au format YAML et l'utiliser pour apporter des modifications groupées à vos périmètres.

Pour obtenir une liste formatée de périmètres de service, consultez la section Répertorier les périmètres de service (formatés).

Effectuer un remplacement groupé des périmètres de service

La section suivante explique comment remplacer de manière groupée des périmètres de service.

gcloud

Pour effectuer un remplacement groupé de tous les périmètres de service, exécutez la commande replace-all.

gcloud access-context-manager perimeters replace-all \
  --source-file=FILE \
  --etag=ETAG \
  [--policy=POLICY_NAME]

Où :

  • FILE est le nom d'un fichier .yaml qui définit les nouveaux paramètres de vos périmètres de service existants.

    Exemple :

    - name: accessPolicies/11271009391/servicePerimeters/storage_perimeter
      title: Storage Perimeter
      description: Perimeter to protect Storage resources.
      perimeterType: PERIMETER_TYPE_REGULAR
      status:
        restrictedServices:
        - storage.googleapis.com
    - name: accessPolicies/11271009391/servicePerimeters/bigquery_perimeter
      title: BigQuery Perimeter
      description: Perimeter to protect BigQuery resources.
      perimeterType: PERIMETER_TYPE_REGULAR
      status:
        restrictedServices:
        - bigquery.googleapis.com
    

    Pour en savoir plus sur la mise en forme du fichier YAML, reportez-vous à la structure JSON de l'objet ServicePerimeterConfig d'Access Context Manager.

  • ETAG (facultatif) est une chaîne représentant la version cible de la règle d'accès de votre organisation. Si vous n'incluez pas d'etag, l'opération groupée cible la dernière version de la règle d'accès de votre organisation.

    Pour obtenir le dernier ETag de votre règle d'accès, répertoriez (commande list) vos règles d'accès.

  • POLICY_NAME est le nom de la règle d'accès de votre organisation. Cette valeur n'est requise que si vous n'avez pas défini de règle d'accès par défaut.

API

Pour effectuer un remplacement groupé de tous les périmètres de service, appelez servicePerimeters.replaceAll.

POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/servicePerimeters.replaceAll?alt=json

Où :

  • POLICY_NAME est le nom de la règle d'accès de votre organisation.

Corps de la requête

Le corps de la requête doit inclure une liste d'objets ServicePerimeterConfig qui spécifient les modifications que vous souhaitez apporter.

Pour cibler une version spécifique de la stratégie d'accès de votre organisation, vous pouvez éventuellement inclure un ETag. Si vous n'en incluez pas, l'opération groupée cible la dernière version de la stratégie d'accès de votre organisation.

Exemple :

{
  "servicePerimeters": [
    object (ServicePerimeterConfig),
    object (ServicePerimeterConfig),
    ...
  ]
  "etag": string
}

Corps de la réponse

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

Exemple de réponse :

{
  "name": "operations/accessPolicies/11271009391/replacePerimeters/1583523447707087",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.ReplaceServicePerimetersResponse",
    "servicePerimeters": [
      {
        "name": "accessPolicies/11271009391/servicePerimeters/storage_perimeter",
        "title": "Storage Perimeter",
        "description": "Perimeter to protect Storage resources.",
        "status": {
          "accessLevels": [
            "accessPolicies/11271009391/accessLevels/corpnet_access"
          ],
          "restrictedServices": [
            "bigtable.googleapis.com"
          ]
        }
      },
      {
        "name": "accessPolicies/11271009391/servicePerimeters/storage_perimeter",
        "title": "BigQuery Perimeter",
        "description": "Perimeter to protect BigQuery resources.",
        "status": {
          "accessLevels": [
            "accessPolicies/11271009391/accessLevels/prodnet_access"
          ],
          "restrictedServices": [
            "bigtable.googleapis.com"
          ]
        }
      }
    ]
  }
}