Gérer les ressources d'API avec Apigee Spaces

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

Consultez la documentation d'Apigee Edge.

Dans cette rubrique, nous expliquons comment créer et gérer des ressources d'API dans un espace. Vous pouvez créer des proxys d'API, des flux partagés et des produits d'API dans un espace. Les ressources créées dans l'espace héritent des mêmes autorisations que l'espace.

La création de ressources dans un espace est identique à la création de ressources dans une organisation Apigee, à ceci près que vous pouvez sélectionner un espace lorsque vous créez la ressource. Vous pouvez créer des ressources d'API à partir de la ligne de commande à l'aide des API Apigee ou en utilisant Apigee dans la console Cloud.

Ce guide décrit les étapes nécessaires pour :

Pour en savoir plus sur Apigee Spaces, consultez Apigee Spaces.

Pour en savoir plus sur les types de ressources de l'API Apigee, consultez ces pages :

Avant de commencer

Avant de commencer à créer des ressources d'API dans Apigee Spaces, assurez-vous d'effectuer les tâches suivantes :

Rôles et autorisations requis

Avec l'introduction d'Apigee Spaces, la façon dont IAM vérifie les autorisations requises pour effectuer certaines opérations sur les ressources d'API a changé. Si la ressource d'API existe dans un espace, IAM vérifie les autorisations appropriées au niveau de l'espace pour le membre de l'espace qui effectue l'opération. Pour en savoir plus, consultez Rôles et autorisations Apigee Spaces et Hiérarchie des autorisations IAM dans Apigee Spaces.

Attribuer des rôles et des autorisations aux membres d'un espace

Trois rôles personnalisés sont disponibles pour les membres d'un espace :

  • apigee.spaceContentEditor : fournit un accès complet aux ressources pouvant être associées à un espace. Ce rôle doit être accordé au niveau de l'espace.
  • apigee.spaceContentViewer : fournit un accès en lecture aux ressources pouvant être associées à un espace. Ce rôle doit être accordé au niveau de l'espace.
  • apigee.spaceConsoleUser : fournit les autorisations minimales requises pour gérer les ressources d'un espace à l'aide de la console Google Cloud . Ce rôle doit être accordé au niveau du projet Google Cloud aux utilisateurs ayant accès aux ressources de cet espace.

Les rôles personnalisés décrits dans cette section ne permettent pas aux membres de l'espace de déployer des proxys d'API ou des flux partagés, ni d'annuler leur déploiement. Si vous souhaitez autoriser un membre d'espace à gérer les déploiements, définissez une stratégie IAM au niveau de l'environnement Apigee ou du projet Google Cloud en accordant le rôle apigee.environment.admin au membre de l'espace.

Vous pouvez attribuer un ou plusieurs rôles à un membre d'espace à l'aide de l'une des méthodes suivantes :

  • Ajoutez le rôle apigee.spaceContentEditor à l'espace à l'aide de l'API, et le rôle apigee.environmentAdmin à l'environnement cible à l'aide de l'API également.
  • Ajoutez les rôles au projet à l'aide de l'interface utilisateur IAM.

Pour vérifier les rôles au niveau du projet Google Cloud , procédez comme suit :

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

    Accéder à IAM
  2. Sélectionnez le projet.
  3. Dans la colonne Compte principal, recherchez toutes les lignes qui vous identifient ou identifient un groupe dont vous faites partie. Pour savoir à quels groupes vous appartenez, contactez votre administrateur.

  4. Pour toutes les lignes qui vous spécifient ou vous incluent, consultez la colonne Rôle pour vous assurer que la liste inclut les rôles requis.

Pour accorder les rôles, procédez comme suit :

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

    Accéder à IAM
  2. Sélectionnez le projet.
  3. Cliquez sur  Accorder l'accès.
  4. Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.

  5. Dans la liste Sélectionner un rôle, sélectionnez un rôle.
  6. Pour attribuer des rôles supplémentaires, cliquez sur  Ajouter un autre rôle et ajoutez tous les rôles supplémentaires requis.
  7. Cliquez sur Enregistrer.

Pour vérifier les stratégies IAM appliquées au niveau de l'espace, consultez Gérer les membres et les rôles dans un espace.

Gérer les proxys d'API dans un espace

Les membres d'une organisation Apigee attribués à un espace peuvent créer des proxys d'API en tant que ressources d'espace. Les membres attribués uniquement à d'autres espaces ne pourront pas accéder à ces proxys ni les gérer.

