Créer et gérer des ressources Apigee Spaces

Consultez la documentation d'Apigee Edge.

Cet article explique comment créer des espaces Apigee dans votre organisation Apigee pour gérer les stratégies de gestion de l'identité et des accès pour les ressources de l'API Apigee à grande échelle.

Ce guide décrit les étapes à suivre pour :

Pour en savoir plus sur les avantages de l'utilisation d'Apigee Spaces pour gérer vos ressources d'API, consultez la section Apigee Spaces.

Avant de commencer

Avant de commencer à utiliser les espaces :

  • Provisionnez Apigee. Vérifiez que l'organisation Apigee avec abonnement ou en paiement à l'usage que vous souhaitez utiliser est provisionnée. Pour en savoir plus sur les étapes requises pour provisionner Apigee, consultez la section Présentation du provisionnement.
  • Obtenir vos identifiants d'authentification. Avant d'exécuter des commandes pour créer et gérer des espaces sur la ligne de commande, obtenez vos identifiants d'authentification gcloud à l'aide de la commande suivante :
    export TOKEN=$(gcloud auth print-access-token)

Rôles et autorisations requis

Make sure that you have the following role or roles on the project: Apigee > Apigee Organization Admin

  1. In the Google Cloud console, go to the IAM page.

    Go to IAM
  2. Select the project.
  3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

  4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
  1. In the Google Cloud console, go to the IAM page.

    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 chaque rôle supplémentaire.
  7. Cliquez sur Enregistrer.

Créer un espace

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

Pour créer un espace dans votre organisation Apigee, exécutez la commande suivante :

curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces" \
    --data-raw '{
       "name":"SPACE_NAME"
    }'

Où :

  • ORG_NAME est le nom de votre organisation Apigee.
  • SPACE_NAME est le nom de l'espace que vous créez.

Par exemple, la commande suivante crée un espace nommé red dans l'organisation acme :

curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    https://apigee.googleapis.com/v1/organizations/acme/spaces \
    --data-raw '{
       "name":"red",
    }'

Gérer les membres et les rôles dans un espace

Une fois que vous avez créé un espace, vous pouvez y ajouter des membres d'équipe et attribuer les rôles IAM requis pour créer et gérer des ressources d'API dans l'espace. Les utilisateurs Apigee ne peuvent créer et gérer des ressources que dans les espaces où ils sont membres d'une équipe disposant des autorisations appropriées. Comme le contrôle des accès IAM est accordé au niveau des espaces, les membres de l'organisation ne peuvent pas accéder aux ressources d'API des espaces ni les gérer, sauf si elles sont spécifiquement ajoutées aux espaces. Pour obtenir une présentation des rôles et des autorisations IAM requis pour gérer les ressources d'espace, consultez la section Rôles et autorisations requis.

Ajouter un membre de l'organisation à un espace

Lorsqu'un membre d'une organisation est ajouté à un espace, une liaison de stratégie IAM est créée pour l'espace. Elle comporte deux arguments :

  • La liste des membres de l'espace
  • Le rôle ou la liste des rôles accordés aux membres

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

Pour ajouter un membre d'une organisation à un espace et lui attribuer un rôle IAM, utilisez la commande suivante :

curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
    "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:setIamPolicy" -d \
      '{
        "policy":{
          "bindings":[
            {
              "members": ["user:USER_EMAIL"],
              "role": "roles/IAM_ROLE"
            }
          ]
        }
      }'

Où :

  • ORG_NAME est le nom de l'organisation Apigee.
  • SPACE_NAME est le nom de l'espace.
  • USER_EMAIL est l'adresse e-mail d'un utilisateur que vous ajoutez à l'espace.
  • IAM_ROLE est le nom du rôle IAM que vous attribuez à l'utilisateur en tant que membre de l'espace.

Par exemple, cette commande ajoute l'utilisateur my-email@acme.com à l'espace red de l'organisation acme et accorde le rôle IAM apigee.apiAdminV2 :

curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
    "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:setIamPolicy" -d \
      '{ 
        "policy":{
          "bindings":[
            {
              "members": ["user:my-email@acme.com"],
              "role": "roles/apigee.apiAdminV2"
            }
          ]
        }
      }'

Vous pouvez ajouter des rôles et des autorisations supplémentaires aux membres de l'espace en mettant à jour la stratégie IAM de l'espace. Pour mettre à jour la stratégie IAM d'un espace, utilisez la méthode setIamPolicy décrite dans cette section, en utilisant la liste révisée des rôles et des autorisations souhaités. Une stratégie IAM sera alors créée pour l'espace, avec des rôles et des autorisations ajustés en conséquence.

