Syntaxe d'une stratégie de contrôle de service - AWS Organizations

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Syntaxe d'une stratégie de contrôle de service

Les politiques de contrôle des services (SCPs) utilisent une syntaxe similaire à celle utilisée par les politiques d'autorisation AWS Identity and Access Management (IAM) et les politiques basées sur les ressources (comme les politiques relatives aux compartiments 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 de ce guide montrent les SCPs formats avec des espaces blancs supplémentaires pour améliorer leur 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 des informations générales sur SCPs, voirPolitiques de contrôle des services (SCPs).

Récapitulatif des éléments

Le tableau suivant récapitule les éléments de stratégie que vous pouvez utiliser dans SCPs. Certains éléments de politique ne sont disponibles SCPs que dans les cas où les actions sont interdites. La colonne Effets pris en charge répertorie le type d'effet que vous pouvez utiliser avec chaque élément de politique SCPs.

Element Objectif Effets pris en charge

Action

Spécifie le AWS service et les actions que le SCP autorise ou refuse.

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

Instruction Sert de conteneur pour les éléments de politique. Vous pouvez avoir plusieurs instructions dans SCPs.

Allow, Deny

ID d’instruction (Sid) (Facultatif) Fournit un nom simple pour l'instruction.

Allow, Deny

Version Spécifie les règles de syntaxe du langage à utiliser pour le traitement de la politique.

Allow, Deny

Condition Spécifie les conditions lorsque l’instruction est vigueur.

Deny

NotAction

Spécifie le AWS service et les actions exemptés du SCP. Utilisé au lieu de l'élément Action.

Deny

Ressource Spécifie les AWS ressources auxquelles le SCP s'applique.

Deny

Les sections suivantes fournissent des informations supplémentaires et des exemples de la manière dont les éléments de politique sont utilisés dans SCPs.

É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'NotActionélément Action or est une liste (un tableau JSON) de chaînes identifiant les AWS services et les actions 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 ne font pas la distinction majuscules/majuscules. En général, ils sont tous saisis avec chaque mot commençant par une lettre majuscule et le reste par une minuscule. olpPar 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 EC2 actions qui commencent par « Décrire ».

  • 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" les deux "servicename:some*action" ne sont pas valides dans SCPs.

Pour obtenir une liste de tous les services et des actions qu'ils prennent en charge dans les politiques d'autorisation IAM AWS Organizations SCPs et dans les politiques d'autorisation IAM, consultez la section Actions, ressources et clés de condition pour les AWS services dans le guide de l'utilisateur IAM.

Pour plus d'informations, consultez les sections Éléments de stratégie IAM JSON : action et Éléments de stratégie IAM JSON : NotAction dans le guide de l'utilisateur IAM.

Exemple d'élément Action

L'exemple suivant montre un SCP avec une instruction qui permet aux administrateurs de compte de déléguer des autorisations de description, de démarrage, d'arrêt et de résiliation pour les EC2 instances du 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. Cela suppose que les valeurs par défaut "Allow *" SCPs sont toujours associées à tous OUs et à la racine. Cet exemple de politique empêche les administrateurs des comptes attachés de déléguer des autorisations pour les services IAM EC2, Amazon 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 NotAction élément pour exclure AWS des services 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 cette instruction, les comptes concernés sont limités à l'exécution des actions spécifiées Région AWS, sauf lorsqu'ils utilisent des actions 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 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. SCPs Agissez plutôt comme des filtres qui spécifient les autorisations maximales pour les comptes d'une organisation, d'une unité organisationnelle (UO) ou d'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 dont la valeur de l'Effectélément est égale àDeny, vous pouvez également restreindre l'accès à des ressources spécifiques ou définir les conditions d'entrée en vigueur. SCPs

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 déclaration contenue dans un SCP sert de garde-fou pour empêcher les comptes concernés (lorsque le SCP est attaché 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' EC2 instance Amazon n'est pas configurée 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é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 ressource Amazon Resource Names (ARNs) individuelle.

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'Effectélément a une valeur égale àDeny, vous pouvez spécifier un élément individuel ARNs, comme indiqué 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 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 déclaration autorise toutes les actions, tandis que la seconde refuse toute EC2 action. Par conséquent, un administrateur du compte peut déléguer n'importe quelle autorisation, à l'exception de celles 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 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 non pris en charge

Les éléments suivants ne sont pas pris en charge dans SCPs :

  • Principal

  • NotPrincipal

  • NotResource