Syntaxe d'une politique de contrôle des services - AWS Organizations

Syntaxe d'une politique de contrôle des services

Les politiques de contrôle des services (SCP) utilisent une syntaxe similaire à celle utilisée par les politiques d'autorisation AWS Identity and Access Management (IAM) et les politiques basées sur une ressource (comme les politiques de compartiment Amazon S3). Pour plus d'informations sur les politiques IAM et leur syntaxe, consultez Présentation des politiques IAM dans le Guide de l'utilisateur IAM.

Une politique SCP est un fichier texte brut qui est structuré conformément aux règles de JSON. Elle utilise les éléments qui sont décrits dans cette rubrique.

Note

Tous les caractères de votre SCP sont pris en compte dans le calcul de sa taille maximale. Les exemples présentés dans ce guide montrent les politiques SCP formatées avec des espaces supplémentaires pour une meilleure lisibilité. Toutefois, pour économiser de l'espace si la taille de votre politique approche de la taille maximale, vous pouvez supprimer les espaces, comme les espacements et les sauts de ligne qui ne figurent pas entre guillemets.

Pour obtenir des informations générales sur les politiques de contrôle des services, consultez Politiques de contrôle de service (SCP).

Récapitulatif des éléments

Le tableau suivant résume les éléments de politique que vous pouvez utiliser dans les politiques de contrôle des services. Certains éléments de politique sont disponibles uniquement dans les politiques de contrôle des services qui refusent des actions. La colonne Effets supportés répertorie le type d'effet que vous pouvez utiliser avec chaque élément de politique dans les politiques de contrôle des services.

Élément Objectif Effets pris en charge
Version Spécifie les règles de syntaxe du langage à utiliser pour le traitement de la politique.

Allow, Deny

Instruction Sert de conteneur pour les éléments de politique. Vous pouvez avoir plusieurs instructions dans des politiques de contrôle des services. Allow, Deny
ID d’instruction (Sid) (Facultatif) Fournit un nom simple pour l'instruction. Allow, Deny
Effet Définit si l'instruction SCP autorise ou refuse l'accès aux utilisateurs et rôles IAM d'un compte. Allow, Deny

Action

Spécifie le service ou les actions AWS que la politique de contrôle des services autorise ou refuse.

Allow, Deny

NotAction

Spécifie le service ou les actions AWS qui ne sont pas soumis à la politique de contrôle des services. Utilisé au lieu de l'élément Action.

Deny

Ressource Spécifie les ressources AWS auxquelles la politique de contrôle des services s'applique. Deny
Condition Spécifie les conditions lorsque l’instruction est vigueur. Deny

Les sections suivantes fournissent davantage d'informations et des exemples sur la façon dont les éléments de politique sont utilisés dans les politiques de contrôle des services.

Élément Version

Chaque politique de contrôle des services doit inclure un élément Version avec la valeur "2012-10-17". Il s'agit de la même valeur de version que la version la plus récente des politiques d'autorisation IAM.

"Version": "2012-10-17",

Pour plus d'informations, consultez Éléments de politique JSON IAM : Version dans le Guide de l'utilisateur IAM.

Élément Statement

Une politique de contrôle des services est constituée d'un ou plusieurs éléments Statement. Vous ne pouvez avoir qu'un mot clé Statement dans une politique, mais la valeur peut être un tableau d'instructions JSON (encadré par des caractères [ ]).

L'exemple suivant montre une instruction unique qui se compose d'éléments Effect, Action et Resource uniques.

"Statement": { "Effect": "Allow", "Action": "*", "Resource": "*" }

L'exemple suivant inclut deux instructions sous la forme d'un tableau à l'intérieur d'un élément Statement. La première instruction autorise toutes les actions, tandis que la deuxième refuse toutes les actions EC2. Le résultat est un qu'administrateur du compte peut déléguer n'importe quelle autorisation, à l'exception de celles provenant d'Amazon Elastic Compute Cloud (Amazon EC2).

"Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" }, { "Effect": "Deny", "Action": "ec2:*", "Resource": "*" } ]

Pour plus d'informations, consultez Éléments de politique JSON IAM : Instruction dans le Guide de l'utilisateur IAM.

Élément ID d'instruction (Sid)

L'élément Sid est un identifiant facultatif que vous pouvez fournir pour l'instruction de politique. Vous pouvez affecter une valeur Sid à chaque instruction d'un tableau d'instructions. L'exemple suivant de politique de contrôle des services présente un exemple d'instruction Sid.

