MaxCompute s'intègre à RAM et STS pour permettre un accès sécurisé aux sources de données externes. Cette rubrique décrit les méthodes d'autorisation utilisant RAM et STS pour différents scénarios.
Autorisation par rôle RAM pour OSS
Pour permettre à une table externe MaxCompute d'accéder directement aux données dans OSS, le propriétaire de la table doit spécifier un rôle RAM disposant des autorisations OSS nécessaires dans la définition de la table externe. Une fois le rôle associé, le propriétaire peut accorder l'accès à la table externe aux utilisateurs. Vous pouvez accorder des autorisations de la manière suivante :
-
Autorisation en un clic (recommandée) : si MaxCompute et OSS appartiennent au même compte Alibaba Cloud, connectez-vous à votre compte et cliquez ici pour effectuer l'autorisation en un clic.
RemarqueLe rôle par défaut
AliyunODPSDefaultRoleaccorde des autorisations étendues et est fourni à titre indicatif uniquement. Vous devez configurer les politiques d'accès et d'approbation dans la console RAM afin qu'elles correspondent aux autorisations requises par votre table externe MaxCompute ou votre source de données externe. -
Autorisation personnalisée : cette méthode convient aux scénarios intra-compte et inter-comptes. Procédez comme suit :
Si MaxCompute et OSS appartiennent au même compte, définissez le paramètre Service dans la politique d'approbation sur
odps.aliyuncs.com.Si MaxCompute et OSS appartiennent à des comptes différents, définissez le paramètre Service dans la politique d'approbation sur
<MaxCompute-owner-account-ID>@odps.aliyuncs.com. Vous pouvez obtenir l'ID du compte du propriétaire MaxCompute sur la page Aperçu du compte.
-
Créez un rôle RAM.
Connectez-vous à la console RAM et créez un rôle depuis la page Rôles RAM. Par exemple, vous pouvez nommer le rôle
oss-admin. Pour plus d'informations, consultez la rubrique Créer un rôle RAM pour un compte Alibaba Cloud approuvé. -
Modifiez la politique d'approbation du rôle RAM.
Connectez-vous à la console RAM.
Dans le volet de navigation de gauche, sélectionnez .
Sur la page Roles, cliquez sur le Role Name cible pour accéder à la page des détails du rôle.
-
Sous l'onglet Trust Policy, cliquez sur Edit Trust Policy, puis sur la page Edit Trust Policy, sélectionnez l'onglet JSON Editor.
Remplacez la politique existante par le code suivant :
Same account
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "odps.aliyuncs.com" ] } } ], "Version": "1" }Cross-account
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<MaxCompute-owner-account-ID>@odps.aliyuncs.com" ] } } ], "Version": "1" } Une fois terminé, cliquez sur OK.
-
Créez une politique d'accès.
Sur la page Policies de la console RAM, créez une politique d'accès. Par exemple, vous pouvez la nommer
AliyunODPSRolePolicy.La politique suivante accorde des autorisations OSS courantes. Vous pouvez également personnaliser les autorisations. Pour plus d'informations, consultez la rubrique Créer une politique d'accès personnalisée.
{ "Version": "1", "Statement": [ { "Action": [ "oss:ListBuckets", "oss:GetObject", "oss:ListObjects", "oss:PutObject", "oss:DeleteObject", "oss:AbortMultipartUpload", "oss:ListParts", "oss:GetBucketInfo", "oss:PostDataLakeStorageFileOperation", "oss:PostDataLakeStorageAdminOperation" ], "Resource": "*", "Effect": "Allow" } ] } -
Attachez la politique d'accès au rôle RAM que vous venez de créer.
Connectez-vous à la console RAM.
Dans le volet de navigation de gauche, sélectionnez .
Sur la page Roles, cliquez sur le Role Name cible pour accéder à la page des détails du rôle.
-
Sous l'onglet Manage Permissions, cliquez sur Create Authorization. Dans le panneau Create Authorization qui s'affiche, sélectionnez les politiques à accorder au rôle, puis cliquez sur OK.
Pour plus d'informations, consultez la rubrique Gérer les autorisations d'un rôle RAM.
Autorisation par rôle RAM pour Tablestore
Pour permettre à une table externe MaxCompute d'accéder directement aux données dans Tablestore, le propriétaire de la table doit spécifier un rôle RAM disposant des autorisations Tablestore nécessaires dans la définition de la table externe. Une fois le rôle associé, le propriétaire peut accorder l'accès à la table externe aux utilisateurs. Vous pouvez accorder des autorisations de la manière suivante :
Autorisation en un clic (recommandée) : si MaxCompute et Tablestore appartiennent au même compte Alibaba Cloud, connectez-vous à votre compte et cliquez ici pour effectuer l'autorisation en un clic.
-
Autorisation personnalisée : cette méthode s'applique aux scénarios inter-comptes où MaxCompute et Tablestore appartiennent à des comptes différents.
-
Créez un rôle RAM.
Connectez-vous à la console RAM avec le compte Tablestore et créez un rôle depuis la page Rôles RAM. Par exemple, vous pouvez nommer le rôle
tablestore-access-role.Pour plus d'informations, consultez la rubrique Créer un rôle RAM pour un compte Alibaba Cloud approuvé.
-
Modifiez la politique d'approbation du rôle RAM.
Si MaxCompute et Tablestore appartiennent à des comptes différents, utilisez les paramètres suivants pour activer l'accès inter-comptes de MaxCompute à Tablestore.
Connectez-vous à la console RAM.
Dans le volet de navigation de gauche, sélectionnez .
Sur la page Roles, cliquez sur le Role Name cible pour accéder à la page des détails du rôle.
-
Sous l'onglet Trust Policy, cliquez sur Edit Trust Policy, puis sur la page Edit Trust Policy, sélectionnez l'onglet JSON Editor.
Configurez la politique suivante :
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<MaxCompute-owner-account-ID>@odps.aliyuncs.com" ] } } ], "Version": "1" }L'espace réservé
<MaxCompute-owner-account-ID>représente l'ID du compte Alibaba Cloud propriétaire du projet MaxCompute.
-
Créez une politique d'accès.
Sur la page Policies de la console RAM, créez une politique d'accès. Par exemple, vous pouvez la nommer
AliyunODPSRolePolicy.La politique suivante accorde des autorisations Tablestore courantes. Vous pouvez également personnaliser les autorisations. Pour plus d'informations, consultez la rubrique Créer une politique d'accès personnalisée.
{ "Version": "1", "Statement": [ { "Action": [ "ots:ListTable", "ots:DescribeTable", "ots:GetRow", "ots:PutRow", "ots:UpdateRow", "ots:DeleteRow", "ots:GetRange", "ots:BatchGetRow", "ots:BatchWriteRow", "ots:ComputeSplitPointsBySize" ], "Resource": "*", "Effect": "Allow" } ] } -
Attachez la politique d'accès
AliyunODPSRolePolicyau rôle RAM que vous avez créé.Connectez-vous à la console RAM.
Dans le volet de navigation de gauche, sélectionnez .
Sur la page Roles, cliquez sur le Role Name cible pour accéder à la page des détails du rôle.
-
Sous l'onglet Manage Permissions, cliquez sur Create Authorization. Dans le panneau Create Authorization qui s'affiche, sélectionnez les politiques à accorder au rôle, puis cliquez sur OK.
Pour plus d'informations, consultez la rubrique Gérer les autorisations d'un rôle RAM.
-
Autorisation par rôle RAM pour Hologres
Pour permettre à une table externe MaxCompute d'accéder directement aux données dans Hologres, le propriétaire de la table doit spécifier un rôle RAM disposant des autorisations Hologres nécessaires dans la définition de la table externe. Une fois le rôle associé, le propriétaire peut accorder l'accès à cette table externe aux utilisateurs. Procédez comme suit pour configurer les autorisations requises :
-
Créer un rôle RAM
Créez un rôle RAM pour obtenir son nom de ressource Alibaba Cloud (ARN). L'ARN est requis pour configurer l'authentification STS lors de la création de la table externe. Sélectionnez un type d'entité approuvée en fonction de vos besoins métier. Dans cet exemple, un compte Alibaba Cloud est l'entité approuvée.
-
Compte Alibaba Cloud :
Un utilisateur RAM appartenant à un compte Alibaba Cloud peut assumer le rôle RAM pour accéder aux ressources cloud. Pour plus d'informations, consultez la rubrique Créer un rôle RAM pour un compte Alibaba Cloud approuvé.
-
Fournisseur d'identité :
Vous pouvez configurer l'authentification unique (SSO) pour permettre aux utilisateurs d'un système d'identité d'entreprise de se connecter à la console Alibaba Cloud. Cela permet de répondre aux exigences d'authentification et de connexion utilisateur unifiées. Pour plus d'informations, consultez la rubrique Créer un rôle RAM pour un fournisseur d'identité approuvé.
Procédez comme suit :
Connectez-vous à la console RAM.
Dans le volet de navigation de gauche, sélectionnez .
Sur la page Roles, cliquez sur Create Role.
-
-
Modifier la politique d'approbation
Sur la page Roles, cliquez sur le Role Name cible pour accéder à la page des détails du rôle.
Sous l'onglet Trust Policy, cliquez sur Edit Trust Policy, puis sur la page Edit Trust Policy, sélectionnez l'onglet JSON Editor.
-
Modifiez la politique d'approbation comme indiqué dans les exemples suivants.
Le contenu de la politique d'approbation varie selon le type d'entité approuvée. Remplacez
<UID>par l'ID de votre compte Alibaba Cloud. Vous pouvez obtenir l'ID de votre compte sur la page Informations utilisateur.Alibaba Cloud account
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<UID>:root" ] } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<UID>@odps.aliyuncs.com" ] } } ], "Version": "1" }Identity provider
{ "Statement": [ { "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "saml:recipient": "https://signin.alibabacloud.com/saml-role/sso" } }, "Effect": "Allow", "Principal": { "Federated": [ "acs:ram::<UID>:saml-provider/IDP" ] } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<UID>@odps.aliyuncs.com" ] } } ], "Version": "1" }
-
Ajouter le rôle RAM à une instance Hologres et accorder des autorisations
Le rôle RAM nécessite des autorisations de développeur sur l'instance Hologres pour accéder à ses ressources.
Par défaut, les rôles RAM ne peuvent pas afficher ni gérer les instances dans la console de gestion Hologres. Le titulaire du compte Alibaba Cloud doit accorder les autorisations nécessaires au rôle.
Pour ajouter le rôle RAM à une instance Hologres, procédez comme suit :
Hologres console
Connectez-vous à la console de gestion Hologres. Dans le coin supérieur gauche, sélectionnez une région.
Dans le volet de navigation de gauche, cliquez sur Instances.
Sur la page Instances, cliquez sur le nom de l'instance cible.
Sur la page des détails de l'instance, dans le volet de navigation de gauche, cliquez sur Account Management.
Sur la page Users, cliquez sur Add User.
-
Dans la boîte de dialogue Add User, configurez les paramètres et cliquez sur OK.
Sélectionnez le rôle RAM créé à l'étape 1.
Définissez Member Role sur Regular user.
Sur la page Users, dans le volet de navigation de gauche, cliquez sur DB authorization.
Sur la page DB authorization, cliquez sur Create Database.
-
Dans la boîte de dialogue Create Database, configurez les paramètres et cliquez sur OK.
Définissez Policies sur SPM.
Sur la page DB authorization, recherchez la base de données cible et cliquez sur Authorize User dans la colonne Actions.
-
Dans le coin supérieur droit, cliquez sur Create Authorization. Dans la boîte de dialogue Create Authorization, configurez les champs User et User Group.
Users Sélectionnez l'utilisateur RAM que vous souhaitez configurer.
Pour Groups, sélectionnez Developer.
RAM console
Attachez la politique d'accès
AliyunODPSRolePolicyau rôle RAM que vous avez créé.Connectez-vous à la console RAM.
Dans le volet de navigation de gauche, sélectionnez .
Sur la page Users, cliquez sur le User Logon Name/Display Name cible pour accéder à la page des détails de l'utilisateur.
Sur la page des détails de l'utilisateur, cliquez sur l'onglet Manage Permissions.
Sous l'onglet Manage Permissions, sélectionnez Individual, puis cliquez sur Grant Permission.
-
Dans le panneau Grant Permission, sélectionnez la politique à accorder à l'utilisateur, puis cliquez sur OK.
Pour la politique d'accès, sélectionnez
AliyunRAMReadOnlyAccess.Pour plus d'informations, consultez la rubrique Accorder des autorisations à un utilisateur RAM.
SQL
Pour obtenir des informations sur les instructions SQL d'autorisation, consultez la rubrique Modèle d'autorisations Hologres.
Hologres prend également en charge l'authentification par double signature. Pour plus d'informations, consultez la rubrique Tables externes Hologres.
Autorisation par rôle RAM pour DLF et OSS
Lors de la construction d'un data lakehouse avec MaxCompute, DLF et OSS, vous devez d'abord créer une source de données externe en l'associant à un rôle RAM disposant des autorisations d'accès aux données nécessaires pour DLF et OSS. Vous pouvez ensuite utiliser cette configuration pour créer un schéma externe permettant d'accéder aux données. Pour accorder à d'autres utilisateurs des autorisations sur les tables du schéma externe, consultez la rubrique Accorder des autorisations sur les tables externes fédérées dans un schéma externe. Vous pouvez accorder des autorisations de la manière suivante :
Autorisation en un clic (recommandée) : si le compte utilisé pour créer le projet MaxCompute est le même que celui utilisé pour déployer DLF et OSS, vous pouvez cliquer sur Autoriser DLF et OSS pour effectuer l'autorisation.
-
Autorisation personnalisée : cette méthode convient aux scénarios intra-compte et inter-comptes. Procédez comme suit :
Si le projet MaxCompute et DLF se trouvent dans le même compte, définissez le paramètre Service dans la politique d'approbation sur
odps.aliyuncs.com.Si le projet MaxCompute et DLF se trouvent dans des comptes différents, définissez le paramètre Service dans la politique d'approbation sur
<MaxCompute-project-owner-account-ID>@odps.aliyuncs.com. Vous pouvez obtenir l'ID du compte propriétaire MaxCompute sur la page Aperçu du compte.
Connectez-vous à la console RAM et créez un rôle RAM pour un compte Alibaba Cloud approuvé.
-
Dans la console RAM, modifiez la politique d'approbation du rôle RAM. Utilisez le contenu suivant pour la politique d'approbation :
Same account
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "odps.aliyuncs.com" ] } } ], "Version": "1" }Cross-account
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<MaxCompute-project-owner-account-ID>@odps.aliyuncs.com" ] } } ], "Version": "1" } -
Dans la console RAM, créez une politique d'accès personnalisée pour le rôle RAM nouvellement créé. Pour plus d'informations, consultez la rubrique Créer une politique d'accès personnalisée. Utilisez le contenu suivant pour la politique d'accès personnalisée :
{ "Version": "1", "Statement": [ { "Action": [ "oss:ListBuckets", "oss:GetObject", "oss:ListObjects", "oss:PutObject", "oss:DeleteObject", "oss:AbortMultipartUpload", "oss:ListParts" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "dlf:CreateFunction", "dlf:BatchGetPartitions", "dlf:ListDatabases", "dlf:CreateLock", "dlf:UpdateFunction", "dlf:BatchUpdateTables", "dlf:DeleteTableVersion", "dlf:UpdatePartitionColumnStatistics", "dlf:ListPartitions", "dlf:DeletePartitionColumnStatistics", "dlf:BatchUpdatePartitions", "dlf:GetPartition", "dlf:BatchDeleteTableVersions", "dlf:ListFunctions", "dlf:DeleteTable", "dlf:GetTableVersion", "dlf:AbortLock", "dlf:GetTable", "dlf:BatchDeleteTables", "dlf:RenameTable", "dlf:RefreshLock", "dlf:DeletePartition", "dlf:UnLock", "dlf:GetLock", "dlf:GetDatabase", "dlf:GetFunction", "dlf:BatchCreatePartitions", "dlf:ListPartitionNames", "dlf:RenamePartition", "dlf:CreateTable", "dlf:BatchCreateTables", "dlf:UpdateTableColumnStatistics", "dlf:ListTableNames", "dlf:UpdateDatabase", "dlf:GetTableColumnStatistics", "dlf:ListFunctionNames", "dlf:ListPartitionsByFilter", "dlf:GetPartitionColumnStatistics", "dlf:CreatePartition", "dlf:CreateDatabase", "dlf:DeleteTableColumnStatistics", "dlf:ListTableVersions", "dlf:BatchDeletePartitions", "dlf:ListCatalogs", "dlf:UpdateTable", "dlf:ListTables", "dlf:DeleteDatabase", "dlf:BatchGetTables", "dlf:DeleteFunction" ], "Resource": "*", "Effect": "Allow" } ] } Attachez la politique d'accès personnalisée au rôle RAM que vous avez créé. Pour plus d'informations, consultez la rubrique Gérer les autorisations d'un rôle RAM.
Autorisation par rôle lié au service pour Hologres (transmission d'identité)
Lorsque MaxCompute accède aux données dans Hologres via une source de données externe et un projet externe, vous devez utiliser un rôle lié au service pour accorder à Hologres les autorisations d'accès aux données requises. Une fois le rôle créé, ce mode utilise la transmission d'identité pour l'autorisation, en authentifiant les utilisateurs en transmettant leur identité à Hologres afin d'éviter tout accès non autorisé. Pour utiliser cette fonctionnalité, les utilisateurs doivent être membres du projet externe MaxCompute et disposer d'autorisations sur la source de données Hologres mappée au projet externe.
Connectez-vous à la console RAM.
Dans le volet de navigation de gauche, sélectionnez .
Sur la page Roles, cliquez sur Create Role.
Dans le coin supérieur droit de la page Create Role, cliquez sur Create Service Linked Role.
-
Sur la page Create Service Linked Role, sélectionnez Select Service :
aliyunserviceroleformaxcomputeidentitymgmt, puis cliquez sur Create Service Linked Role.Si un message indique que le rôle existe déjà, cela signifie que le rôle a été autorisé. Vous pouvez ignorer le message.
Autorisation par rôle lié au service pour Paimon_DLF (transmission d'identité)
Lorsque MaxCompute accède aux données dans DLF via une source de données externe et un projet externe, vous devez utiliser un rôle lié au service pour accorder à DLF les autorisations d'accès aux données requises. Une fois le rôle créé, ce mode utilise la transmission d'identité pour l'autorisation. Il transmet l'identité de l'utilisateur à DLF pour authentification afin d'éviter tout accès non autorisé. Pour utiliser cette fonctionnalité, l'utilisateur doit être ajouté au projet externe MaxCompute et disposer d'autorisations sur la source de données DLF mappée au projet externe.
Connectez-vous à la console RAM.
Dans le volet de navigation de gauche, sélectionnez .
Sur la page Roles, cliquez sur Create Role.
Dans le coin supérieur droit de la page Create Role, cliquez sur Create Service Linked Role.
-
Sur la page Create Service Linked Role, pour Select Service, sélectionnez
AliyunServiceRoleForMaxComputeLakehouse, puis cliquez sur Create Service Linked Role.Si un message indique que le rôle existe déjà, cela signifie que le rôle a été autorisé. Vous pouvez ignorer le message.