Dans RAM, une politique d'autorisation définit des autorisations spécifiques. Elle se compose d'éléments de base : Effect, Action/NotAction, Resource, Condition et Principal.
Élément | Description |
Effect | Indique si l'instruction de politique autorise ou refuse l'accès. Les valeurs valides sont :
|
Action/NotAction | L'opération effectuée sur une ressource spécifique. Vous devez spécifier Action ou NotAction dans une instruction de politique :
|
Resource | L'objet ou les objets spécifiques auxquels s'applique la politique. |
Condition | Les conditions dans lesquelles l'autorisation prend effet. |
Principal | L'entité dont l'accès à une ressource est autorisé ou refusé. Cet élément s'applique uniquement aux politiques basées sur les ressources, telles que la politique d'approbation d'un rôle RAM. |
Effect
L'élément Effect indique si une politique autorise ou refuse l'accès. Cet élément est obligatoire.
Les valeurs valides pour l'élément Effect sont Allow et Deny.
Si une politique d'autorisation contient à la fois Allow et Deny, Deny est prioritaire.
Exemple :
"Effect": "Allow"
Action/NotAction
Une instruction de politique doit inclure un élément Action ou NotAction. Action spécifie les opérations autorisées ou refusées. NotAction spécifie les opérations exemptées de la politique.
Les valeurs valides pour l'élément Action/NotAction correspondent aux noms des opérations API définis par le service cloud.
Le format de l'élément Action/NotAction est <ram-code>:<action-name>.
ram-code: Le code RAM du service cloud. Pour plus d'informations, consultez la colonne RAM Code dans la rubrique Services Alibaba Cloud compatibles avec RAM.action-name: Le nom de l'opération API concernée.
La valeur de l'élément Action/NotAction est généralement insensible à la casse. Toutefois, pour garantir un comportement cohérent, utilisez le préfixe <ram-code> et <action-name> exacts tels qu'ils sont spécifiés dans la documentation d'autorisation du service cloud.
Exemples :
-
Exemple d'utilisation d'Action
"Action": [ "oss:ListBuckets", "ecs:Describe*", "rds:Describe*" ] -
Indépendance de l'ordre
L'ordre des éléments dans le tableau Action n'affecte pas le résultat de l'autorisation. Chaque action est évaluée indépendamment, quelle que soit sa position dans le tableau. Par conséquent, les deux notations suivantes sont équivalentes :
"Action": [ "ecs:DescribeSecurityGroups", "ecs:DescribeInstances" ]"Action": [ "ecs:DescribeInstances", "ecs:DescribeSecurityGroups" ] -
Exemple d'utilisation de NotAction
L'exemple suivant autorise toutes les opérations, à l'exception de celles liées à RAM. La politique ne répertorie que l'opération exclue (ram:*) au lieu de toutes les opérations autorisées, ce qui rend l'instruction de politique plus courte. Cependant, cela accorde des autorisations étendues. Utilisez cette approche avec prudence et assurez-vous que la politique se comporte comme prévu.
{ "Effect": "Allow", "NotAction": "ram:*", "Resource": "*" }
Resource
L'élément Resource décrit un ou plusieurs objets auxquels s'applique la politique. Cet élément est utilisé dans les politiques basées sur l'identité et est obligatoire.
La valeur de l'élément Resource correspond à l'ARN (Aliyun Resource Name) d'une ressource définie par un service cloud.
Le format de l'élément Resource est acs:<ram-code>:<region>:<account-id>:<relative-id>. Utilisez l'ARN exact tel qu'il est spécifié dans la documentation d'autorisation du service cloud.
Le format est décrit comme suit :
acs: Abréviation désignant un service Alibaba Cloud. Elle identifie la requête comme ciblant la plateforme de cloud public Alibaba Cloud.ram-code: Le code RAM du service cloud. Pour plus d'informations, consultez la colonne RAM Code dans la rubrique Services Alibaba Cloud compatibles avec RAM.region: Les informations relatives à la région. Pour les ressources globales, accessibles sans spécifier de région, utilisez un astérisque (*). Pour plus d'informations, consultez la rubrique Régions et zones de disponibilité.account-id: L'ID d'un compte Alibaba Cloud. Par exemple,123456789012****.relative-id: La partie de l'ARN qui décrit la ressource, dont la sémantique est définie par le service cloud spécifique. Cette partie prend en charge une structure arborescente, similaire à un chemin de fichier. Par exemple, pour spécifier un objet OSS, le format estrelative-id = "mybucket/dir1/object1.jpg".
Exemple :
"Resource": [
"acs:ecs:*:*:instance/inst-001",
"acs:ecs:*:*:instance/inst-002",
"acs:oss:*:*:mybucket",
"acs:oss:*:*:mybucket/*"
]
Condition
L'élément Condition spécifie les conditions qui doivent être remplies pour qu'une politique prenne effet. Cet élément est facultatif.
L'élément Condition, également appelé bloc de condition, se compose d'une ou plusieurs clauses de condition. Chaque clause contient un opérateur de condition, une clé de condition et une ou plusieurs valeurs de condition.