{ "Statement": { "Sid": "AllowsAllActions", "Effect": "Allow", "Action": "*", "Resource": "*" } }

Pour plus d'informations, consultez Éléments de politique JSON IAM : Id dans le Guide de l'utilisateur IAM.

Élément Effect

Chaque instruction doit contenir un élément Effect. La valeur peut être Allow ou Deny. Cet élément affecte toutes les actions répertoriées dans la même instruction.

Pour plus d'informations, consultez Éléments de politique JSON IAM : Effet dans le Guide de l'utilisateur IAM.

"Effect": "Allow"

L'exemple suivant montre une politique de contrôle des services avec une instruction qui contient un élément Effect avec une valeur Allow qui permet aux utilisateurs de compte d'effectuer des actions pour le service Amazon S3. Cet exemple est utile dans une organisation qui utilise la stratégie de liste d'autorisations (où les politiques FullAWSAccess par défaut sont toutes détachées, de sorte que les autorisations sont implicitement refusées par défaut). Le résultat est que l'instruction permet les autorisations Amazon S3 pour les comptes attachés :

{ "Statement": { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } }

Même si cette instruction utilise le même mot clé de valeur Allow qu'une politique d'autorisation IAM, dans une politique SCP, cela n'autorise pas réellement un utilisateur à effectuer une action. Au lieu de cela, les SCP agissent comme des filtres qui spécifient les autorisations maximales pour les comptes d'une organisation, une unité d'organisation (UO) ou un compte. Dans l'exemple précédent, même si une politique gérée AdministratorAccess est attachée à un utilisateur du compte, la politique de contrôle des services limite tous les utilisateurs des comptes concernés aux seules actions Amazon S3.

"Effect": "Deny"

Dans une instruction où l'élément Effect a une valeur de Deny, vous pouvez également limiter l'accès à certaines ressources ou définir des conditions pour le moment où les politiques de contrôle des services sont en vigueur.

L'exemple suivant montre la façon d'utiliser une clé de condition dans une instruction de refus.

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringNotEquals": { "ec2:InstanceType": "t2.micro" } } } }

