Tous les produits
Search
Centre de documentation

Serverless App Engine:Accorder des autorisations à un rôle RAM

Dernière mise à jour :Aug 21, 2026

Créez un rôle RAM qui fait confiance à un compte Alibaba Cloud afin d'autoriser l'accès inter-comptes aux ressources Serverless App Engine (SAE).

Cas d'utilisation

L'entreprise A a activé SAE et souhaite déléguer une partie de ses opérations commerciales à l'entreprise B :

  • L'entreprise A souhaite se concentrer sur ses systèmes métier et agir uniquement en tant que propriétaire des ressources SAE, en déléguant les opérations telles que le déploiement d'applications, la gestion, la mise à l'échelle automatique, le démarrage et l'arrêt en un clic, ainsi que la surveillance, à l'entreprise B.

  • L'entreprise A n'a pas besoin de gérer les autorisations lorsque des employés rejoignent ou quittent l'entreprise B. L'entreprise B gère elle-même l'accès de ses utilisateurs RAM aux ressources de l'entreprise A, y compris les autorisations fines pour ses employés ou applications.

  • Si le partenariat prend fin, l'entreprise A peut révoquer l'accès de l'entreprise B à tout moment.

Étape 1 : L'entreprise A crée un rôle RAM

Supposons que l'entreprise A et l'entreprise B disposent chacune d'un compte Alibaba Cloud : le compte A et le compte B.

  • Le compte Alibaba Cloud A possède l'ID 1234************ et l'alias de compte company-a.

  • Le compte Alibaba Cloud B possède l'ID 2345************ et l'alias de compte company-b.

  1. Connectez-vous à la console RAM en utilisant le compte Alibaba Cloud A.

  2. Dans le volet de navigation de gauche, sélectionnez Identities > Roles.

  3. Sur la page Roles, cliquez sur Create Role.

  4. Sur la page Create Role, configurez le rôle.

    1. Définissez Trusted Entity Type sur Alibaba Cloud Account. Pour Select Trusted Alibaba Cloud Account, sélectionnez Other Alibaba Cloud Account et saisissez l'ID du compte Alibaba Cloud B. Cliquez ensuite sur OK.

    2. Saisissez sae-admin pour Role Name puis cliquez sur OK.

      Important

      Pour permettre uniquement à des utilisateurs RAM spécifiques d'assumer ce rôle RAM, utilisez l'une des méthodes suivantes :

  5. Sur la page Basic Information du rôle, vous pouvez consulter les détails tels que le nom du rôle RAM, l'heure de création et l'ARN.

    • Nom du rôle RAM : sae-admin.

    • ARN : acs:ram::1234************:role/sae-admin.

    • politique de confiance :

      Remarque

      La politique suivante permet aux utilisateurs RAM du compte Alibaba Cloud B d'assumer ce rôle RAM.

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "RAM": [
                "acs:ram::2345************:root"
              ]
            }
          }
        ],
        "Version": "1"
      }

Étape 2 : L'entreprise A accorde des autorisations au rôle RAM

Depuis la page Roles

  1. Connectez-vous à la console RAM en tant qu'administrateur RAM.

  2. Dans le volet de navigation de gauche, sélectionnez Identities > Roles.

  3. Sur la page Roles, localisez le rôle RAM et cliquez sur Grant Permission dans la colonne Actions.

    Pour accorder des autorisations à plusieurs rôles RAM simultanément, sélectionnez les rôles RAM et cliquez sur Grant Permission sous la liste.

  4. Dans le panneau Grant Permission, accordez des autorisations au rôle RAM.

    1. Sélectionnez une étendue pour l'autorisation.

      • Alibaba Cloud Account : Les autorisations s'appliquent à toutes les ressources du compte Alibaba Cloud actuel.

      • Resource Group : Les autorisations s'appliquent uniquement aux ressources du groupe de ressources spécifié.

        Remarque

        Les autorisations accordées sur un groupe de ressources ne prennent effet que si le service cloud et le type de resource supportent les groupes de ressources. Pour plus d'informations, consultez la section Services compatibles avec Resource Group.

    2. Sélectionnez les principaux.

      Un principal est un rôle RAM qui reçoit des autorisations. Le système sélectionne automatiquement le rôle RAM actuel.

    3. Sélectionnez les politiques d'autorisation.

      Une politique d'autorisation définit un ensemble d'autorisations. Vous pouvez sélectionner plusieurs politiques.

      • Politique système : Une politique système est créée et maintenue par Alibaba Cloud. Vous pouvez utiliser les politiques système mais vous ne pouvez pas les modifier. Pour plus d'informations, consultez la section « Services cloud et politiques système » de la rubrique Services compatibles avec RAM.

        Remarque

        Le système identifie automatiquement les politiques système à haut risque, telles que AdministratorAccess et AliyunRAMFullAccess. Évitez d'accorder des autorisations à haut risque sauf si cela est nécessaire.

      • Politique personnalisée : Vous créez et gérez une politique personnalisée. Vous pouvez créer, mettre à jour et supprimer des politiques personnalisées. Pour plus d'informations sur la création d'une politique personnalisée, consultez la section Créer une politique d'autorisation personnalisée.

    4. Cliquez sur OK.

  5. Cliquez sur close.