Étant donné que l'élément Condition est facultatif, le système ne valide pas sa présence. Si vous utilisez l'élément Condition pour spécifier des conditions, veillez à respecter l'orthographe et la casse correctes.
Le nom (clé) d'une clé de condition est sensible à la casse. La sensibilité à la casse de la valeur de condition (value) dépend de l'opérateur de condition utilisé. Par exemple, pour une clé de condition de type chaîne, si vous utilisez l'opérateur StringEquals, il fait correspondre la valeur de la politique avec la valeur de la requête, et la correspondance est sensible à la casse. Si vous utilisez l'opérateur StringEqualsIgnoreCase, il fait correspondre la valeur de la politique avec la valeur de la requête, mais ignore la casse.
L'élément Condition présente les caractéristiques suivantes :
-
Logique d'évaluation
La condition est remplie si la valeur de la clé dans la requête correspond à l'une des valeurs de la politique (OU logique).
Si une clause de condition contient plusieurs clés de condition, toutes les clés doivent correspondre pour que la clause soit satisfaite (ET logique).
Le bloc de condition entier est satisfait uniquement si toutes ses clauses le sont (ET logique).
-
Types d'opérateurs de condition
Les types d'opérateurs de condition incluent String, Number, Date and time, Boolean et IP address. Pour connaître la signification et voir des exemples d'opérateurs de condition, consultez la rubrique Opérateurs de condition.
-
Clés de condition
-
Les clés de condition globales d'Alibaba Cloud utilisent le format :
acs:<condition-key>.Clé de condition globale
Type
Description
acs:CurrentTimeDate et heure
L'heure à laquelle le serveur web reçoit la requête.
RemarqueUtilisez l'heure UTC au format standard ISO 8601.
Par exemple, 20 h 00 min 00 s le 10 janvier 2023, heure de Pékin (UTC+8), est représenté par
2023-01-10T20:00:00+08:00ou2023-01-10T12:00:00Z.acs:SecureTransportBooléen
Indique si la requête a été envoyée via un canal sécurisé, tel que HTTPS.
acs:SourceIpAdresse IP
L'adresse IP client à partir de laquelle la requête a été envoyée.
RemarqueLa valeur de
acs:SourceIppeut être une adresse IP spécifique ou un bloc CIDR. N'écrivez pas une adresse IP spécifique au format CIDR. Par exemple, n'écrivez pas 10.0.0.1 sous la forme 10.0.0.1/32.acs:MFAPresentBooléen
Indique si l'utilisateur s'est connecté avec l'authentification multifacteur (MFA).
RemarqueSi MFA for RAM user sign-in est défini sur Required Only for Unusual Logon dans les paramètres de sécurité de l'utilisateur RAM, la condition
acs:MFAPresentdevient inefficace. Pour plus d'informations, consultez la rubrique Gérer les paramètres de sécurité d'un utilisateur RAM.acs:PrincipalARNChaîne
L'identité du principal de la requête. Cela ne peut être utilisé que dans les politiques de contrôle de Resource Directory et les politiques d'approbation des rôles RAM. Par exemple,
acs:ram:::role/resourcedirectory.RemarqueActuellement, seul l'ARN d'un rôle RAM est pris en charge, et il doit être en minuscules. Vous pouvez trouver l'ARN d'un rôle RAM sur sa page de détails dans la console RAM.
acs:PrincipalRDIdChaîne
L'ID du Resource Directory auquel appartient le compte cloud du principal de la requête, par exemple
rd-AA****. Pour afficher un ID de Resource Directory, consultez la rubrique Afficher les informations de base d'un annuaire de ressources.Cela ne peut être utilisé que dans les politiques d'approbation des rôles RAM et les stratégies de compartiment OSS.
acs:PrincipalRDPathChaîne
Le chemin d'accès du compte cloud du principal de la requête dans le Resource Directory. Le format est généralement
<RD-Id>/<Root-folder-Id>/<Sub-folder-Id>/<Member-account-Id>, par exemplerd-AA**/r-aQ/fd-caiJfl/199386846043**. Pour savoir comment afficher le RDPath complet d'un compte membre, consultez la rubrique Afficher les informations d'un membre.Pour faire correspondre tous les comptes membres sous un RDPath spécifié, vous pouvez utiliser le caractère générique
avec l'opérateur de conditionStringLike. Par exemple,"Condition": {"StringLike": {"acs:PrincipalRDPath": ["<RD-Id>/<Root-folder-Id>/<Sub-folder-Id>"]}}.Cela ne peut être utilisé que dans les politiques d'approbation des rôles RAM et les stratégies de compartiment OSS.
acs:RequestTag/<tag-key>Chaîne
Les tags inclus dans la requête. Remplacez <tag-key> par votre clé de tag réelle. Pour les services cloud et les types de ressources pris en charge, consultez les informations Authentication by Resource Type dans la rubrique Services Alibaba Cloud compatibles avec les tags.
acs:ResourceTag/<tag-key>Chaîne
Les tags attachés à la ressource demandée. Remplacez <tag-key> par votre clé de tag réelle. Pour les services cloud et les types de ressources pris en charge, consultez les informations Authentication by Resource Type dans la rubrique Services Alibaba Cloud compatibles avec les tags.
-
Les clés de condition spécifiques au service utilisent le format :
<ram-code>:<condition-key>.Par exemple, la clé de condition OSS
oss:Delimiterest utilisée dans les requêtes ListObjects pour regrouper les noms d'objets par un caractère.Pour les clés de condition spécifiques à chaque service cloud, consultez la documentation d'autorisation de ce service.
-
-
Exemples de conditions
Les clauses de condition (telles que IpAddress et Bool) au sein d'un même bloc Condition sont évaluées avec un ET logique. Pour créer un OU logique, placez chaque condition dans une instruction de politique distincte.
Exemple 1 : Autoriser un utilisateur RAM à accéder aux instances ECS uniquement si l'utilisateur a activé MFA et effectue la requête depuis l'adresse IP 203.0.113.2.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "IpAddress": { "acs:SourceIp": [ "203.0.113.2" ] }, "Bool": { "acs:MFAPresent": [ "true" ] } } } ] }Exemple 2 : Autoriser un utilisateur RAM à accéder aux instances ECS si l'utilisateur a activé MFA ou effectue la requête depuis l'adresse IP 203.0.113.2.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "IpAddress": { "acs:SourceIp": [ "203.0.113.2" ] } } }, { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "Bool": { "acs:MFAPresent": [ "true" ] } } } ] }
Principal
L'élément Principal, requis dans les politiques basées sur les ressources, spécifie l'entité dont l'accès à une ressource est autorisé ou refusé.
Vous ne pouvez pas utiliser l'élément Principal dans une politique basée sur l'identité. Une politique basée sur l'identité est une politique d'autorisation attachée à une identité RAM (un utilisateur RAM, un groupe d'utilisateurs ou un rôle RAM). L'identité à laquelle la politique est attachée constitue le principal implicite.
Dans l'élément Principal, vous pouvez ajouter plusieurs types de principaux et spécifier plusieurs principaux pour chaque type. Séparez les différents types de principaux par des virgules (,). Si un type de principal inclut plusieurs valeurs, encadrez-les entre crochets ([ ]) et séparez-les par des virgules (,). Plusieurs principaux entretiennent une relation de type OU, ce qui signifie que tous les principaux spécifiés reçoivent l'autorisation.
Voici un exemple d'élément Principal :
"Principal": {
"RAM": [
"acs:ram::123456789012****:root",
"acs:ram::987654321098****:root"
],
"Service": "ecs.aliyuncs.com"
}
Un principal est une entité authentifiée. Il peut appartenir à l'un des types suivants :
-
Compte Alibaba Cloud
Vous pouvez spécifier un compte Alibaba Cloud en tant que principal. Cela accorde des autorisations à tous les utilisateurs RAM et rôles RAM de ce compte. Lorsque vous spécifiez un compte Alibaba Cloud, vous devez utiliser son ARN (
acs:ram::<account-id>:root). Voici un exemple :"Principal": { "RAM": "acs:ram::123456789012****:root" }RemarqueSpécifier l'ARN du compte (...:root) comme principal établit une relation de confiance avec l'ensemble du compte, et non avec une identité utilisateur spécifique. Les autorisations peuvent ensuite être déléguées au sein de ce compte.
-
Utilisateur RAM
Vous pouvez spécifier un utilisateur RAM en tant que principal. Vous devez spécifier l'ARN de l'utilisateur RAM (
acs:ram::<account-id>:user/<user-name>), où<user-name>doit correspondre au nom de l'utilisateur RAM. Voici un exemple :"Principal": { "RAM": [ "acs:ram::123456789012****:user/<user1-name>", "acs:ram::123456789012****:user/<user2-name>" ] }Lorsque vous spécifiez un utilisateur RAM dans l'élément Principal, vous ne pouvez pas utiliser de caractère générique (*) pour une correspondance partielle. Vous devez spécifier le nom complet de l'utilisateur RAM.
ImportantDans une politique d'approbation de rôle RAM, si l'élément
Principalcontient l'ARN d'un utilisateur RAM, le système convertit cet ARN en un ID (par exemple, 29695932303672****) lorsque vous enregistrez la politique d'approbation. Vous ne voyez généralement pas cet ID. Il n'apparaît dans la politique d'approbation que si l'utilisateur RAM spécifié est supprimé. Dans ce cas, vous pouvez supprimer l'ID ou le remplacer par l'ARN d'un utilisateur RAM valide. Ce mécanisme permet de réduire les risques de sécurité. De plus, lors de la création ou de la mise à jour d'une politique d'approbation, vous n'avez pas à vous soucier de la casse de<user-name>car le système la convertit automatiquement en un ARN standard. -
Rôle RAM
Vous pouvez spécifier un rôle RAM en tant que principal. Vous devez spécifier l'ARN du rôle RAM (
acs:ram::<account-id>:role/<role-name>), où<role-name>doit correspondre au nom du rôle RAM. Voici un exemple :"Principal": { "RAM": [ "acs:ram::123456789012****:role/<role-name>" ] }Lorsque vous spécifiez un rôle RAM dans l'élément Principal, vous ne pouvez pas utiliser de caractère générique (*) pour une correspondance partielle. Vous devez spécifier le nom complet du rôle RAM.
ImportantDans une politique d'approbation de rôle RAM, si l'élément
Principalcontient l'ARN d'un rôle RAM, le système convertit cet ARN en un ID (par exemple, 38915594982675****) lorsque vous enregistrez la politique d'approbation. Vous n'êtes généralement pas conscient de cet ID. Il n'est affiché dans la politique d'approbation que lorsque le rôle RAM spécifié est supprimé. Dans ce cas, vous pouvez supprimer l'ID ou le remplacer par l'ARN d'un rôle RAM valide. Ce mécanisme permet de réduire les risques de sécurité. De plus, lors de la création ou de la mise à jour d'une politique d'approbation, vous n'avez pas à vous soucier de la sensibilité à la casse de<role-name>. Le système la convertit automatiquement en un ARN standard. -
Service Alibaba Cloud
Vous pouvez spécifier un service Alibaba Cloud en tant que principal. Le principal de service est un identifiant pour un service, qui utilise généralement le format
<service-name>.aliyuncs.com. Pour la valeur de<service-name>, utilisez le nom complet du service fourni par le service cloud. Voici un exemple :"Principal": { "Service": [ "ecs.aliyuncs.com" ] } -
Fournisseur d'identité
Vous pouvez spécifier un fournisseur d'identité en tant que principal. Vous devez spécifier l'ARN du fournisseur d'identité. Alibaba Cloud prend en charge l'authentification unique (SSO) basée sur SAML 2.0 et OIDC. Une SSO utilisant le protocole SAML nécessite un fournisseur d'identité SAML, dont l'ARN est au format
acs:ram::<account-id>:saml-provider/<provider-name>. Une SSO utilisant le protocole OIDC nécessite un fournisseur d'identité OIDC, dont l'ARN est au formatacs:ram::<account-id>:oidc-provider/<provider-name>. La valeur ARN dans l'élément Principal est sensible à la casse. Utilisez les informations ARN standard du fournisseur d'identité fournies par le système."Principal": { "Federated": [ "acs:ram::123456789012****:saml-provider/<provider-name>" ] }