Tous les produits
Search
Centre de documentation

Platform For AI:Configurer un rôle RAM pour une instance DSW

Dernière mise à jour :Aug 31, 2026

L'association d'un rôle RAM à une instance DSW permet à cette dernière d'utiliser les identifiants STS temporaires du rôle pour accéder à d'autres ressources cloud. Cette approche élimine la nécessité de configurer des AccessKeys à long terme et réduit les risques de fuite d'identifiants.

Qu'est-ce qu'un rôle RAM d'instance

Un rôle RAM d'instance fournit une identité temporaire basée sur les rôles pour une instance DSW. Lorsqu'un rôle RAM est attribué à une instance DSW :

  • Les processus exécutés au sein de l'instance obtiennent automatiquement des identifiants STS à court terme depuis le service de métadonnées local ou un fichier d'identifiants.

  • Ces identifiants accordent les autorisations définies par la stratégie de permissions associée, permettant un accès sécurisé aux services cloud autorisés tels que OSS, MaxCompute et PAI-DLC.

  • Cette méthode évite totalement le stockage d'une AccessKey en texte clair dans votre code ou vos fichiers de configuration, vous aidant ainsi à respecter les exigences de sécurité et de conformité.

Les principaux avantages sont les suivants :

  • Sécurité : utilise des identifiants STS à court terme actualisés automatiquement plutôt que des AccessKeys à long terme, éliminant ainsi les risques liés aux clés codées en dur et aux fuites d'identifiants.

  • Gestion simplifiée : centralise la gestion des autorisations via les stratégies de rôle RAM. Les modifications de stratégie prennent effet immédiatement sans nécessiter le redémarrage des instances ni la mise à jour du code.

  • Confiance native : les identifiants sont émis par le Security Token Service (STS) d'Alibaba Cloud, ce qui les rend fiables par défaut sans nécessiter de middleware d'authentification supplémentaire.

Limites

Vous ne pouvez associer qu'un seul rôle RAM à une instance DSW à la fois.

Procédure

Étape 1 : Configurer un rôle RAM

Sur la page de configuration de l'instance DSW, choisissez l'une des trois options de rôle suivantes :

Rôle par défaut de PAI

Platform for AI (PAI) fournit un rôle par défaut. Après avoir attribué ce rôle à une instance, celle-ci obtient automatiquement l'accès aux ressources suivantes sans qu'il soit nécessaire de configurer une AccessKey :

  • Soumettre des tâches aux projets MaxCompute où le propriétaire de l'instance dispose d'autorisations d'exécution, en utilisant le SDK ODPS.

  • Accéder aux données du bucket configuré comme chemin de stockage par défaut pour l'espace de travail actuel, en utilisant le SDK OSS.

  • Utiliser le service Tongyi Lingma dans WebIDE.

  • Créer et soumettre des tâches d'entraînement à l'espace de travail actuel en utilisant le SDK PAI ou PAI-DLC.

Rôle personnalisé

  1. Connectez-vous à la console RAM et créez un rôle RAM. Pour des instructions détaillées, consultez la rubrique Créer un rôle RAM pour un service Alibaba Cloud de confiance.

    Configurez les paramètres clés comme suit :

    • Type d'entité de confiance : Service Alibaba Cloud

    • Nom de l'entité de confiance : Platform for AI (pai.aliyun.cs.com)

  2. Accordez des autorisations au rôle RAM.

    Cliquez sur Add Authorization et attachez une stratégie d'autorisation système ou personnalisée au rôle RAM. Cela accorde au rôle les autorisations nécessaires pour accéder aux ressources requises ou les gérer. Par exemple, ajoutez la stratégie AliyunOSSFullAccess. Pour plus d'informations, consultez l'étape Étape 3 : Accorder des autorisations à un rôle RAM.

    Remarque

    Si vous utilisez un utilisateur RAM pour gérer l'instance DSW, demandez à l'administrateur de votre compte principal de créer et d'attacher la stratégie d'autorisation suivante à votre utilisateur RAM. Cette stratégie permet à votre utilisateur RAM d'utiliser le rôle RAM de l'instance.

    Le code suivant présente la stratégie d'autorisation requise. Remplacez ${RoleName} par le nom du rôle RAM de l'instance DSW.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "ram:PassRole",
          "Resource": "acs:ram::*:role/${RoleName}"
        }
      ]
    }

Aucun rôle associé