Ajouter une équipe de membres à un espace

Vous pouvez également ajouter une équipe de membres à un espace et attribuer un ou plusieurs rôles IAM. Pour ajouter une équipe de membres à un espace et attribuer un rôle IAM, utilisez la commande suivante :

curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
   "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:setIamPolicy" -d \
     '{
       "policy":{
         "bindings":[
           {
             "members": ["group:GROUP_EMAIL"],
             "role": "roles/IAM_ROLE"
           }
         ]
       }
     }'

Où :

  • ORG_NAME est le nom de l'organisation Apigee.
  • SPACE_NAME est le nom de l'espace.
  • GROUP_EMAIL est l'adresse e-mail d'un groupe que vous ajoutez à l'espace.
  • IAM_ROLE est le nom du rôle IAM que vous attribuez à l'équipe en tant que membre de l'espace.

Par exemple, cette commande ajoute le groupe acme-team@acme.com à l'espace red de l'organisation acme et accorde le rôle apigee.apiAdminV2 au groupe :

curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
   "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:setIamPolicy" -d \
     '{ 
       "policy":{
         "bindings":[
           {
             "members": ["group:red-team@acme.com"],
             "role": "roles/apigee.apiAdminV2"
           }
         ]
       }
     }'

Comme indiqué dans Ajouter un membre de l'organisation à un espace, le rôle IAM apigee.apiAdminV2 contient la plupart des autorisations requises pour gérer les ressources de l'espace. Toutefois, vous devrez peut-être attribuer des rôles supplémentaires aux utilisateurs pour qu'ils puissent effectuer des tâches spécifiques.

Vérifier l'attribution de la stratégie IAM pour les espaces

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

Pour vérifier que la stratégie IAM est correctement définie pour l'espace, utilisez la commande suivante :

curl -X GET -H "Authorization: Bearer $TOKEN" \
    "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:getIamPolicy"

Où :

  • ORG_NAME est le nom de l'organisation Apigee.
  • SPACE_NAME est le nom de l'espace.

Par exemple, la commande suivante permet de vérifier que la stratégie IAM est correctement définie pour l'espace red de l'organisation acme :

curl -X GET -H "Authorization: Bearer $TOKEN" \
    "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:getIamPolicy"

Le résultat de la commande renvoie la stratégie IAM actuelle pour l'espace et devrait se présenter comme suit :

{
  "version": "0",
  "bindings": [
    {
      "role": "roles/apigee.apiAdminV2",
      "members": [
        "group:red-team@acme.com"
      ]
    }
  ]
}

Dans cet exemple, la stratégie IAM de l'espace accorde le rôle apigee.apiAdminV2 aux membres de l'espace, dans ce cas les membres du groupe red-team@acme.com.

Notez que les membres de l'équipe red sont les seuls membres de l'organisation à avoir accès à l'espace red. Cela signifie que seuls les membres de l'équipe Red Team peuvent créer et gérer des ressources d'API dans les espaces red. Si des membres d'une autre équipe de l'organisation, telles que team-blue@acme.com, tentent d'accéder à un proxy d'API créé sous l'espace red, ils verront l'erreur suivante :

{
  "error": {
    "code": 403,
    "message": "Permission denied on resource \"organizations\/acme\/apis\/proxy-1\" (or it may not exist).",
    "status": "PERMISSION_DENIED"
  }
}

Exclure des membres d'un espace

Pour supprimer des membres ou un groupe de membres d'un espace, vous devez définir une nouvelle stratégie IAM pour l'espace, avec une liste révisée de membres ou de groupes. La méthode setIamPolicy crée une stratégie IAM pour l'espace, avec des rôles et des membres ajustés en conséquence.

Par exemple, pour mettre à jour les membres de l'espace dédié à l'équipe blue, vous pouvez d'abord vérifier la stratégie IAM actuelle à l'aide de la commande suivante :

curl -X GET -H "Authorization: Bearer $TOKEN" \
  "https://apigee.googleapis.com/v1/organizations/acme/spaces/blue:getIamPolicy"

Le résultat de la commande renvoie la stratégie IAM actuelle pour l'espace et devrait se présenter comme suit :

{
  "version": "0",
  "bindings": [
    {
      "role": "roles/apigee.apiAdminV2",
      "members": [
        "group: blue-team@acme.com", 
        "users: user-a@acme.com, user-b@acme.com, user-c@acme.com"
      ]
    }
  ]
}

