Si vous souhaitez utiliser un utilisateur RAM pour accéder à d'autres ressources cloud, consultez cette documentation afin d'accorder les autorisations correspondantes à l'utilisateur RAM en fonction de votre scénario (au sein du même compte ou entre comptes). Cette rubrique décrit les étapes détaillées pour l'autorisation au sein du même compte et l'autorisation entre comptes.
Prérequis
Le cluster doit être de type Enterprise Edition, Basic Edition ou Lakehouse Edition.
Autorisations pour les jobs Spark
Pour soumettre un job Spark, vous devez disposer des trois types d'autorisations suivants :
Autorisation | Description |
L'une des autorisations suivantes :
|
Pour plus d'informations sur les actions spécifiques, reportez-vous à la section Accorder des autorisations à un utilisateur RAM. |
Autorisations de lecture et d'écriture sur les bases de données et les tables AnalyticDB for MySQL | AnalyticDB for MySQL utilise par défaut des comptes de base de données pour gérer les autorisations sur les bases de données et les tables. Lorsque vous soumettez un job Spark en tant qu'utilisateur RAM, si le job doit lire ou écrire des données, vous devez associer un compte de base de données standard à l'utilisateur RAM. Pour plus d'informations sur les actions spécifiques, reportez-vous à la section Associer ou dissocier un utilisateur RAM et un compte de base de données. |
| Utilisé pour autoriser AnalyticDB for MySQL Spark à accéder à d'autres ressources cloud, telles que les répertoires OSS et les données OTS. Pour plus d'informations sur les actions spécifiques, reportez-vous à la section Autorisation au sein du même compte. |
Autorisation au sein du même compte
Prérequis
Procédure
Autoriser via la console RAM (recommandé)
Étape 1 : Créer un rôle RAM et accorder des autorisations
-
Créez un rôle RAM.
RemarqueSi vous avez déjà créé un rôle RAM dont le Trusted Entity Type est défini sur Alibaba Cloud Service et le Trusted Entity sur AnalyticDB for MySQL, vous pouvez ignorer cette étape et passer directement aux étapes suivantes.
Connectez-vous à la console RAM en tant qu'administrateur RAM.
Dans le volet de navigation de gauche, choisissez .
Sur la page Roles, cliquez sur Create Role.
Sur la page Create Role, définissez le Trusted Entity Type sur Alibaba Cloud Service, puis choisissez le Trusted Entity sur AnalyticDB for MySQL, et cliquez enfin sur OK.
Dans la boîte de dialogue Create Role, saisissez le Role Name, puis cliquez sur OK.
-
Accordez des autorisations au rôle RAM.
Cliquez sur Grant Permission by Policy.
-
Dans le panneau Grant Permission by Policy, définissez le type de stratégie sur System Policy ou Custom Policy, puis saisissez le nom de la stratégie.
Si vous souhaitez accéder uniquement à des ressources cloud spécifiques, vous devez créer une stratégie personnalisée. Pour plus d'informations, consultez la section Créer une stratégie personnalisée.
Cliquez sur OK.
Étape 2 : Soumettre un job Spark
Après avoir créé un rôle RAM et accordé des autorisations via la console RAM, vous devez configurer le paramètre spark.adb.roleArn dans la configuration du job Spark lors de sa soumission afin de garantir son bon fonctionnement. Exemple :
{
"comments": [
"-- Here is just an example of using LakeCache. Modify the content and run your spark program."
],
"args": ["oss://testBucketName/data/readme.txt"],
"name": "spark-oss-test",
"file": "oss://testBucketName/data/example.py",
"conf": {
"spark.adb.lakecache.enabled": "true";
"spark.adb.roleArn": "acs:ram::testAccountID:role/adbtest";
}
}
Autorisation rapide
Après l'autorisation au sein du même compte, le rôle AliyunADBSparkProcessingDataRole reçoit par défaut la stratégie AliyunADBSparkProcessingDataRolePolicy. Cette stratégie inclut des autorisations d'accès à des ressources cloud telles qu'OSS, Table Store et DMS, ce qui peut entraîner une sur-autorisation. Nous vous recommandons, après l'autorisation, de supprimer la stratégie AliyunADBSparkProcessingDataRolePolicy et d'accorder uniquement les autorisations requises par votre activité professionnelle au rôle AliyunADBSparkProcessingDataRole.
-
Cliquez sur le lien d'autorisation rapide.
RemarqueSeuls les utilisateurs disposant d'autorisations de gestion des utilisateurs RAM (au minimum les autorisations de création de rôles RAM, de création de stratégies RAM, de consultation des rôles RAM et de consultation des stratégies RAM) peuvent effectuer une autorisation rapide.
-
Cliquez sur Confirm Authorization dans le coin inférieur gauche.
Après l'autorisation, le rôle de service AliyunADBSparkProcessingDataRole est automatiquement créé pour être utilisé par AnalyticDB for MySQL. AnalyticDB for MySQL utilise ce rôle pour accéder à d'autres ressources cloud.
Autorisation entre comptes
AnalyticDB for MySQL Spark prend en charge l'accès à toutes les ressources cloud d'autres comptes Alibaba Cloud. Cette rubrique utilise le compte Alibaba Cloud A (compte principal avec l'ID testAccountIDA) pour accéder aux données du compte Alibaba Cloud B (compte principal avec l'ID testAccountIDB) afin d'illustrer la procédure d'autorisation entre comptes.
Étape 1 : Créer un rôle RAM pour le compte B et accorder des autorisations
-
Créez un rôle RAM et autorisez le compte A à endosser ce rôle RAM.
RemarqueSi vous avez déjà créé un rôle RAM et autorisé le compte A à l'endosser, vous pouvez ignorer cette étape et passer directement aux étapes suivantes.
Utilisez le compte Alibaba Cloud B (compte principal) ou un administrateur RAM pour vous connecter à la console RAM.
Dans le volet de navigation de gauche, choisissez .
Sur la page Roles, cliquez sur Create Role.
Sur la page Create Role, choisissez le Trusted Entity Type sur Alibaba Cloud Account, spécifiez le compte Alibaba Cloud, puis cliquez sur OK.
-
Configurez les informations du rôle.
Saisissez un Role Name. Dans cet exemple, définissez le nom du rôle sur
admin-oss.Facultatif : Saisissez une Description.
Définissez le compte Alibaba Cloud de confiance sur Other Alibaba Cloud Account, puis saisissez l'UID du compte A (
testAccountIDA).
Cliquez sur Complete.
Accordez des autorisations aux rôles RAM via la stratégie.
Cliquez sur Grant Permission by Policy.
-
Dans le panneau Grant Permission by Policy, définissez le type de stratégie sur System Policy ou Custom Policy, puis saisissez le nom de la stratégie.
Accéder à OSS
AliyunOSSReadOnlyAccess : autorisation de lire les ressources OSS.
AliyunOSSFullAccess : autorisation de gérer OSS. Si vous devez effectuer des opérations de mise à jour des données, telles que INSERT, sur des tables externes OSS, vous devez accorder cette autorisation au rôle RAM.
Accéder aux ressources dans un VPC spécifique
Si vous souhaitez accéder aux ressources d'un VPC spécifique, vous devez créer une stratégie personnalisée et spécifier le groupe de sécurité et le vSwitch dans le paramètre Resource. Pour plus d'informations, consultez la section Créer une stratégie personnalisée.
Dans cet exemple, seul l'accès à l'instance ApsaraDB RDS for MySQL dans le VPC spécifié est autorisé. Le nom de la stratégie personnalisée est
eni_policyet le contenu de la stratégie est le suivant :RemarqueVous devez disposer d'une instance RDS MySQL et ajouter un groupe de sécurité, puis autoriser l'accès entrant et sortant dans les règles du groupe de sécurité pour les demandes d'accès au port RDS MySQL.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:*", "Resource": "acs:ecs:*:*:securitygroup/<Security group ID of the ApsaraDB RDS instance>" }, { "Effect": "Allow", "Action": "vpc:*", "Resource": "acs:vpc:*:*:vswitch/<vSwitch ID of the ApsaraDB RDS instance>" } ] } Cliquez sur OK.
Cliquez sur Close.
-
Modifiez la stratégie de confiance pour permettre à tout utilisateur RAM sous le compte A d'endosser ce rôle RAM.
Dans le volet de navigation de gauche, choisissez .
Sur la page Roles, cliquez sur le nom du rôle RAM cible.
Sur l'onglet Trust Policy, cliquez sur Edit Trust Policy.
-
Dans l'éditeur, modifiez le contenu de la stratégie de confiance, puis cliquez sur OK.
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::testAccountIDA:root" ] } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "testAccountIDA@ads.aliyuncs.com" ] } } ], "Version": "1" }
Étape 2 : Pour le compte A. Créez des utilisateurs RAM et accordez-leur des autorisations pour endosser des rôles RAM
-
Créez un utilisateur RAM.
Utilisez le compte Alibaba Cloud A (compte principal) ou un administrateur RAM pour vous connecter à la console RAM.
Dans le volet de navigation de gauche, choisissez .
Sur la page Users, cliquez sur Create User.
-
Sur la page Create User, configurez les informations de base de l'utilisateur dans la section User Account Information.
Logon Name (obligatoire) : peut contenir des lettres, des chiffres, des points (.), des traits d'union (-) et des traits de soulignement (_). Longueur maximale : 64 caractères.
Display Name (facultatif) : longueur maximale : 128 caractères.
Tag (facultatif) : Cliquez sur
, puis saisissez les clés et valeurs de tag pour la gestion des utilisateurs basée sur les tags.
RemarqueCliquez sur Add User pour créer plusieurs utilisateurs RAM simultanément.
Dans la section Access Method, choisissez Console Access, et configurez le mot de passe de connexion à la console, la politique de réinitialisation du mot de passe et la politique MFA selon vos besoins. Pour plus d'informations, consultez la section Console Access.
Cliquez sur OK.
-
Créez des stratégies pour permettre aux utilisateurs RAM d'endosser n'importe quel rôle.
Dans le volet de navigation de gauche, choisissez .
Sur la page Policies, cliquez sur CreatePolicies.
Sur la page CreatePolicies, cliquez sur l'onglet Script Editor.
-
Saisissez le contenu de la stratégie, puis cliquez sur OK.
{ "Version": "1", "Statement": [ { "Action": "ram:PassRole", "Resource": "*", "Effect": "Allow" } ] } Dans la boîte de dialogue CreatePolicies, saisissez le Policy Name et la Description, puis cliquez sur OK.
-
Accordez des autorisations à l'utilisateur RAM.
Dans le volet de navigation de gauche, choisissez .
Sur la page Users, cliquez sur Actions pour l'utilisateur RAM cible, puis sélectionnez Add Permissions.
Dans le panneau Add Permissions, ajoutez la stratégie créée à l'étape 2 à l'utilisateur RAM.
Cliquez sur Confirm.
Cliquez sur Close.