Si votre instance est visible publiquement au sein de l'espace de travail, nous vous recommandons de ne pas lui associer de rôle RAM afin d'éviter toute exposition des autorisations. Lors de la création d'une instance ou de la modification de sa configuration, dans la section Advanced Information, définissez Instance RAM Role sur Does Not Associate Role.

Mettre à jour la configuration du rôle RAM

  1. Accédez à la page DSW.

    1. Connectez-vous à la console PAI et sélectionnez votre région et votre espace de travail cibles.

    2. Dans le volet de navigation de gauche, choisissez Model Training > Data Science Workshop (DSW) pour accéder à la page DSW.

  2. Cliquez sur Change Settings à droite de l'instance DSW.

  3. Dans la section Roles and Permissions, configurez le rôle RAM de l'instance.

    Important

    Si vous changez le rôle RAM d'une instance en cours d'exécution, en passant de Default Roles of PAI ou Custom Roles à Does Not Associate Role, ou inversement de Does Not Associate Role à Default Roles of PAI ou Custom Roles, l'instance redémarre immédiatement. Assurez-vous d'avoir enregistré votre travail sur l'instance.

  4. Une fois la configuration terminée, cliquez sur OK.

Étape 2 : Obtenir des identifiants temporaires

Après avoir associé un rôle RAM à une instance, vous pouvez obtenir et utiliser ses identifiants temporaires de plusieurs manières pour accéder aux services cloud.

Outil Credentials

Nous vous recommandons d'utiliser l'outil Credentials fourni par les SDK Alibaba Cloud. Il gère automatiquement l'obtention et l'actualisation des identifiants, ce qui constitue la meilleure pratique pour accéder aux services cloud.

  1. Installez la dépendance (exemple Python) :

    pip install alibabacloud_credentials
  2. Exemple d'utilisation :

    from alibabacloud_credentials.client import Client as CredClient
    from alibabacloud_credentials.models import Config as CredConfig
    credentialsConfig = CredConfig(
    	type='credentials_uri'   # Optional. If you have not configured other access methods in the default credential chain, you do not need to explicitly specify the type. The Credentials SDK obtains temporary credentials by using the URI method.
    )
    credentialsClient = CredClient(credentialsConfig)

Pour plus d'exemples de SDK dans d'autres langages, consultez la rubrique Meilleures pratiques pour l'utilisation des identifiants afin d'accéder à l'OpenAPI Alibaba Cloud.

Service local

Dans l'instance DSW, exécutez la commande suivante dans le terminal pour obtenir les identifiants depuis le service injecté localement.

# Obtain temporary access credentials for the instance RAM role
curl $ALIBABA_CLOUD_CREDENTIALS_URI

Voici un exemple de réponse :

  • SecurityToken : le jeton temporaire pour le rôle RAM de l'instance.

  • Expiration : l'heure d'expiration des identifiants d'accès temporaires.

{
    "Code": "Success",
    "AccessKeyId": "STS.N*********7",
    "AccessKeySecret": "3***************d",
    "SecurityToken": "DFE32G*******",
    "Expiration": "2024-05-21T10:39:29Z"
}

Fichier local

Dans une instance DSW, PAI injecte automatiquement et actualise périodiquement un fichier contenant les identifiants temporaires pour le rôle RAM de l'instance. Vous pouvez obtenir ces identifiants en lisant le fichier situé dans le chemin /mnt/.alibabacloud/credentials. Le contenu du fichier est le suivant :

{
    "AccessKeyId": "STS.N*********7",
    "AccessKeySecret": "3***************d",
    "SecurityToken": "DFE32G*******",
    "Expiration": "2024-05-21T10:39:29Z"
}

Étape 3 : Accéder à d'autres services cloud

Accéder à OSS

  1. Exécutez les commandes suivantes pour installer l'outil Credentials et le SDK OSS :

    # Install the credentials tool
    pip install alibabacloud_credentials
    # Install the OSS SDK
    pip install oss2
  2. Utilisez les identifiants temporaires du rôle RAM de l'instance pour accéder à OSS et répertorier 10 objets dans un bucket spécifié. Pour les endpoints de région OSS, consultez la rubrique Régions et endpoints.

    import oss2
    from alibabacloud_credentials.client import Client
    from alibabacloud_credentials import providers
    from itertools import islice
    auth = oss2.ProviderAuth(providers.DefaultCredentialsProvider())
    bucket = oss2.Bucket(auth, 
                         '<oss_endpoint>',# Replace  with the endpoint of the region where your OSS bucket is located.
                         '<oss_bucket>'# Replace  with your OSS bucket name.
                        )
    for b in islice(oss2.ObjectIterator(bucket), 10):
        print(b.key)