Créez un proxy d'API en tant que ressource d'espace à l'aide d'Apigee dans la console Cloud ou de l'API, comme décrit dans les sections suivantes.

Apigee dans la console Cloud

Pour créer un proxy d'API en tant que ressource d'espace à l'aide d'Apigee dans la console Cloud, procédez comme suit :

  1. Suivez les étapes décrites dans Créer un proxy d'API.
  2. À l'étape 5, vous verrez un champ supplémentaire sous Détails du proxy, dans lequel vous pourrez sélectionner un espace pour le proxy d'API. Sélectionnez un espace dans la zone de liste. Si vous ne souhaitez pas attribuer le proxy d'API à un espace, vous pouvez ignorer ce champ.
  3. Cliquez sur Suivant pour passer à l'étape facultative de déploiement de la création du proxy ou cliquez sur Créer pour créer le proxy sans le déployer.

API Apigee

Pour créer un proxy d'API en tant que ressource d'espace à l'aide des API Apigee, exécutez la commande suivante :

curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/apis?name=PROXY_NAME&space=SPACE_NAME&action=import" \
    -X POST -H "Authorization: Bearer $TOKEN" \
    -H "Content-type: multipart/form-data" \
    -F "file=@PROXY_BUNDLE"

Où :

  • ORG_NAME est le nom de votre organisation Apigee.
  • PROXY_NAME est le nom du proxy d'API que vous créez. Le nom doit être unique, et pas seulement dans l'espace.
  • SPACE_NAME est le nom de l'espace dans lequel vous créez le proxy d'API.
  • PROXY_BUNDLE est le nom du fichier de groupe de proxys d'API.

Par exemple, avec la commande suivante, un membre de l'équipe red crée un proxy d'API nommé proxy-1 en tant qu'espace red de l'organisation acme à l'aide du fichier proxy-bundle.zip :

curl "https://apigee.googleapis.com/v1/organizations/acme/apis?name=proxy-1&space=red&action=import" \
    -X POST -H "Authorization: Bearer $TOKEN" \
    -H "Content-type: multipart/form-data \
    -F "file=@proxy-bundle.zip"

L'exemple suivant présente la réponse à la commande :

{
  "basepaths": ["/proxy-1"],
  "revision": 1,
  "apiProxyId": "proxy-1",
  "resourceName": "organizations/acme/apis/proxy-1/revisions/1",
  "space": "red",
  "createTime": ...,
  "updateTime": ...
}

Gérer les flux partagés en tant que ressources d'espace

Les membres attribués à un espace peuvent également créer des flux partagés en tant que ressources d'espace. Les membres des autres espaces ne pourront pas accéder à ces flux partagés ni les gérer.

Créez un flux partagé en tant que ressource d'espace à l'aide d'Apigee dans la console Cloud ou de l'API, comme décrit dans les sections suivantes.

Apigee dans la console Cloud

Pour créer un flux partagé en tant que ressource d'espace à l'aide d'Apigee dans la console Cloud, procédez comme suit :
  1. Suivez les étapes décrites dans Créer un flux partagé dans l'interface utilisateur d'Apigee pour créer un flux partagé à partir de zéro ou importer un groupe de flux existant.
  2. À l'étape 4, un champ supplémentaire s'affiche dans la boîte de dialogue Créer un flux partagé, dans lequel vous pouvez sélectionner un espace pour le proxy d'API. Sélectionnez un espace dans la zone de liste. Si vous ne souhaitez pas attribuer le proxy d'API à un espace, vous pouvez ignorer ce champ.
  3. Cliquez sur Créer pour créer le flux partagé.

API Apigee

Pour créer un flux partagé en tant que ressource d'espace à l'aide des API Apigee, exécutez la commande suivante :

curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/sharedflows?name=FLOW_NAME&space=SPACE_NAME&action=import" \
    -X POST -H "Authorization: Bearer $TOKEN" \
    -H "Content-type: multipart/form-data" \
    -F "file=@SHARED_FLOW_BUNDLE"

Où :

  • ORG_NAME est le nom de votre organisation Apigee.
  • FLOW_NAME est le nom du flux partagé que vous créez. Le nom doit être unique, et pas seulement dans l'espace.
  • SPACE_NAME est le nom de l'espace dans lequel vous créez le flux partagé.
  • SHARED_FLOW_BUNDLE est le nom du fichier de groupe de flux partagés.

Par exemple, avec la commande suivante, un membre de l'équipe red crée un flux partagé nommé flow-1 associé à l'espace red de l'organisation acme :

