Créez une stratégie personnalisée pour mettre en œuvre une gestion fine des autorisations.
Méthodes de création
-
Utilisation de l'éditeur visuel
RAM propose un éditeur visuel WYSIWYG. Générez une stratégie personnalisée en sélectionnant un effet, un service, une action, une ressource et une condition. Une fonctionnalité intégrée de validation intelligente garantit la validité et l'efficacité de votre stratégie. Cette méthode est simple d'utilisation.
-
Utilisation de l'éditeur de script
RAM met à disposition un éditeur de script JSON. Rédigez la stratégie personnalisée en respectant la syntaxe et la structure des stratégies. Cette approche offre une plus grande flexibilité et constitue un excellent choix si vous maîtrisez la syntaxe des stratégies.
-
Importer un modèle de stratégie : RAM fournit des modèles de stratégie pour des scénarios courants, tels que ceux destinés aux administrateurs système, au personnel financier et aux administrateurs réseau. Importez le modèle approprié et apportez quelques modifications mineures pour créer rapidement une stratégie personnalisée.
Importer une stratégie système : importez une stratégie système et adaptez-la à vos besoins métier. Il s'agit d'un moyen pratique et rapide de créer une stratégie personnalisée à partir d'un modèle standardisé.
Utilisation de l'éditeur visuel
Connectez-vous à la console RAM en tant qu'administrateur RAM.
Dans le volet de navigation de gauche, choisissez .
Sur la page Policies , cliquez sur Create Policy.
-
Sur la page Create Policy , cliquez sur l'onglet Visual Editor .
L'éditeur visuel affiche un formulaire d'instruction comprenant les champs suivants : Effect (obligatoire, peut être défini sur Allow ou Deny, valeur par défaut : Allow), Service (obligatoire), Action (obligatoire), Resource (obligatoire) et Condition (facultatif). Sélectionnez un service avant de configurer Action, Resource et Condition. En bas de la page, cliquez sur Add Statement pour ajouter d'autres instructions.
-
Configurez la stratégie.
Pour en savoir plus sur les éléments de base d'une stratégie, consultez la rubrique Éléments de base d'une stratégie.
Dans la section Effect , sélectionnez Allow ou Deny.
-
Dans la section Service , sélectionnez un service.
RemarqueLa console affiche les services compatibles avec l'éditeur visuel.
-
Dans la section Action , sélectionnez All action(s) ou Select action(s).
Le système liste automatiquement les actions disponibles en fonction du service sélectionné à l'étape précédente. Si vous sélectionnez Select action(s) , choisissez ensuite les actions spécifiques.
-
Dans la section Resources , sélectionnez All Resources ou Specified resource(s).
Le système liste automatiquement les types de ressources disponibles en fonction des actions sélectionnées. Si vous sélectionnez Specified resource(s) , cliquez sur Add Resource pour spécifier les ARN. Utilisez la fonctionnalité Match All pour sélectionner rapidement toutes les ressources d'un élément de configuration.
RemarqueL'interface utilisateur indique les ARN des actions associées comme étant Required . Spécifiez ces ARN pour garantir le bon fonctionnement de la stratégie.
-
Dans la section Condition , cliquez sur Add Condition pour configurer les conditions.
Les conditions incluent les conditions communes Alibaba Cloud et les conditions spécifiques au service. Le système liste automatiquement les conditions disponibles en fonction du service et des actions configurés. Sélectionnez une clé de condition et configurez sa valeur.
Cliquez sur Add Statement et répétez les étapes précédentes pour configurer plusieurs instructions.
-
En haut de la page, cliquez sur Optimize , puis sur Perform pour optimiser la stratégie de manière avancée.
La fonctionnalité d'optimisation avancée des stratégies effectue les tâches suivantes :
Sépare les ressources ou les conditions pour les actions incompatibles.
Réduit la portée des ressources.
Supprime les instructions en double ou fusionne les instructions.
Sur la page Create Policy , cliquez sur OK.
Dans la boîte de dialogue Create Policy , saisissez un policy name et une Description , puis cliquez sur OK.
Utilisation de l'éditeur de script
Connectez-vous à la console RAM en tant qu'administrateur RAM.
Dans le volet de navigation de gauche, choisissez .
Sur la page Policies , cliquez sur Create Policy.
-
Sur la page Create Policy , cliquez sur l'onglet JSON Editor .
La page affiche un éditeur JSON. Le modèle de stratégie par défaut comprend un élément
Version(défini sur"1") et un tableauStatement. Chaque instruction inclut les élémentsEffect(par défaut"Allow"),Action,ResourceetCondition. Renseignez les élémentsActionetResource. -
Saisissez le contenu de la stratégie.
Pour en savoir plus sur la syntaxe et la structure des stratégies, consultez la rubrique Syntaxe et structure des stratégies.
-
En haut de la page, cliquez sur Optimize , puis sur Perform pour optimiser la stratégie de manière avancée.
La fonctionnalité d'optimisation avancée des stratégies effectue les tâches suivantes :
Sépare les ressources ou les conditions pour les actions incompatibles.
Réduit la portée des ressources.
Supprime les instructions en double ou fusionne les instructions.
Sur la page Create Policy , cliquez sur OK.
Dans la boîte de dialogue Create Policy , saisissez un policy name et une Description , puis cliquez sur OK.
Exemples courants de stratégies personnalisées
Les exemples suivants illustrent la configuration de stratégies personnalisées pour des scénarios d'autorisation courants à l'aide de l'éditeur de script.
Autorisation des opérations au niveau du compte
Les opérations au niveau du compte, telles que la création d'utilisateurs RAM et de clés AccessKey, nécessitent de définir l'élément Resource sur "*" et d'établir l'étendue d'autorisation sur Entire Alibaba Cloud Account . Ces opérations ne peuvent pas être restreintes à un groupe de ressources spécifique.
L'exemple suivant accorde les autorisations nécessaires pour créer des utilisateurs RAM et des clés AccessKey :
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ram:CreateUser",
"ram:CreateAccessKey"
],
"Resource": "*"
}
]
}
Lorsque vous attachez cette stratégie à un utilisateur RAM, vous devez définir l'étendue d'autorisation sur Entire Alibaba Cloud Account . Si vous limitez l'étendue à un groupe de ressources spécifique, la stratégie ne prendra pas effet pour les opérations au niveau du compte.
Autoriser les utilisateurs RAM à modifier leur propre mot de passe
L'exemple suivant accorde à un utilisateur RAM les autorisations minimales requises pour modifier son propre mot de passe de connexion :
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ram:ChangePassword",
"Resource": "*"
}
]
}
N'accordez pas AliyunRAMFullAccess dans ce cas. AliyunRAMFullAccess fournit des autorisations administratives complètes sur toutes les ressources RAM, ce qui dépasse largement le principe du moindre privilège requis pour la modification des mots de passe.
Accès en lecture seule à des ressources spécifiques
L'exemple suivant accorde un accès en lecture seule à une instance ECS spécifique. Remplacez i-xxx par votre ID d'instance réel.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ecs:Describe*",
"Resource": "acs:ecs:*:*:instance/i-xxx"
}
]
}
Dans le format ARN, une barre oblique (/) est requise entre le type de ressource et l'ID de ressource. Par exemple, utilisez instance/i-xxx , et non instancei-xxx .
Autorisation fine pour Simple Log Service
L'exemple suivant accorde les autorisations nécessaires pour interroger les journaux et créer des vues de magasin dans Simple Log Service. Remplacez exampleproject et examplelogstore par les noms réels de votre projet et de votre Logstore.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"log:GetLogStoreLogs",
"log:CreateStoreView"
],
"Resource": [
"acs:log:*:*:project/exampleproject/logstore/examplelogstore",
"acs:log:*:*:project/exampleproject"
]
}
]
}
Si les appels SDK échouent avec des erreurs d'autorisation refusée après avoir accordé les autorisations précédentes, ajoutez les autorisations log:GetProject et log:GetLogStore . Il s'agit d'autorisations de dépendance implicite requises pour le bon fonctionnement des actions principales.
L'exemple suivant accorde l'autorisation d'exécuter des exécutions OOS :
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "oos:StartExecution",
"Resource": "*"
}
]
}
Déploiement ECS (autorisations minimales)
Le déploiement d'une instance ECS nécessite une combinaison d'actions sur plusieurs services. L'exemple suivant accorde les autorisations minimales requises pour créer une instance ECS, y compris un accès en lecture seule aux ressources VPC et de groupe de sécurité nécessaires lors de la création de l'instance :
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:RunInstances",
"ecs:DescribeInstances",
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches",
"ecs:DescribeSecurityGroups"
],
"Resource": "*"
}
]
}
ecs:RunInstances: crée et démarre une instance ECS.ecs:DescribeInstances: interroge les détails de l'instance.vpc:DescribeVpcsetvpc:DescribeVSwitches: vous permettent de sélectionner un VPC et un vSwitch lors de la création de l'instance.ecs:DescribeSecurityGroups: vous permet de sélectionner un groupe de sécurité lors de la création de l'instance.
Configuration réseau VPC (autorisations minimales)
L'exemple suivant accorde les autorisations minimales requises pour créer un VPC et un vSwitch :
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"vpc:CreateVpc",
"vpc:CreateVSwitch",
"vpc:CreateSecurityGroup",
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches"
],
"Resource": "*"
}
]
}
vpc:CreateVpc: crée un VPC.vpc:CreateVSwitch: crée un vSwitch.vpc:CreateSecurityGroup: crée un groupe de sécurité.vpc:DescribeVpcsetvpc:DescribeVSwitches: interrogent les ressources réseau.
Dépannage des erreurs d'autorisation refusée
Lorsqu'un utilisateur RAM reçoit une erreur AccessForbidden ou un message d'autorisation refusée dans la console, suivez ces étapes pour identifier et résoudre le problème :
Étape 1 : Utilisez l'outil API Troubleshoot pour identifier les autorisations manquantes
Utilisez l'outil Alibaba Cloud API Troubleshoot et saisissez le RequestID de la requête ayant échoué. L'outil identifie l'AuthAction exact qui manque, afin que vous puissiez ajouter l'autorisation requise à votre stratégie personnalisée.
Étape 2 : Vérifiez l'étendue d'autorisation
Assurez-vous que l'étendue d'autorisation correspond au type d'opération :
Opérations au niveau du compte (telles que
ram:CreateUser) : l'étendue d'autorisation doit être définie sur Entire Alibaba Cloud Account . La restriction de l'étendue à un groupe de ressources spécifique entraîne l'échec de ces opérations.Opérations prenant en charge les groupes de ressources : vérifiez que la stratégie est attachée avec l'étendue de groupe de ressources correcte, ou définissez l'étendue sur Entire Alibaba Cloud Account .
Étape 3 : Vérifiez les autorisations de dépendance implicites
Certaines opérations nécessitent des autorisations supplémentaires au-delà de l'action principale. Par exemple :
Interrogations Simple Log Service : en plus de
log:GetLogStoreLogs, vous pouvez avoir besoin des autorisationslog:GetProjectetlog:GetLogStore.Connexion à la console Milvus : en plus des actions de gestion principales, vous avez besoin des autorisations
CreateConnectionetDbmConnect.
Reportez-vous à la documentation d'autorisation RAM du service Alibaba Cloud correspondant pour identifier toutes les autorisations requises.
Optimiser une stratégie trop volumineuse
Le document de stratégie d'une stratégie personnalisée ne peut pas dépasser 6 144 octets. Lorsque cette limite est dépassée, l'opération CreatePolicy renvoie une erreur InvalidParameter.PolicyDocument.Length avec le message The policy document size is limited to 6144 bytes . Vous pouvez utiliser les méthodes suivantes pour réduire la taille d'une stratégie.
Réduire la taille de la stratégie avec des caractères génériques
Combinez plusieurs actions partageant le même préfixe en un caractère générique, ce qui peut réduire considérablement la taille d'une stratégie. Par exemple, modifiez la stratégie suivante :
{"Action": ["oss:GetBucket", "oss:GetObject", "oss:GetBucketAcl", "oss:GetBucketLogging"]}
en :
{"Action": ["oss:Get*"]}
Diviser une stratégie par fonction
Divisez une stratégie volumineuse couvrant plusieurs fonctions en stratégies distinctes, et attachez chacune d'elles à un utilisateur ou un groupe d'utilisateurs RAM différent. Par exemple, séparez les opérations de lecture et d'écriture en deux stratégies :
Stratégie en lecture seule :
{"Action": ["oss:Get*", "oss:List*"]}Stratégie d'écriture :
{"Action": ["oss:Put*", "oss:Delete*"]}
Diviser une stratégie par ressource
Divisez les stratégies par ressource. Par exemple, séparez les autorisations pour différents buckets OSS dans des stratégies distinctes, afin que chaque stratégie n'accorde des autorisations que pour un bucket spécifique. Cela évite qu'une seule stratégie gère trop de ressources.
Notes d'utilisation
Lorsque vous configurez une stratégie dans l'éditeur visuel, ne sélectionnez pas toutes les actions. Choisissez l'ensemble d'actions offrant le moins de privilèges possible afin de maintenir le document de stratégie aussi petit que possible.
Après avoir divisé une stratégie, vous devez attacher chaque stratégie résultante séparément aux utilisateurs ou groupes d'utilisateurs RAM, ce qui augmente la complexité de gestion.
La combinaison d'actions avec des caractères génériques peut entraîner une surautorisation. Examinez attentivement l'étendue des autorisations pour éviter d'accorder plus de permissions que nécessaire pour votre activité.
Une stratégie prend effet immédiatement après son attachement. Aucune attente n'est requise.
Par importation d'une stratégie
Connectez-vous à la console RAM en tant qu'administrateur RAM.
Dans le volet de navigation de gauche, choisissez .
Sur la page Policies , cliquez sur Create Policy.
Sur la page Create Policy , cliquez sur Import Policy .
-
Dans le coin supérieur droit de la boîte de dialogue Import Policy , sélectionnez Policy Template ou System Policy dans la liste déroulante.
Sélectionnez un modèle de stratégie ou une stratégie système.
Pour certains modèles de stratégie, vous devez configurer des paramètres en fonction de vos besoins métier.
-
Sélectionnez une règle de remplacement pour la stratégie importée.
Par défaut, le contenu de la stratégie importée remplace entièrement le contenu existant. Vous pouvez également sélectionner Do not overwrite, append new statements to the end .
Cliquez sur Import .
Dans l'éditeur visuel ou l'éditeur de script, consultez et modifiez le contenu de la stratégie importée.
-
En haut de la page, cliquez sur Optimize , puis sur Perform pour optimiser la stratégie de manière avancée.
La fonctionnalité d'optimisation avancée des stratégies effectue les tâches suivantes :
Sépare les ressources ou les conditions pour les actions incompatibles.
Réduit la portée des ressources.
Supprime les instructions en double ou fusionne les instructions.
Sur la page Create Policy , cliquez sur OK.
Dans la boîte de dialogue Create Policy , saisissez un policy name et une Description , puis cliquez sur OK.
FAQ
Pourquoi certaines autorisations sont-elles introuvables dans l'éditeur visuel ou pourquoi l'enregistrement d'une stratégie échoue-t-il ?
Ce problème peut survenir pour les raisons suivantes :
L'action n'est pas prise en charge ou n'est pas encore répertoriée dans l'éditeur visuel
Certaines actions API récemment publiées ou de bas niveau, telles que oos:StartExecution et les modèles avec caractères génériques comme swas-open:* , peuvent ne pas être disponibles dans l'éditeur visuel. L'éditeur visuel peut également ne pas gérer correctement les modèles avec caractères génériques sous certaines restrictions de ressources. Pour résoudre ce problème, cliquez sur l'onglet Script Editor et saisissez manuellement le nom de l'action.
Le nom de l'action est mal orthographié
Certains noms d'actions API présentent des différences entre le singulier et le pluriel. Par exemple, le nom d'action correct est ecs:ReInitDisks , et non ecs:ReInitDisk . Vérifiez le nom exact de l'action dans la référence API du service Alibaba Cloud correspondant.
La stratégie système n'est pas synchronisée
Si vous ne trouvez pas une stratégie système spécifique, telle que AliyunAccountCenterFullAccess , localisez le contenu JSON officiel de cette stratégie système et recréez-la en tant que stratégie personnalisée à l'aide de l'Script Editor .
Échec de la validation du format JSON
Vérifiez que votre syntaxe JSON est correcte. Les erreurs courantes incluent :
Définir le champ
Resourceplus d'une fois dans une seule instruction. Pour spécifier plusieurs ressources, listez-les sous forme de tableau JSON dans un seul champResource. Par exemple :"Resource": ["acs:ecs:*:*:instance/i-aaa", "acs:ecs:*:*:instance/i-bbb"].Utiliser des formats ARN incorrects. Assurez-vous que l'ARN suit le modèle
acs:<service>:<region>:<account-id>:<resource-type>/<resource-id>.
Pourquoi l'accès à la console ou l'exécution d'opérations est-il impossible après avoir accordé FullAccess ou une stratégie personnalisée ?
Ce problème peut survenir pour les raisons suivantes :
Dépendance d'accès à la console
Certaines consoles de produits nécessitent des autorisations d'accès de base à la console, telles que PowerUserAccess , en plus des autorisations spécifiques au métier. Accorder uniquement une stratégie FullAccess spécifique au métier peut ne pas suffire pour charger la page de la console. Attachez la stratégie d'accès de base requise à l'utilisateur RAM.
Incompatibilité de l'étendue d'autorisation
Vérifiez que l'étendue d'autorisation sélectionnée lors de l'attachement de la stratégie correspond à la définition Resource de la stratégie. Par exemple, les opérations au niveau de l'instance pour des services tels qu'OceanBase nécessitent que l'étendue d'autorisation soit définie sur Entire Alibaba Cloud Account , la stratégie spécifiant l'ARN de l'instance.
Priorité et conflit de stratégies
Vérifiez si une instruction Deny dans une autre stratégie remplace l'autorisation Allow , ou s'il existe un conflit entre vos stratégies personnalisées et les stratégies système. Pour des scénarios complexes, tels que l'accès au réseau public MQTT, si une stratégie personnalisée ne prend pas effet, essayez la stratégie système officiellement recommandée (telle que AliyunMQFullAccess ) pour vérifier la connectivité avant de poursuivre le dépannage de votre stratégie personnalisée.