Cette instruction dans une politique de contrôle des services définit une protection pour empêcher les comptes concernés (dans lesquels la politique de contrôle des services est attachée au compte lui-même ou à la racine de l'organisation ou à l'unité d'organisation qui contient le compte), de lancer des instances Amazon EC2 si l'instance Amazon EC2 n'est pas définie sur t2.micro. Même si une politique IAM qui permet cette action est attachée au compte, la protection créée par la politique de contrôle des services empêche cette action.

Éléments Action et NotAction

Chaque instruction doit contenir l'un des éléments suivants :

  • Dans les instructions d’autorisation et de refus, un élément Action.

  • Dans les instructions de refus uniquement (où la valeur de l'élément Effect est Deny), un «élément Action ou NotAction.

La valeur de l'élément Action ou NotAction est une liste (un tableau JSON) de chaînes qui identifie les services et les actions AWS autorisés ou refusés par l'instruction.

Chaque chaîne est constituée de l'abréviation du service (par exemple, « s3 », « ec2 », « iam » ou « organizations »), en minuscules, suivie de deux points, puis d'une action de ce service. Les actions et les notactions sont sensibles à la casse et doivent être saisies comme indiqué dans la documentation de chaque service. En général, elles sont toutes saisies avec chaque mot commençant par une lettre majuscule et le reste en minuscules. Par exemple : "s3:ListAllMyBuckets".

Vous pouvez également utiliser des caractères génériques comme un astérisque (*) ou un point d'interrogation (?) dans une SCP :

  • Utilisez un astérisque (*) en tant que caractère générique pour faire correspondre plusieurs actions partageant une partie d'un nom. La valeur "s3:*" signifie toutes les actions dans le service Amazon S3. La valeur "ec2:Describe*" correspond uniquement aux actions EC2 commençant par « Describe ».

  • Utilisez le caractère générique point d'interrogation (?) pour faire correspondre un seul caractère.

Note

Dans une SPC, les caractères génériques (*) et (?) figurant dans un élément Action ou NotAction peuvent uniquement être utilisés seuls ou à la fin de la chaîne. Il ne peut pas apparaître au début ni au milieu de la chaîne. Par conséquent, "servicename:action*" est valide, mais "servicename:*action" et "servicename:some*action" sont tous les deux non valides dans des politiques de contrôle des services.

Pour obtenir une liste de tous les services et actions pris en charge à la fois dans les politiques de contrôle des services AWS Organizations et les politiques d'autorisation IAM, consultez Actions, ressources et clés de conditions pour les services AWS dans le Guide de l'utilisateur IAM.

Pour de plus amples informations, consultez,Éléments de politique JSON IAM : Action et Éléments de politique IAM JSON : NotAction dans le Guide de l'utilisateur IAM.

Exemple d'élément Action

L'exemple suivant montre une politique de contrôle des services dans une instruction qui permet aux administrateurs de compte de déléguer les autorisations décrire, démarrer, arrêter et résilier pour les instances EC2 dans le compte. Il s'agit d'un exemple de liste d'autorisations, qui est utile lorsque les politiques Allow * par défaut ne sont pas attachées afin que, par défaut, les autorisations soient implicitement refusées. Si la politique Allow * par défaut est encore attachée à la racine, à l'unité d'organisation ou au compte auquel la politique suivante est attachée, cette politique n'a aucun effet.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeImages", "ec2:DescribeKeyPairs", "ec2:DescribeSecurityGroups", "ec2:DescribeAvailabilityZones", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:StopInstances", "ec2:StartInstances" ], "Resource": "*" } }

L'exemple suivant montre comment vous pouvez refuser l’accès à des services qui ne doivent pas être utilisés dans les comptes attachés. Il suppose que les politiques de contrôle des services "Allow *" par défaut sont encore attachées à toutes les unités d'organisation et à la racine. Cet exemple de politique empêche les administrateurs de compte dans les comptes attachés de déléguer des autorisations pour les services IAM, Amazon EC2 et Amazon RDS. Les actions d'autres services peuvent être déléguées dans la mesure où aucune autre politique attachée ne les refuse :

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": [ "iam:*", "ec2:*", "rds:*" ], "Resource": "*" } }

Exemple d'élément NotAction

L'exemple suivant montre comment utiliser un élément NotAction pour exclure des services AWS de l'effet de la politique.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LimitActionsInRegion", "Effect": "Deny", "NotAction": "iam:*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": "us-west-1" } } } ] }

Avec cet instruction, les comptes concernés sont uniquement soumis aux actions dans la Région AWS spécifiée, sauf lors de l'utilisation d'actions IAM.

Élément Resource

Dans les instructions où l'élément Effect a une valeur Allow, vous pouvez spécifier uniquement «* » dans l'élément Resource d'une politique de contrôle des services (SCP). Vous ne pouvez pas spécifier de noms ARN (Amazon Resource Names) de ressources individuelles.

Vous pouvez également utiliser des caractères génériques comme un astérisque (*) ou un point d'interrogation (?) dans l'élément de ressource :

  • Utilisez un astérisque (*) en tant que caractère générique pour faire correspondre plusieurs actions partageant une partie d'un nom.

  • Utilisez le caractère générique point d'interrogation (?) pour faire correspondre un seul caractère.

Dans les instructions où l'élément Effect a une valeur Deny, vous pouvez spécifier des ARN individuels, comme illustré dans l'exemple suivant.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessToAdminRole", "Effect": "Deny", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": [ "arn:aws:iam::*:role/role-to-deny" ] } ] }

Cette politique de contrôle des services empêche les utilisateurs et les rôles IAM des comptes concernés de modifier un rôle IAM d'administration commun créé dans tous les comptes de votre organisation.

Pour plus d'informations, consultez Éléments de politique JSON IAM : Ressource dans le Guide de l'utilisateur IAM.

Élément Condition

Vous pouvez spécifier un élément Condition dans les instructions de refus d'une SCP.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllOutsideEU", "Effect": "Deny", "NotAction": [ "cloudfront:*", "iam:*", "route53:*", "support:*" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [ "eu-central-1", "eu-west-1" ] } } } ] }

Cette politique SCP refuse l'accès à toutes les opérations hors des régions eu-central-1 et eu-west-1 à l'exception des actions dans les services répertoriés.

Pour plus d'informations, consultez Éléments de politique JSON IAM : Condition dans le Guide de l'utilisateur IAM.

Élément non pris en charge

Les éléments suivants ne sont pas pris en charge dans les politiques de contrôle des services :

  • Principal

  • NotPrincipal

  • NotResource