curl "https://apigee.googleapis.com/v1/organizations/acme/sharedflows?name=flow-1&space=red&action=import" \
    -X POST -H "Authorization: Bearer $TOKEN" \
    -H "Content-type: multipart/form-data" \
    -F "file=@sharedflow-bundle.zip"

L'exemple suivant présente la réponse à la commande :

{
  "name": "organizations/acme/sharedflows/flow-1",
  "revision": 1,
  "sharedFlowId": "flow-1",
  "space": "red",
  "createTime": ...,
  "updateTime": ...
}

Gérer un produit d'API en tant que ressource d'espace

Les membres attribués à un espace peuvent créer un produit d'API pour regrouper leurs proxys d'API. Lorsque vous créez des produits d'API, les membres de l'espace peuvent sélectionner tous les proxys d'API auxquels ils ont accès, y compris les proxys créés directement sous l'organisation et les proxys d'API créés dans les espaces dont ils sont membres. Les membres des autres espaces ne pourront pas accéder à ces produits d'API ni les gérer.

Créez un produit d'API en tant que ressource d'espace à l'aide d'Apigee dans la console Cloud ou de l'API, comme décrit dans les sections suivantes.

Apigee dans la console Cloud

Pour créer un produit d'API en tant que ressource d'espace à l'aide d'Apigee dans la console Cloud, procédez comme suit :

  1. Suivez les étapes décrites dans Créer un produit d'API.
  2. À l'étape 4, un champ supplémentaire s'affiche dans la boîte de dialogue Détails du produit, dans lequel vous pouvez sélectionner un espace pour le produit d'API. Sélectionnez un espace dans la zone de liste. Si vous ne souhaitez pas attribuer le produit d'API à un espace, vous pouvez ignorer ce champ.
  3. Renseignez les informations de configuration restantes, puis cliquez sur Enregistrer.

API Apigee

Pour créer un produit d'API en tant que ressource d'espace à l'aide de l'API, envoyez une requête au point de terminaison apiproducts/create et ajoutez la propriété space.

Par exemple, la commande suivante crée un produit d'API nommé product-1 dans l'organisation acme et l'associe à l'espace red :

curl -X POST "https://apigee.googleapis.com/v1/organizations/acme/apiproducts" \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-type: application/json" -d \
      `{
        "name": "product-1",
        "displayName": "product-1",
        "approvalType": "auto",
        "attributes": [
          {
            "name": "access",
            "value": "internal"
          }
        ],
        "environments": [
          "test"
        ],
        "operationGroup": {
          "operationConfigs": [
            {
              "apiSource": "proxy-1",
              "operations": [
                {
                  "resource": "/",
                  "methods": [
                    "GET"
                  ]
                }
              ]
            }
          ],
          "operationConfigType": "proxy"
        },
        "space": "red"
      }'

L'exemple suivant présente la réponse à la commande :

{
  "name": "product-1",
  "displayName": "product-1",
  "approvalType": "auto",
    "attributes": [
      {
        "name": "access",
        "value": "internal"
      }
    ],
    "environments": [
    "test"
  ],
  "createdAt": "1741977778448",
  "lastModifiedAt": "1741977778448",
  "operationGroup": {
    "operationConfigs": [
      {
        "apiSource": "proxy-1",
        "operations": [
          {
            "resource": "/",
            "methods": [
              "GET"
            ]
          }
        ]
      }
    ],
    "operationConfigType": "proxy"
  },
  "space": "red"
}

Lister toutes les ressources d'API associées à un espace

Pour toutes les opérations "list", y compris ListApiProxies, ListSharedFlows et ListApiProducts, vous pouvez spécifier un nom d'espace pour lister toutes les ressources associées à cet espace. Si vous ne spécifiez pas de nom d'espace, l'opération "list" renvoie toutes les ressources de l'organisation auxquelles vous êtes autorisé à accéder, qu'elles soient associées ou non à un espace.

Il est important de noter que, lorsque vous utilisez la fonctionnalité Apigee Spaces, les résultats des opérations list pour les ressources d'API attribuées à un espace seront limités aux résultats des espaces auxquels le compte principal peut accéder. Par exemple, si acme-team@acme.com dispose du rôle apigee.spaceContentEditor pour l'espace red, les membres de l'équipe acme-team qui utilisent l'opération list ne verront que les proxys d'API associés à l'espace red, et non tous les proxys d'API de l'organisation.

Pour effectuer cette tâche, vous devez disposer de l'autorisation apigee.apiResources.list. Cette autorisation est incluse dans le rôle Apigee > Apigee Organization Admin.