Accéder à MaxCompute

  1. Exécutez les commandes suivantes pour installer l'outil Credentials et le SDK ODPS :

    # Install the credentials tool
    pip install alibabacloud_credentials
    # Install the ODPS SDK
    pip install odps
  2. Utilisez les identifiants temporaires du rôle RAM de l'instance pour accéder à MaxCompute et récupérer la liste des tables dans un projet spécifié. Pour les endpoints de région MaxCompute, consultez la rubrique Endpoints.

    from alibabacloud_credentials import providers
    from odps.accounts import CredentialProviderAccount
    from odps import ODPS
    if __name__ == '__main__':
        account = CredentialProviderAccount(providers.DefaultCredentialsProvider())
        o = ODPS(
                 account=account,
                 project="<odps_project>", # Replace  with your project name.
                 endpoint="<odps_endpoint>"# Replace  with the endpoint of the region where your project is located.
                )
        for t in o.list_tables():
            print(t)

Accéder à PAI-DLC

  1. Exécutez les commandes suivantes pour installer l'outil Credentials, le SDK OpenAPI et le SDK PAI-DLC :

    # Install the credentials tool
    pip install alibabacloud_credentials
    # Install the Alibaba Cloud OpenAPI SDK
    pip install alibabacloud-tea-util alibabacloud_tea_openapi
    # Install the PAI-DLC SDK
    pip install alibabacloud_pai_dlc20201203
  2. Utilisez les identifiants temporaires du rôle RAM de l'instance pour accéder à PAI-DLC et répertorier les tâches PAI-DLC dans un espace de travail spécifié.

    from alibabacloud_credentials.client import Client as CredClient
    from alibabacloud_tea_openapi.models import Config
    from alibabacloud_pai_dlc20201203.client import Client as pai_dlc20201203Client
    from alibabacloud_pai_dlc20201203 import models as pai_dlc_20201203_models
    from alibabacloud_tea_util.models import RuntimeOptions
    # Use the Credentials tool to initialize the PAI-DLC client.
    credentialsClient = CredClient()
    config = Config(credential=credentialsClient)
    config.endpoint = '<dlc_endpoint>' # Replace  with the endpoint of your region.
    client = pai_dlc20201203Client(config)
    # Initialize the request and call the ListJobs API.
    list_jobs_request = pai_dlc_20201203_models.ListJobsRequest()
    list_jobs_request.workspace_id = '<workspace_id>' # Replace  with your workspace ID.
    runtime_options = RuntimeOptions()
    headers = {}
    resp = client.list_jobs_with_options(list_jobs_request, headers, runtime_options)
    jobs = resp.to_map()['body']['Jobs']
    print(jobs[0])

FAQ

Résoudre l'erreur PassRoleFailedError

Connectez-vous à la console RAM pour vérifier que le rôle existe.

  • Si le rôle n'existe pas, modifiez le rôle RAM de l'instance pour utiliser un rôle existant.

  • Si le rôle existe, demandez à l'administrateur de votre compte principal d'accorder à votre utilisateur RAM l'autorisation d'utiliser ce rôle. La stratégie d'autorisation requise est la suivante (remplacez ${RoleName} par le nom du rôle RAM) :

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "ram:PassRole",
          "Resource": "acs:ram::*:role/${RoleName}"
        }
      ]
    }

Résoudre l'erreur AssumeRoleFailedError

Cette erreur survient généralement parce que la stratégie de confiance de votre rôle est configurée incorrectement. Suivez ces étapes pour résoudre le problème :

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

  2. Dans le volet de navigation de gauche, choisissez Identity Management > Roles.

  3. Sur la page Roles, cliquez sur le nom du rôle RAM cible.

  4. Dans l'onglet Trust Policy, cliquez sur Edit Trust Policy.

  5. Modifiez la stratégie de confiance pour ajouter pai.aliyuncs.com au principal Service, puis cliquez sur OK.

    Par exemple, si la stratégie de confiance d'origine est :

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "RAM": [
              "acs:ram::aaa:root"
            ],
            "Service": [
              "xxx.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }

    Mettez à jour la stratégie pour inclure pai.aliyuncs.com :

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "RAM": [
              "acs:ram::aaa:root"
            ],
            "Service": [
              "xxx.aliyuncs.com",
              "pai.aliyuncs.com" 
            ]
          }
        }
      ],
      "Version": "1"
    }