Depuis la page Grants

  1. Connectez-vous à la console RAM en tant qu'administrateur RAM.

  2. Dans le volet de navigation de gauche, sélectionnez Permissions > Grants.

  3. Sur la page Grants, cliquez sur Grant Permission.

  4. Dans le panneau Grant Permission, accordez des autorisations au rôle RAM.

    1. Sélectionnez une étendue pour l'autorisation.

      • Account : Les autorisations s'appliquent à toutes les ressources du compte Alibaba Cloud actuel.

      • Resource Group : Les autorisations s'appliquent uniquement aux ressources du groupe de ressources spécifié.

        Remarque

        Les autorisations accordées sur un groupe de ressources ne prennent effet que si le service cloud et le type de resource supportent les groupes de ressources. Pour plus d'informations, consultez la section Services compatibles avec Resource Group.

    2. Sélectionnez les principaux.

      Un principal est un rôle RAM qui reçoit des autorisations. Vous pouvez sélectionner plusieurs rôles RAM.

    3. Sélectionnez les politiques d'autorisation.

      Une politique d'autorisation définit un ensemble d'autorisations. Vous pouvez sélectionner plusieurs politiques.

      • Politique système : Une politique système est créée et maintenue par Alibaba Cloud. Vous pouvez utiliser les politiques système mais vous ne pouvez pas les modifier. Pour plus d'informations, consultez la section « Services cloud et politiques système » de la rubrique Services compatibles avec RAM.

        Remarque

        Le système identifie automatiquement les politiques système à haut risque, telles que AdministratorAccess et AliyunRAMFullAccess. Évitez d'accorder des autorisations à haut risque sauf si cela est nécessaire.

      • Politique personnalisée : Vous créez et gérez une politique personnalisée. Vous pouvez créer, mettre à jour et supprimer des politiques personnalisées. Pour plus d'informations sur la création d'une politique personnalisée, consultez la section Créer une politique d'autorisation personnalisée.

    4. Cliquez sur OK.

  5. Cliquez sur close.

Étape 3 : L'entreprise B crée un utilisateur RAM

  1. Connectez-vous à la console RAM en utilisant le compte Alibaba Cloud B.

  2. Créez un utilisateur RAM. Pour des instructions détaillées, consultez la section Créer un utilisateur RAM.

Étape 4 : L'entreprise B accorde des autorisations à l'utilisateur RAM

  1. Connectez-vous à la console RAM en utilisant le compte Alibaba Cloud B.

  2. Dans le volet de navigation de gauche, sélectionnez Identities > Users.

  3. Sur la page Users, localisez l'utilisateur RAM cible et cliquez sur Add Permissions dans la colonne Actions.

    Pour accorder des autorisations à plusieurs utilisateurs RAM simultanément, sélectionnez les utilisateurs RAM et cliquez sur Add Permissions sous la liste.

  4. Dans la section Policies, saisissez AliyunSTSAssumeRoleAccess dans la zone de recherche, sélectionnez la politique pour l'ajouter à la liste Selected sur la droite, puis cliquez sur OK.

  5. Cliquez sur Terminé.

Étape 5 : Accéder aux ressources inter-comptes

Security Token Service (STS) fournit des jetons d'accès temporaires avec une période de validité personnalisée et des autorisations spécifiques. Un principal autorisé, tel qu'un utilisateur ou un rôle RAM, peut obtenir un jeton puis accéder aux ressources Alibaba Cloud de l'une des manières suivantes :

Méthode 1 : Utiliser la console

L'utilisateur RAM de l'entreprise B peut se connecter à la console pour accéder aux ressources SAE de l'entreprise A.

  1. Connectez-vous à la console RAM en tant qu'utilisateur RAM du compte Alibaba Cloud B.

    Pour plus d'informations, consultez la section Se connecter à la console Alibaba Cloud en tant qu'utilisateur RAM.

  2. Dans le coin supérieur droit de la console, placez le pointeur sur votre photo de profil et cliquez sur Switch Role.

  3. Sur la page Switch Role, saisissez l'Account Alias et le Role Name de l'entreprise A, puis cliquez sur Submit.

    Après le changement de rôle, l'utilisateur RAM de l'entreprise B peut gérer les ressources Serverless App Engine de l'entreprise A.