Lister les ressources d'API associées à un espace spécifique

Listez toutes les ressources d'API associées à un espace spécifique à l'aide d'Apigee dans la console Cloud ou de l'API, comme décrit dans les sections suivantes.

Apigee dans la console Cloud

Pour lister toutes les ressources d'API associées à un espace spécifique à l'aide d'Apigee dans la console Cloud, ouvrez la page de présentation du type de ressource concerné (proxys d'API, flux partagés ou produits d'API). Dans la zone Filtre, sélectionnez l'option Espace dans la liste, puis saisissez le nom de l'espace. La liste des ressources attribuées à cet espace s'affiche. Notez que seules les ressources associées à un espace dont l'utilisateur est membre sont affichées.

API Apigee

Pour lister toutes les ressources d'API associées à un espace spécifique, exécutez la commande suivante :

curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE?space=SPACE_NAME"

Où :

  • ORG_NAME est le nom de votre organisation Apigee.
  • RESOURCE_TYPE est le type de ressource que vous listez. Les valeurs valides sont les suivantes :
    • apis
    • sharedFlows
    • apiProducts
  • SPACE_NAME est le nom de l'espace dans lequel vous listez la ressource.

Par exemple, avec la commande suivante, un membre de l'équipe red liste tous les proxys d'API associés à l'espace red dans l'organisation acme :

curl -H  "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/acme/apis?space=red"

L'exemple suivant présente la réponse à la commande :

{
  "proxies": [
    {
      "basepaths": "/proxy-1",
      "revision": "1",
      "apiProxyId": "proxy-1",
      "resourceName": "organizations/acme/apis/proxy-1/revisions/1",
      "space": "red",
      "createTime": ...,
      ....
    }
  ]
}

Lister les ressources d'API sans spécifier d'espace

Listez toutes les ressources d'API sans spécifier d'espace dans Apigee dans la console Cloud, ou à l'aide de l'API, comme décrit dans les sections suivantes.

Apigee dans la console Cloud

Pour afficher la liste de toutes les ressources d'API d'un type donné dans Apigee dans la console Cloud, quelle que soit l'association à un espace, ouvrez la page de présentation du type de ressource concerné (proxys d'API, flux partagés ou produits d'API). Une liste de toutes les ressources disponibles s'affiche. Notez que seules les ressources que l'utilisateur est autorisé à consulter s'affichent. Cela inclut les ressources associées à un espace ou à des espaces dont l'utilisateur est membre, ou les ressources non associées à un espace.

API Apigee

Vous pouvez également lister les ressources d'API sans spécifier d'espace à l'aide de la commande suivante :

curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE"

Où :

  • ORG_NAME est le nom de votre organisation Apigee.
  • RESOURCE_TYPE est le type de ressource que vous listez. Les valeurs valides sont les suivantes :
    • apis
    • sharedFlows
    • apiProducts

Par exemple, un utilisateur disposant d'un accès Organization Admin à toutes les ressources de l'organisation peut exécuter la commande suivante pour lister tous les proxys d'API de l'organisation acme :

curl -H  "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/acme/apis"

Si l'organisation acme dispose de trois proxys, la commande renvoie les informations sur les trois proxys. Exemple :

{
  "proxies": [
    {
      "basepaths": "/proxy-1",
      "revision": "1",
      "apiProxyId": "proxy-1",
      "resourceName": "organizations/acme/apis/proxy-1/revisions/1",
      "space": "red",
      "createTime": ...,
      ....
    },
    {
      "basepaths": "/proxy-2",
      "revision": "1",
      "apiProxyId": "proxy-2",
      "resourceName": "organizations/acme/apis/proxy-2/revisions/1",
      "space": "blue",
      "createTime": ...,
      ....
    },
    {
      "basepaths": "/proxy-3",
      "revision": "1",
      "apiProxyId": "proxy-3",
      "resourceName": "organizations/acme/apis/proxy-3/revisions/1",
      "space": "green",
      "createTime": ...,
      ....
    }
  ]
}

Si un autre utilisateur qui ne dispose que d'un accès apiAdmin aux ressources de l'espace red exécute la même commande, celle-ci ne renverra que les informations sur proxy-1. La réponse se présente comme suit :

{
  "proxies": [
    {
      "basepaths": "/proxy-1",
      "revision": "1",
      "apiProxyId": "proxy-1",
      "resourceName": "organizations/acme/apis/proxy-1/revisions/1",
      "space": "red",
      "createTime": ...,
      ....
    }
  ]
}

Étapes suivantes