Pour supprimer user-b@acme.com de l'espace, utilisez la commande suivante :

curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
  "https://apigee.googleapis.com/v1/organizations/acme/spaces/blue:setIamPolicy" -d \
    '{ 
      "policy":{
        "bindings":[
          {
            "members": [
              "group:blue-team@acme.com",
              "users: user-a@acme.com, user-c@acme.com"
            ]  
            "role": "roles/apigee.apiAdminV2"
          }
        ]
      }
    }'

La nouvelle stratégie IAM de l'espace n'inclura plus user-b@acme.com.

Pour supprimer un membre d'un groupe inclus dans un espace, commencez par le supprimer du groupe, puis exécutez à nouveau la commande setIamPolicy afin de mettre à jour la stratégie IAM de l'espace avec l'appartenance correcte pour l'alias de messagerie du groupe.

Répertorier tous les espaces d'une organisation

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

Pour lister tous les espaces d'une organisation Apigee, utilisez la commande suivante :

curl -X GET -H "Authorization: Bearer $TOKEN" \
    "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces"

ORG_NAME est le nom de l'organisation Apigee.

Par exemple, la commande suivante liste tous les espaces de l'organisation acme :

curl -X GET -H "Authorization: Bearer $TOKEN" \
    "https://apigee.googleapis.com/v1/organizations/acme/spaces"

Cette commande renvoie un résultat semblable à celui-ci :

  {
    "spaces": [
        {
            "name": "red",
            "createTime": "2024-08-02T23:26:03.001512Z",
            "updateTime": "2024-08-02T23:26:03.001512Z"
        },
        {
            "name": "blue",
            "createTime": "2024-08-02T00:34:54.159331Z",
            "updateTime": "2024-08-02T00:34:54.159331Z"
      }
      ]
  }

Obtenir les détails de l'espace

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

Utilisez la commande suivante pour obtenir les détails de l'espace :

curl -X GET -H "Authorization: Bearer $TOKEN" \
    "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME"

Où :

  • ORG_NAME est le nom de l'organisation Apigee.
  • SPACE_NAME est le nom de l'espace.

Par exemple, la commande suivante permet d'obtenir des informations détaillées sur l'espace red de l'organisation acme :

curl -X GET -H "Authorization: Bearer $TOKEN" \
    "https://apigee.googleapis.com/v1/organizations/acme/spaces/red"

Cette commande renvoie un résultat semblable à celui-ci :

  {
      "name": "red",
      "createTime": "2024-08-02T23:26:03.001512Z",
      "updateTime": "2024-08-02T23:26:03.001512Z"
  }

Mettre à jour un espace

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

Pour mettre à jour un espace dans votre organisation Apigee, utilisez la commande suivante :

curl -X PATCH -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME" \
      --data-raw '{
        "displayName":"DISPLAY_NAME"
      }'

Où :

  • ORG_NAME est le nom de l'organisation Apigee.
  • SPACE_NAME est le nom de l'espace.
  • DISPLAY_NAME est le nouveau nom à afficher pour l'espace.

Par exemple, la commande suivante met à jour le nom à afficher de l'espace red dans l'organisation acme :

curl -X PATCH -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    "https://apigee.googleapis.com/v1/organizations/acme/spaces/red" -d \
    '{
      "displayName": "Red team space"
    }'

Supprimer un espace

Pour effectuer cette tâche, vous devez disposer de l'autorisation apigee.spaces.delete. Cette autorisation est incluse dans le rôle Apigee Organization Admin. Avant de supprimer un espace, assurez-vous que toutes les ressources qu'il contient ont également été supprimées.

Pour supprimer un espace de votre organisation Apigee, utilisez la commande suivante :

curl -X DELETE -H "Authorization: Bearer $TOKEN" \
    "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME"

Par exemple, la commande suivante supprime l'espace red de l'organisation acme :

curl -X DELETE -H "Authorization: Bearer $TOKEN" \
    "https://apigee.googleapis.com/v1/organizations/acme/spaces/red"

Si vous tentez de supprimer un espace alors que des ressources actives lui sont encore associées, l'erreur suivante s'affiche :

{
  "error": {
    "code": 400,
    "message": "Space \"red\" has resources associated with it. Please delete the resources before deleting the space.",
    "status": "FAILED_PRECONDITION"
  }
}

Pour résoudre cette erreur, supprimez ou déplacez les ressources de l'espace avant d'essayer de le supprimer.

Étape suivante