Méthode 2 : Utiliser un SDK

  1. Obtenez un identifiant d'accès. Cet exemple utilise le SDK Java.

    1. Définissez les variables d'environnement suivantes dans votre environnement d'exécution.

      Parameter

      Value

      ALIBABA_CLOUD_ACCESS_KEY_ID

      L'AccessKey ID de l'utilisateur RAM de l'entreprise B

      ALIBABA_CLOUD_ACCESS_KEY_SECRET

      L'AccessKey secret de l'utilisateur RAM de l'entreprise B

    2. Exécutez le code suivant. Pour plus d'informations, consultez les sections Exemple de SDK Java et AssumeRole.

      package com.aliyun.sample;
      
      import com.aliyun.sts20150401.models.AssumeRoleResponse;
      import com.aliyun.tea.TeaException;
      import com.google.gson.Gson;
      
      public class Sample {
      
          /**
           * <b>description</b> :
           * <p>
           * Initialize the client with credentials.
           * </p>
           * 
           * @return Client
           * 
           * @throws Exception
           */
          public static com.aliyun.sts20150401.Client createClient() throws Exception {
              com.aliyun.credentials.Client credential = new com.aliyun.credentials.Client();
              com.aliyun.teaopenapi.models.Config config =
                      new com.aliyun.teaopenapi.models.Config().setCredential(credential);
              // For more information about endpoints, see https://api.alibabacloud.com/product/Sts.
              config.endpoint = "sts.cn-hangzhou.aliyuncs.com";
              return new com.aliyun.sts20150401.Client(config);
          }
      
          public static void main(String[] args_) throws Exception {
      
              com.aliyun.sts20150401.Client client = Sample.createClient();
              com.aliyun.sts20150401.models.AssumeRoleRequest assumeRoleRequest =
                      new com.aliyun.sts20150401.models.AssumeRoleRequest();
              com.aliyun.teautil.models.RuntimeOptions runtime =
                      new com.aliyun.teautil.models.RuntimeOptions();
      
              // Replace the value of RoleArn with the ARN of your role and specify a custom RoleSessionName.
              assumeRoleRequest.setRoleArn("acs:ram::1234************:role/sae-admin");
              assumeRoleRequest.setRoleSessionName("Alice");
      
              try {
                  // If you copy the code to run it, print the API response.
                  AssumeRoleResponse response = client.assumeRoleWithOptions(assumeRoleRequest, runtime);
                  System.out.println(new Gson().toJson(response.body));
              } catch (TeaException error) {
                  // This is for demonstration only. In a production project, handle exceptions with care and do not ignore them.
                  // Error message
                  System.out.println(error.getMessage());
                  // Troubleshooting URL
                  System.out.println(error.getData().get("Recommend"));
                  com.aliyun.teautil.Common.assertAsString(error.message);
              } catch (Exception _error) {
                  TeaException error = new TeaException(_error.getMessage(), _error);
                  // This is for demonstration only. In a production project, handle exceptions with care and do not ignore them.
                  // Error message
                  System.out.println(error.getMessage());
                  // Troubleshooting URL
                  System.out.println(error.getData().get("Recommend"));
                  com.aliyun.teautil.Common.assertAsString(error.message);
              }
          }
      }
      
      Remarque

      Vous pouvez appeler les opérations API SAE en utilisant des requêtes HTTP, des SDK ou OpenAPI Explorer. Pour plus d'informations, consultez la section Aperçu des API.

      Sortie attendue :

      {
        "requestId": "964E0EC5-575B-4FF5-8FD0-D4BD8025****",
        "assumedRoleUser": {
          "arn": "acs:ram::*************",
          "assumedRoleId": "*************"
        },
        "credentials": {
          "securityToken": "*************",
          "accessKeyId": "STS.*************",
          "accessKeySecret": "*************",
          "expiration": "2021-05-28T11:23:19Z"
        }
      }
  2. Utilisez la paire de clés d'accès et le jeton de sécurité renvoyés pour créer un nouveau client. Cela accorde à l'utilisateur RAM de l'entreprise B l'autorisation de gérer les ressources SAE dans le compte Alibaba Cloud A. L'exemple suivant interroge les namespaces dans la région SAE China (Hangzhou).

    1. Définissez les variables d'environnement suivantes dans l'environnement d'exécution de votre code.

      Parameter

      Value

      ALIBABA_CLOUD_ACCESS_KEY_ID

      Le credentials.accessKeyId de la réponse à l'étape précédente

      ALIBABA_CLOUD_ACCESS_KEY_SECRET

      Le credentials.accessKeySecret de la réponse à l'étape précédente

      ALIBABA_CLOUD_SECURITY_TOKEN

      Le credentials.securityToken de la réponse à l'étape précédente

    2. Exécutez le code suivant.

      package com.aliyun.sample;
      
      import com.aliyun.sae20190506.models.DescribeNamespacesResponse;
      import com.aliyun.tea.*;
      import com.google.gson.Gson;
      
      public class Sample {
      
          /**
           * <b>description</b> :
           * <p>
           * Initialize the client with credentials.
           * </p>
           * 
           * @return Client
           * 
           * @throws Exception
           */
          public static com.aliyun.sae20190506.Client createClient() throws Exception {
              com.aliyun.credentials.Client credential = new com.aliyun.credentials.Client();
              com.aliyun.teaopenapi.models.Config config =
                      new com.aliyun.teaopenapi.models.Config().setCredential(credential);
              // For more information about endpoints, see https://api.alibabacloud.com/product/sae.
              config.endpoint = "sae.cn-hangzhou.aliyuncs.com";
              return new com.aliyun.sae20190506.Client(config);
          }
      
          public static void main(String[] args_) throws Exception {
      
              com.aliyun.sae20190506.Client client = Sample.createClient();
              com.aliyun.sae20190506.models.DescribeNamespacesRequest describeNamespacesRequest =
                      new com.aliyun.sae20190506.models.DescribeNamespacesRequest();
              com.aliyun.teautil.models.RuntimeOptions runtime =
                      new com.aliyun.teautil.models.RuntimeOptions();
              java.util.Map<String, String> headers = new java.util.HashMap<>();
      
              // Replace the following parameters based on your requirements.
              describeNamespacesRequest.setCurrentPage(1);
              describeNamespacesRequest.setPageSize(10);
      
              try {
                  DescribeNamespacesResponse response = client
                          .describeNamespacesWithOptions(describeNamespacesRequest, headers, runtime);
                  System.out.println(new Gson().toJson(response.body));
              } catch (TeaException error) {
                  // This is for demonstration only. In a production project, handle exceptions with care and do not ignore them.
                  // Error message
                  System.out.println(error.getMessage());
                  // Troubleshooting URL
                  System.out.println(error.getData().get("Recommend"));
                  com.aliyun.teautil.Common.assertAsString(error.message);
              } catch (Exception _error) {
                  TeaException error = new TeaException(_error.getMessage(), _error);
                  // This is for demonstration only. In a production project, handle exceptions with care and do not ignore them.
                  // Error message
                  System.out.println(error.getMessage());
                  // Troubleshooting URL
                  System.out.println(error.getData().get("Recommend"));
                  com.aliyun.teautil.Common.assertAsString(error.message);
              }
          }
      }
      

