Ajouter des conditions IAM

Cette page s'applique à Apigee et à Apigee hybrid.

Les conditions de gestion de l'identité et des accès (IAM) vous permettent de définir et d'appliquer un contrôle d'accès conditionnel pour les ressources Google Cloud, y compris les ressources du hub d'API. Pour en savoir plus sur les conditions IAM, consultez la page Présentation des conditions IAM.

Dans le hub d'API, vous pouvez appliquer un accès conditionnel en fonction des attributs de condition de ressource IAM suivants:

  • Attribut de condition resource.service : permet de configurer un accès conditionnel en fonction du service Google Cloud utilisé. Par exemple, vous pouvez définir une condition limitant l'accès d'un utilisateur aux ressources qui utilisent apihub.googleapis.com. Pour obtenir la liste des valeurs acceptées, consultez la section Valeurs du service de ressources.
  • Attribut de condition resource.type: permet de configurer un accès conditionnel en fonction du type de ressource auquel on accède. Par exemple, vous pouvez définir une condition limitant l'accès d'un utilisateur à apihub.googleapis.com/Api. Pour obtenir la liste des valeurs acceptées, consultez la section Valeurs du type de ressource.
  • Attribut de condition resource.name: permet de configurer un accès conditionnel en fonction de tout ou partie du nom d'une ressource. Pour obtenir la liste des formats de nom de hub d'API compatibles, consultez la section Format du nom des ressources.

Ajouter une condition IAM

Pour ajouter une condition IAM à un compte principal existant (utilisateur, groupe ou compte de service), procédez comme suit :

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

    Accéder à IAM

  2. Sélectionnez votre projet, dossier ou organisation.
  3. Dans la liste des comptes principaux, recherchez le compte principal pour lequel vous souhaitez ajouter la condition IAM, puis cliquez sur (Modifier le compte principal).

    Le volet Modifier l'accès s'affiche.

  4. Recherchez le rôle auquel vous souhaitez ajouter la condition IAM, puis cliquez sur + Ajouter une condition IAM.
  5. Dans le volet Ajouter une condition, fournissez les informations suivantes :
    1. Titre : saisissez un nom pour la condition que vous ajoutez au rôle.
    2. Description : (facultatif) saisissez une description de la condition.
    3. Vous pouvez ajouter une condition à l'aide du générateur de conditions ou de l'éditeur de conditions.

      Le générateur de conditions fournit une interface interactive permettant de sélectionner le type de condition, l'opérateur et d'autres informations applicables concernant l'expression. L'éditeur de conditions fournit une interface textuelle permettant de saisir manuellement une expression de condition à l'aide de la syntaxe CEL.

      Pour obtenir des instructions détaillées sur l'utilisation du générateur de conditions ou de l'éditeur de conditions, consultez la page Configurer un accès basé sur les ressources.

    4. Cliquez sur Enregistrer pour appliquer la condition.
  6. Cliquez à nouveau sur Enregistrer dans le volet Modifier l'accès pour mettre à jour le compte principal.

Exemples d'utilisation des conditions IAM pour le hub d'API

Exemple 1: Contrôle des accès pour toutes les ressources API commençant par une condition IAM basée sur le nom de la ressource.

L'expression de condition suivante définit le contrôle des accès comme suit:

  • Accès aux ressources de l'API commençant par un préfixe. Cela inclut l'accès à toutes les ressources de l'API, y compris les versions, les déploiements, les spécifications, les opérations et les définitions.
  • Accès non conditionnel par rôle par défaut aux autres ressources de l'API Hub.
  (
    resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/apis/API_ID_PREFIX") ||
    (
      resource.type != "apihub.googleapis.com/Api" &&
      resource.type != "apihub.googleapis.com/Version" &&
      resource.type != "apihub.googleapis.com/Spec" &&
      resource.type != "apihub.googleapis.com/ApiOperation" &&
      resource.type != "apihub.googleapis.com/Definition"
    )
  )

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre Google Cloud projet.
  • LOCATION: emplacement du hub d'API.
  • API_ID_PREFIX: préfixe du nom de la ressource d'API.

Exemple 2: Contrôle des accès pour plusieurs API avec des conditions IAM en fonction du type de ressource

L'expression de condition suivante définit le contrôle des accès comme suit:

  • Accès aux ressources de l'API Hub commençant par le préfixe.
  • Accès à la ressource de version du hub d'API commençant par un ID de version spécifié.
  • Accès aux ressources de spécification du hub d'API commençant par un ID de spécification spécifié.
  • Accès non conditionnel par rôle par défaut aux autres ressources de l'API Hub.
  (
    resource.service == "apihub.googleapis.com" &&
    resource.type == "apihub.googleapis.com/Api" &&
    resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/apis/API1_ID_PREFIX")
  ) ||
  (
    resource.service == "apihub.googleapis.com" &&
    resource.type == "apihub.googleapis.com/Version" &&
    resource.name == "projects/PROJECT_ID/locations/LOCATION/apis/API2_ID/versions/API2_VERSION_ID"
  ) ||
  (
    resource.service == "apihub.googleapis.com" &&
    resource.type == "apihub.googleapis.com/Spec" &&
    resource.name == "projects/PROJECT_ID/locations/LOCATION/apis/API3_ID/versions/API3_VERSION_ID/specs/API3_SPEC_ID"
  ) ||
  (
    resource.type != "apihub.googleapis.com/Api" &&
    resource.type != "apihub.googleapis.com/Version" &&
    resource.type != "apihub.googleapis.com/Spec" &&
    resource.type != "apihub.googleapis.com/ApiOperation" &&
    resource.type != "apihub.googleapis.com/Definition"
  )
Remplacez les éléments suivants:

  • PROJECT_ID: ID de votre Google Cloud projet.
  • LOCATION: emplacement du hub d'API.
  • API1_ID_PREFIX: préfixe du nom de la première ressource d'API.
  • API2_ID: ID de la deuxième ressource d'API.
  • API2_VERSION_ID: ID de la deuxième ressource de version d'API.
  • API3_ID: ID de la troisième ressource d'API.
  • API3_VERSION_ID: ID de la troisième ressource de version d'API.
  • API3_SPEC_ID: ID de la troisième ressource de spécification d'API.