Resource Access Management (RAM) vous permet de déléguer des autorisations via des utilisateurs RAM. Vous pouvez attribuer différentes autorisations aux utilisateurs RAM en fonction de vos besoins métier. Cette approche permet d'éviter les risques de sécurité liés à l'exposition de la clé AccessKey de votre compte Alibaba Cloud.
Contexte
L'entreprise A a activé le service ApsaraMQ for RabbitMQ. Elle souhaite que ses employés gèrent les ressources du service ApsaraMQ for RabbitMQ, telles que les instances, les Vhosts, les files d'attente et les exchanges. Les employés ayant des responsabilités professionnelles différentes, ils nécessitent des niveaux d'autorisation distincts. Voici les exigences de l'entreprise A :
Pour des raisons de sécurité ou de confiance, l'entreprise ne souhaite pas partager directement la clé AccessKey de son compte Alibaba Cloud avec ses employés. Elle préfère créer des comptes utilisateurs distincts pour chacun d'eux.
Les utilisateurs peuvent gérer les ressources uniquement dans le cadre des autorisations qui leur sont accordées. Toutes les utilisations de ressources sont facturées au compte Alibaba Cloud de l'entreprise, et non aux comptes utilisateurs individuels.
L'entreprise peut révoquer les autorisations d'un utilisateur ou supprimer un compte utilisateur à tout moment.
Étape 1 : Créer un utilisateur RAM
Pour créer des utilisateurs RAM destinés à ses employés, connectez-vous à la console RAM à l'aide du compte Alibaba Cloud de l'entreprise A.
Procédure
Console
Connectez-vous à la console RAM en utilisant votre compte Alibaba Cloud ou en tant qu'utilisateur RAM disposant d'autorisations d'administration (un utilisateur auquel la stratégie
AliyunRAMFullAccessest attachée).Dans le volet de navigation de gauche, choisissez .
Sur la page Users, cliquez sur Create User.
-
Sur la page Create User, dans la section User Account Information, configurez les informations de base de l'utilisateur.
Logon Name (obligatoire) : Jusqu'à 64 caractères. Les lettres, chiffres, points (.), tirets (-) et traits de soulignement (_) sont autorisés.
Display Name (facultatif) : Le nom peut comporter jusqu'à 128 caractères.
Tag (facultatif) : Cliquez sur
, puis saisissez une clé de tag et une valeur de tag pour catégoriser et gérer les utilisateurs.
RemarqueCliquez sur Add User pour créer plusieurs utilisateurs RAM en masse.
-
Dans la section Access Mode, sélectionnez un mode d'accès en fonction du type d'utilisateur.
ImportantPar mesure de sécurité, il est recommandé de sélectionner un seul mode d'accès par utilisateur afin de séparer l'accès humain à la console de l'accès programmatique des applications. Si un utilisateur RAM a besoin à la fois de se connecter à la console et d'effectuer des appels API, vous pouvez sélectionner les deux modes d'accès. Après avoir sélectionné Permanent AccessKey, vous devez cocher la case I confirm that I must create an AccessKey pour continuer.
La divulgation d'une paire de clés AccessKey compromet la sécurité de votre compte. Utilisez plutôt des jetons Security Token Service (STS) (identifiants temporaires) pour réduire les risques. Bonnes pratiques pour l'utilisation des identifiants d'accès lors des appels aux API Alibaba Cloud.
Accès à la console
Sélectionnez Console Access.
Set Logon Password : Générez automatiquement un mot de passe ou définissez-en un personnalisé. Les mots de passe personnalisés doivent respecter les exigences de complexité configurées. Définir une politique de mot de passe pour les utilisateurs RAM.
Password Reset : Indiquez si l'utilisateur doit réinitialiser son mot de passe lors de sa prochaine connexion.
Enable MFA : L'authentification multifacteur (MFA) est requise par défaut pour tous les utilisateurs. Pour modifier ce paramètre, consultez la rubrique Gérer les paramètres de sécurité des utilisateurs RAM. Les utilisateurs doivent lier un dispositif MFA lors de leur première connexion. Lier un dispositif MFA.
Accès programmatique
Sélectionnez Permanent AccessKey.
Le système crée automatiquement un AccessKey ID et un AccessKey secret pour l'utilisateur RAM.
ImportantLe AccessKey secret n'est affiché qu'au moment de la création et ne peut pas être récupéré ultérieurement. Vous devez immédiatement télécharger ou copier et enregistrer le AccessKey secret. La divulgation d'une paire de clés AccessKey compromet toutes les ressources associées à votre compte. Créer une paire de clés AccessKey.
OpenAPI
Créer un utilisateur RAM pour l'accès à la console
Appelez GetDefaultDomain pour obtenir le suffixe de connexion par défaut d'un compte. Le format est
<AccountAlias>.onaliyun.com.-
Appelez l'opération CreateUser pour créer un utilisateur RAM. Les paramètres suivants sont requis :
UserPrincipalName: Le nom de connexion de l'utilisateur RAM. Le format est<username>@<AccountAlias>.onaliyun.com, où<username>représente le nom d'utilisateur RAM et<AccountAlias>.onaliyun.comle suffixe de connexion par défaut.DisplayName: Le nom d'affichage de l'utilisateur RAM. Il peut différer du<username>mentionné ci-dessus.
-
Appelez l'opération CreateLoginProfile pour créer un profil de connexion et configurer le mode d'accès ainsi que l'authentification MFA. Paramètres recommandés :
UserPrincipalName: L'utilisateur créé à l'étape précédente.Password: Définissez-le conformément aux exigences de robustesse des mots de passe du compte. Appelez GetPasswordPolicy pour interroger la politique de mot de passe actuelle.MFABindRequired: Définissez surtruepour exiger l'authentification MFA pour les utilisateurs RAM.Status: Active ou désactive la connexion par mot de passe à la console. Valeur par défaut :Active.
Créer un utilisateur RAM pour l'accès programmatique
Appelez GetDefaultDomain pour obtenir le suffixe de connexion par défaut d'un compte. Le suffixe est au format
<AccountAlias>.onaliyun.com.-
Appelez l'opération CreateUser pour créer un utilisateur RAM. Les paramètres suivants sont requis :
UserPrincipalName: Le nom de connexion d'un utilisateur RAM au format<username>@<AccountAlias>.onaliyun.com, où<username>représente le nom d'utilisateur RAM et<AccountAlias>.onaliyun.comle suffixe de connexion par défaut.DisplayName: Le nom d'affichage de l'utilisateur RAM, qui peut différer du<username>mentionné ci-dessus.
-
Pour créer une paire de clés AccessKey (AccessKey), appelez l'opération CreateAccessKey et transmettez uniquement le
UserPrincipalNamede l'utilisateur que vous avez créé à l'étape précédente.ImportantLa réponse de l'opération
CreateAccessKeycontient l'AccessKeyId et l'AccessKeySecret. L'AccessKeySecret n'est affiché qu'une seule fois et ne peut pas être récupéré ultérieurement ; enregistrez-le immédiatement. La divulgation d'une clé AccessKey compromet toutes les ressources de votre compte. Pour plus d'informations, consultez la rubrique Créer une clé AccessKey.
Étape 2 : Accorder des autorisations aux utilisateurs RAM
Accordez des autorisations différentes à différents utilisateurs RAM.
Connectez-vous à la console RAM en tant qu'administrateur RAM.
Dans le volet de navigation de gauche, choisissez .
Recherchez l'utilisateur RAM souhaité et cliquez sur Attach Policy dans la colonne Actions.
-
Dans le panneau Attach Policy, accordez des autorisations à l'utilisateur RAM.
-
Sélectionnez une Resource Scope.
Account : Les autorisations s'appliquent au compte Alibaba Cloud actuel.
-
Resource Group : Les autorisations s'appliquent au groupe de ressources spécifié.
RemarqueUne autorisation pour un groupe de ressources prend effet uniquement si le service cloud prend en charge les groupes de ressources. Pour plus d'informations, consultez la rubrique Services cloud prenant en charge les groupes de ressources.
-
Spécifiez un Principal.
Le principal correspond à l'utilisateur RAM auquel vous accordez des autorisations.
-
Sélectionnez Policy.
Une stratégie est un ensemble d'autorisations. Il existe deux types de stratégies :
System Policy : Créées et maintenues par Alibaba Cloud. Vous pouvez utiliser ces stratégies, mais vous ne pouvez pas les modifier. Pour plus d'informations, consultez la rubrique Services compatibles avec RAM.
Custom Policy : Vous pouvez créer, mettre à jour et supprimer ces stratégies. Pour plus d'informations, consultez la rubrique Créer une stratégie personnalisée.
Pour configurer des autorisations granulaires pour les ressources ApsaraMQ for RabbitMQ, telles que les instances, les Vhosts et les files d'attente, créez une stratégie personnalisée. L'exemple suivant montre un fichier JSON de stratégie personnalisée :
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "amqp:*", "Resource": "acs:amqp:*:*:instance/<InstanceID>/vhost/<VhostName>" } ] }Remplacez
<InstanceID>par l'ID réel de l'instance et<VhostName>par le nom réel du Vhost. Le champResourceprend en charge les niveaux de granularité suivants :Niveau instance :
acs:amqp:*:*:instance/<InstanceID>Niveau Vhost :
acs:amqp:*:*:instance/<InstanceID>/vhost/<VhostName>Niveau file d'attente :
acs:amqp:*:*:instance/<InstanceID>/vhost/<VhostName>/queue/<QueueName>
RemarqueLe système identifie automatiquement les stratégies système à haut risque, telles que AdministratorAccess et AliyunRAMFullAccess. Lors de l'attribution des autorisations, évitez d'accorder des stratégies à haut risque inutiles.
Dépannage : Autorisations RAM insuffisantes
Si vous rencontrez des erreurs liées aux autorisations lors de la connexion ou de la consommation de messages depuis ApsaraMQ for RabbitMQ, vérifiez les points suivants :
BrokerUnreachableException ou InstanceNotServing (.NET SDK) : Si votre client .NET SDK signale une exception
BrokerUnreachableExceptionouInstanceNotServinget que la connexion réseau est vérifiée comme normale, vérifiez si l'utilisateur RAM dispose des autorisations d'opération pour l'instance et le Vhost cibles. Mettez à jour la stratégie personnalisée pour accorder les autorisationsamqp:*sur les ressources concernées.AccessDeniedByRamPolicy (consommation de file d'attente différée) : Si la consommation de la file d'attente différée est interrompue ou si des messages s'accumulent et que l'erreur
AccessDeniedByRamPolicyest signalée, vérifiez si l'utilisateur RAM dispose des autorisations d'opération pour l'instance, le Vhost et les files d'attente spécifiques cibles (par exemple,event_task_result_queryetevent_task_status). Mettez à jour le champResourcede votre stratégie personnalisée pour inclure les files d'attente concernées.
Cliquez sur Grant permissions.
-
Cliquez sur Close.
Étapes suivantes
Les utilisateurs RAM peuvent accéder à ApsaraMQ for RabbitMQ de la manière suivante.
-
Console
Ouvrez la page de connexion des utilisateurs RAM dans votre navigateur.
-
Sur la page RAM User Logon, saisissez le nom d'utilisateur RAM, cliquez sur Next, entrez le mot de passe, puis cliquez sur Log On.
RemarqueLe nom d'utilisateur RAM doit être au format <$username>@<$AccountAlias> ou <$username>@<$AccountAlias>.onaliyun.com. <$AccountAlias> correspond à l'alias du compte. Si aucun alias de compte n'est défini, l'ID du compte Alibaba Cloud est utilisé par défaut.
-
API
Utilisez l'AccessKey ID et l'AccessKey Secret de l'utilisateur RAM dans votre code pour appeler l'API et accéder à ApsaraMQ for RabbitMQ.