Révoquer l'accès

Lorsque le partenariat entre l'entreprise A et l'entreprise B prend fin, l'entreprise A peut révoquer l'accès en supprimant les autorisations du rôle RAM, puis en le supprimant. Cela empêche les utilisateurs RAM du compte Alibaba Cloud B d'assumer le rôle pour accéder aux ressources du compte Alibaba Cloud A.

Remarque

Avant de supprimer un rôle RAM, vous devez révoquer les autorisations qui lui ont été accordées. Pour plus d'informations, consultez la section Révoquer les autorisations d'un rôle RAM.

  1. Connectez-vous à la console RAM en utilisant le compte Alibaba Cloud A.

  2. Dans le volet de navigation de gauche, accédez à Identities > Roles.

  3. Sur la page Roles, localisez le rôle RAM que vous souhaitez supprimer et cliquez sur Delete Role dans la colonne Actions.

  4. Dans la boîte de dialogue Delete Role, saisissez le nom du rôle RAM et cliquez sur Delete Role.

    Les noms de rôles sont sensibles à la casse. Le nom que vous saisissez doit correspondre exactement au nom affiché dans la liste des rôles. Sinon, le bouton Delete Role reste désactivé. Les rôles liés au service utilisent souvent des noms en camelCase, tels que AliyunServiceRoleForSmartService. Pour éviter les erreurs, copiez le nom du rôle depuis la liste des rôles et collez-le dans la zone de texte de confirmation.

    Si des politiques sont attachées au rôle RAM, elles sont automatiquement détachées lors de la suppression du rôle.

    La suppression d'un rôle lié au service utilisé par son service cloud correspondant échouera. Vous devez d'abord accéder à la console du service cloud pour supprimer sa dépendance vis-à-vis du rôle, puis réessayer la suppression. Pour plus d'informations sur les rôles liés au service, consultez la section Rôles liés au service.

    Après avoir soumis la demande de suppression, l'état du rôle passe à Deleting. Une fois la suppression asynchrone terminée, le rôle est retiré de la liste des rôles.

    Si une tâche de suppression échoue, cliquez sur Role Deletion Tasks dans le coin supérieur droit de la liste des rôles pour afficher les détails.