Tous les produits
Search
Centre de documentation

Platform For AI:Configurer un rôle RAM pour DLC

Dernière mise à jour :Aug 09, 2026

Lorsque vos tâches DLC accèdent à d'autres ressources cloud, vous devez configurer une paire AccessKey pour l'authentification. En associant un rôle RAM, votre tâche DLC peut utiliser des identifiants temporaires fournis par le Security Token Service (STS) pour accéder à d'autres services cloud. Cette approche élimine le besoin de paires AccessKey à long terme et réduit les risques de fuite de clés. Cette rubrique explique comment créer un rôle RAM, lui accorder des autorisations pour DLC et obtenir des identifiants d'accès temporaires via ce rôle.

Avantages

Un rôle RAM est une entité de confiance que les services cloud peuvent endosser pour gérer l'accès inter-services. L'utilisation d'un rôle RAM pour l'authentification et le contrôle d'accès offre les avantages suivants :

  • Sécurité : les identifiants STS temporaires remplacent les paires AccessKey à long terme, ce qui réduit le risque de fuite de clés.

  • Contrôle et praticité : vous pouvez contrôler précisément l'accès des développeurs aux ressources cloud en modifiant la politique d'autorisations du rôle RAM.

Limites

Vous ne pouvez associer qu'un seul rôle RAM à une tâche DLC.

Méthodes de configuration

Lors de la création d'une tâche DLC, configurez un rôle RAM et obtenez des identifiants STS temporaires.

Configurer un rôle RAM pour DLC

Rôle par défaut de PAI

Le rôle par défaut de PAI s'appuie sur le rôle de service AliyunPAIDLCDefaultRole. Il dispose d'autorisations fines permettant d'accéder uniquement à MaxCompute et à Object Storage Service (OSS). Un identifiant temporaire émis à partir de ce rôle possède les mêmes autorisations que le compte Alibaba Cloud lors de l'accès aux tables MaxCompute. Pour l'accès à OSS, il ne peut accéder qu'au bucket OSS par défaut configuré pour l'espace de travail actuel.

Après avoir accordé le rôle par défaut de PAI, vous pouvez obtenir des identifiants temporaires au sein de la tâche pour accéder aux ressources de développement de base, sans octroyer d'autorisations excessives ni créer de rôle RAM supplémentaire.

  • Cas d'utilisation

    Une fois le rôle par défaut de PAI accordé, vous n'avez pas besoin de configurer de paire AccessKey dans les scénarios suivants :

    • Soumission d'une tâche à l'aide du SDK PyODPS vers un projet MaxCompute où le propriétaire de la tâche dispose des autorisations d'exécution.

    • Accès aux données du bucket OSS par défaut configuré pour l'espace de travail actuel à l'aide du SDK OSS.

  • Méthode de configuration

    Lorsque vous créez une tâche DLC, dans la section Roles and Permissions, sélectionnez Default Roles of PAI comme Instance RAM Role. Dans la section Roles and Permissions, définissez Visibility sur Visible within the workspace et Instance RAM Role sur default role of PAI.

Après avoir configuré le rôle RAM, vous devez obtenir un identifiant d'accès temporaire en utilisant le rôle RAM associé.

Rôle personnalisé

Si les autorisations des identifiants temporaires issus du rôle par défaut de PAI ne répondent pas à vos besoins, vous pouvez créer un rôle RAM et personnaliser sa politique d'autorisations. Suivez les étapes ci-dessous :

  1. Connectez-vous à la console RAM et créez un rôle RAM.

    Configurez les paramètres clés suivants :

    • Principal Type : sélectionnez Cloud Services.

    • Principal Name : sélectionnez PAI.

  2. Accordez des autorisations au rôle RAM créé.

    Joignez une politique système ou personnalisée au rôle RAM pour définir ses autorisations. Par exemple, accordez la politique AliyunOSSReadOnlyAccess au rôle RAM pour octroyer un accès en lecture seule à OSS.

    Si vous êtes un utilisateur RAM, contactez l'administrateur de votre compte Alibaba Cloud pour lui demander d'accorder à votre utilisateur RAM les autorisations nécessaires pour utiliser le rôle RAM. Pour plus d'informations, consultez la rubrique Gérer les autorisations des utilisateurs RAM. Le code suivant illustre un exemple de politique d'autorisation personnalisée :

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

    Remplacez ${RoleName} par le nom du rôle RAM associé à la tâche DLC.

  3. Soumettez la tâche DLC et associez le rôle RAM. Dans la section Roles and Permissions, configurez les paramètres clés suivants. Pour obtenir des informations sur les autres paramètres, consultez la rubrique Créer une tâche d'entraînement.

    Parameter

    Description

    Instance RAM Role

    Sélectionnez Custom Role.

    RAM Role

    Sélectionnez le rôle RAM que vous avez créé lors des étapes précédentes. L'identifiant temporaire hérite des autorisations de ce rôle personnalisé lors de l'accès aux services cloud.

Après avoir configuré le rôle RAM, vous devez obtenir un identifiant d'accès temporaire en utilisant le rôle RAM associé.

Aucun rôle associé

Si vous n'avez pas besoin d'utiliser une paire AccessKey pour accéder aux données, nous vous recommandons de ne pas associer de rôle. Lorsque vous créez une tâche DLC, dans la section Roles and Permissions, sélectionnez Does Not Associate Role comme Instance RAM Role. Dans la section Roles and Permissions, définissez Visibility sur Visible to creator only et Instance RAM Role sur Do not associate role.

Obtenir un identifiant d'accès temporaire

Si vous attribuez le rôle par défaut de PAI ou un rôle personnalisé à une tâche DLC, vous pouvez obtenir des identifiants temporaires de l'une des manières suivantes :

Utiliser l'outil d'identifiants

L'outil Alibaba Cloud Credentials obtient des identifiants temporaires auprès de STS en appelant un service local injecté automatiquement lors de la création de la tâche. Les identifiants sont actualisés automatiquement et régulièrement.

Lorsque vous créez une tâche DLC, effectuez les configurations clés suivantes :

  • Installez l'outil Alibaba Cloud Credentials.

    Dans la section Third-party Library Settings, sélectionnez Third-party Libraries et saisissez alibabacloud_credentials dans la zone de texte pour installer l'outil Alibaba Cloud Credentials.

    Remarque

    Vous pouvez ignorer cette étape si la bibliothèque est préinstallée dans l'image.

  • Configurez un fichier de script.

    Le code suivant fournit un exemple de script Python. Pour davantage d'exemples dans d'autres langages SDK, consultez la rubrique Bonnes pratiques pour l'utilisation des identifiants d'accès aux API OpenAPI Alibaba Cloud. Vous pouvez utiliser l'option Source Code Repositories ou Mount Configuration pour charger le fichier de script dans l'environnement DLC.

    from alibabacloud_credentials.client import Client as CredClient
    from alibabacloud_credentials.models import Config as CredConfig
    credentialsConfig = CredConfig(
        type='credentials_uri'
    )
    credentialsClient = CredClient(credentialsConfig)
    

Accéder au service local

Lorsque vous créez une tâche DLC, exécutez la commande suivante dans le champ Startup Command pour obtenir des identifiants temporaires auprès du service local injecté automatiquement.

# Obtain a temporary access credential for the instance RAM role.
curl $ALIBABA_CLOUD_CREDENTIALS_URI

L'exemple suivant montre un résultat type :

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

Description des champs :

  • SecurityToken : jeton de sécurité temporaire du rôle RAM.

  • Expiration : date d'expiration des identifiants temporaires.

Accéder à un fichier local

Dans le conteneur DLC, lisez le fichier situé au chemin spécifié pour obtenir les identifiants temporaires du rôle RAM. Ce fichier est injecté automatiquement et actualisé périodiquement par PAI. Le chemin du fichier est /mnt/.alibabacloud/credentials. Le code suivant présente le contenu du fichier :

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

Exemples

Accéder à ODPS

Lorsque vous créez une tâche DLC, effectuez les configurations clés suivantes :

  • Installez les bibliothèques requises.

    Dans la section Third-party Library Settings, configurez Third-party Libraries pour installer l'outil Alibaba Cloud Credentials et le SDK ODPS.

    alibabacloud_credentials
    pyodps
    Remarque

    Vous pouvez ignorer cette étape si ces bibliothèques sont préinstallées dans l'image.

  • Configurez un fichier de script.

    Le code suivant fournit un exemple de script Python. Vous pouvez utiliser l'option Source Code Repositories ou Mount Configurations pour charger le fichier de script dans l'environnement DLC et configurer un Mount Path, tel que /mnt/data/.

    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)
    
  • Configurez la commande de démarrage.

    Définissez la Startup Command sur la commande qui exécute le script. Par exemple, python /mnt/data/xx.py.

  • Configurez les informations de rôle.

    Pour Instance RAM Role, sélectionnez Default Roles of PAI.

Accéder à OSS

Lorsque vous créez une tâche DLC, effectuez les configurations clés suivantes :

  • Installez les bibliothèques requises.

    Dans la section Third-party Library Settings, configurez Third-party Libraries pour installer l'outil Alibaba Cloud Credentials et le SDK OSS.

    alibabacloud_credentials
    oss2
    Remarque

    Vous pouvez ignorer cette étape si ces bibliothèques sont préinstallées dans l'image.

  • Configurez un fichier de script.

    Le code suivant fournit un exemple de script Python. Vous pouvez utiliser l'option Source Code Repositories ou Mount Configurations pour charger le fichier de script dans l'environnement DLC et configurer un Mount Path, tel que /mnt/data/.

    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 the name of your OSS bucket.
             )
    for b in islice(oss2.ObjectIterator(bucket), 10):
        print(b.key)
    
  • Configurez la commande de démarrage.

    Définissez la Startup Command sur la commande qui exécute le script. Par exemple, python /mnt/data/xx.py.

  • Configurez les informations de rôle.

    Pour Instance RAM Role, sélectionnez Default Roles of PAI.

FAQ

Erreur lors de la sélection d'un rôle personnalisé

  • Message d'erreur : check permission for ram role failed ou check permission for RAM user failed.

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

    • Si le rôle n'existe pas, remplacez Instance RAM Role par un rôle existant.

    • Si le rôle existe, contactez l'administrateur de votre compte Alibaba Cloud pour accorder à votre utilisateur RAM les autorisations nécessaires pour utiliser le rôle. Pour plus d'informations, consultez la rubrique Gérer les autorisations des utilisateurs RAM. Voici un exemple de politique d'autorisation personnalisée. Remplacez ${RoleName} par le nom de votre rôle RAM.

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "ram:PassRole",
            "Resource": "acs:ram::*:role/${RoleName}"
          }
        ]
      }
  • Message d'erreur : Failed to assume role for user.

    Cette erreur survient généralement parce qu'aucune politique de confiance n'est configurée pour votre rôle. Ajoutez une politique de confiance en suivant les étapes ci-dessous :

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

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

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

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

    5. Dans l'éditeur, modifiez la politique de confiance, puis cliquez sur OK.

      Supposons que la politique de confiance initiale du rôle soit :

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

      Le nouveau contenu de la politique est le suivant :

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