View a markdown version of this page

Utilisation de conditions de politique IAM pour un contrôle d’accès précis - Amazon Route 53

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.

Utilisation de conditions de politique IAM pour un contrôle d’accès précis

Dans Route 53, vous pouvez spécifier des conditions lors de l'octroi d'autorisations à l'aide d'une politique IAM (consultez Contrôle d’accès). Par exemple, vous pouvez effectuer les actions suivantes :

  • Accorder des autorisations pour autoriser l'accès à un ensemble d'enregistrements de ressources unique

  • Accordez des autorisations pour permettre aux utilisateurs d'accéder à tous les ensembles d'enregistrements de ressources d'un type d'enregistrement DNS spécifique dans une zone hébergée, par exemple les enregistrements A et AAAA.

  • Accordez des autorisations pour permettre aux utilisateurs d'accéder à un ensemble d'enregistrements de ressources dont le nom contient une chaîne spécifique.

  • Accordez des autorisations pour permettre aux utilisateurs d'effectuer uniquement un sous-ensemble des CREATE | UPSERT | DELETE actions sur la console Route 53 ou lorsqu'ils utilisent l'ChangeResourceRecordSetsAPI.

  • Accordez des autorisations pour permettre aux utilisateurs d'associer ou de dissocier des zones hébergées privées d'un VPC spécifique.

  • Accordez des autorisations pour permettre aux utilisateurs de répertorier les zones hébergées associées à un VPC spécifique.

  • Accordez des autorisations permettant aux utilisateurs d'accéder à la création d'une nouvelle zone hébergée privée et de l'associer à un VPC spécifique.

  • Accordez des autorisations pour permettre aux utilisateurs de créer ou de supprimer une autorisation d'association VPC.

  • Accordez des autorisations pour permettre aux utilisateurs de gérer (associate/disassociate/update) uniquement des types de ressources spécifiques avec un profil Route 53.

  • Accordez des autorisations pour permettre aux utilisateurs de gérer (associate/disassociate/update) uniquement une ressource spécifique ARNs avec un profil Route 53.

  • Accordez des autorisations pour permettre aux utilisateurs de gérer (associate/disassociate/update) uniquement des domaines de zone hébergée spécifiques dotés d'un profil Route 53.

  • Accordez des autorisations pour permettre aux utilisateurs de gérer (associate/disassociate/update) uniquement des domaines spécifiques de règles de résolution avec un profil Route 53.

  • Accordez des autorisations pour permettre aux utilisateurs de gérer (associate/disassociate/update) des groupes de règles de pare-feu avec une plage de priorités spécifique dans un profil Route 53.

  • Accordez des autorisations pour permettre aux utilisateurs de gérer (associer/dissocier) un profil Route 53 avec un profil spécifique. VPCs

Vous pouvez également créer des autorisations qui combinent n'importe laquelle des autorisations granulaires.

Normalisation des valeurs clés de la condition Route 53

Les valeurs que vous saisissez pour les conditions de politique doivent être formatées, ou normalisées, comme suit :

Pour route53:ChangeResourceRecordSetsNormalizedRecordNames :

  • Toutes les lettres doivent être en minuscules.

  • le nom DNS ne doit pas contenir de point arrière.

  • Les caractères autres que a à z, 0 à 9, - (tiret), _ (trait de soulignement) et . (point, comme délimiteur entre les étiquettes) doivent utiliser des codes d'échappement au format \code octal à trois chiffres. Par exemple,\052 est le code octal du caractère *.

Pour route53:ChangeResourceRecordSetsActions, la valeur peut être l'une valeurs des suivantes et doit être en majuscules :

  • CREATE

  • UPSERT

  • DELETE

Pour route53:ChangeResourceRecordSetsRecordTypes :

  • La valeur doit être en majuscules et peut être n'importe quel type d'enregistrement DNS pris en charge par Route 53. Pour de plus amples informations, veuillez consulter Types d'enregistrements DNS pris en charge.

Pour route53:VPCs :

  • La valeur doit être au format deVPCId=<vpc-id>,VPCRegion=<region>.

  • La valeur de <vpc-id> et <region> doit être en minuscules, par exemple et. VPCId=vpc-123abc VPCRegion=us-east-1

  • Les clés de contexte et les valeurs distinguent les majuscules et minuscules.

Important

Pour obtenir l'autorisation d'autoriser ou de restreindre les actions que vous souhaitez, vous devez suivre ces conventions. Seuls VPCId les VPCRegion éléments sont acceptés par cette clé de condition, les autres AWS ressources, telles que Compte AWS, ne sont pas prises en charge.

En effetroute53profiles:ResourceTypes, la valeur peut être l'une des suivantes, en distinguant les majuscules et minuscules :

  • HostedZone

  • FirewallRuleGroup

  • ResolverQueryLoggingConfig

  • ResolverRule

  • VPCEndpoint

Pour route53profiles:ResourceArns :

  • La valeur doit être un ARN de AWS ressource valide, tel quearn:aws:route53:::hostedzone/Z12345.

  • Utilisez l'opérateur de ArnLike condition ArnEquals or lorsque vous comparez des valeurs ARN.

Pour route53profiles:HostedZoneDomains :

  • La valeur doit être un nom de domaine valide, tel queexample.com.

  • Le nom de domaine ne doit pas comporter de point final.

  • Les valeurs sont sensibles à la casse.

Pour route53profiles:ResolverRuleDomains :

  • La valeur doit être un nom de domaine valide, tel queexample.com.

  • Le nom de domaine ne doit pas comporter de point final.

  • Les valeurs sont sensibles à la casse.

Pour route53profiles:FirewallRuleGroupPriority :

  • La valeur doit être une valeur numérique représentant la priorité du groupe de règles de pare-feu.

  • Utilisez des opérateurs de condition numériques tels que NumericEqualsNumericGreaterThanEquals, ou NumericLessThanEquals pour comparer les valeurs de priorité ou définir une plage de priorités.

Pour route53profiles:ResourceIds :

  • La valeur doit être un ID VPC valide, tel que. vpc-1a2b3c4d5e6f

  • Les valeurs sont sensibles à la casse.

Vous pouvez utiliser le plugin Access Analyzer ou Policy Simulator dans le Guide de l'utilisateur IAM pour vérifier que votre politique accorde ou restreint les autorisations comme prévu. Vous pouvez également valider les autorisations en appliquant une politique IAM à un utilisateur ou à un rôle de test pour effectuer des opérations Route 53.

Spécification de conditions : utilisation de clés de condition

AWS fournit un ensemble de clés de condition prédéfinies (clés AWS de condition étendues) pour tous les AWS services qui prennent en charge le contrôle d'accès IAM. Par exemple, vous pouvez utiliser la clé de condition aws:SourceIp pour vérifier l’adresse IP du demandeur avant de permettre l’exécution d’une action. Pour plus d'informations et la liste des clés à l'échelle d' AWS, consultez Clés disponibles pour les conditions dans le Guide de l'utilisateur IAM.

Note

Route 53 ne prend pas en charge les clés de condition basées sur des balises.

Le tableau suivant indique les clés de condition spécifiques au service Route 53 qui s'appliquent à Route 53.

Clé de condition Route 53 opérations d’API Type de la valeur Description
route53:ChangeResourceRecordSetsNormalizedRecordNames

ChangeResourceRecordSets

Multi-valeurs

Représente une liste de noms d'enregistrements DNS dans la demande deChangeResourceRecordSets. Pour obtenir le comportement attendu, les noms DNS de la politique IAM doivent être normalisés comme suit :

  • Toutes les lettres doivent être en minuscules.

  • le nom DNS ne doit pas contenir de point arrière.

  • Les caractères autres que a à z, 0 à 9, - (tiret), _ (trait de soulignement) et . (point, comme délimiteur entre les étiquettes) doivent utiliser des codes d'échappement au format \code octal à trois chiffres.

route53:ChangeResourceRecordSetsRecordTypes

ChangeResourceRecordSets

Multi-valeurs

Représente une liste de types d'enregistrements DNS dans la demande de ChangeResourceRecordSets.

ChangeResourceRecordSetsRecordTypes peut être n'importe quel type d'enregistrement DNS pris en charge par Route 53. Pour de plus amples informations, veuillez consulter Types d'enregistrements DNS pris en charge. Tout doit être saisi en majuscules dans la politique.

route53:ChangeResourceRecordSetsActions

ChangeResourceRecordSets

Multi-valeurs

Représente une liste des actions de la demande de ChangeResourceRecordSets.

ChangeResourceRecordSetsActions peut être n'importe laquelle des valeurs suivantes (doit être en majuscule) :

  • CREATE

  • UPSERT

  • DELETE

route53:VPCs

Associé VPCWith HostedZone

Dissocier VPCFrom HostedZone

ListHostedZonesByVPC

CreateHostedZone

Créer une VPCAssociation autorisation

Supprimer VPCAssociation l'autorisation

Multi-valeurs

Représente une liste de VPCs dans la demande de AssociateVPCWithHostedZoneDisassociateVPCFromHostedZone, ListHostedZonesByVPCCreateHostedZone,CreateVPCAssociationAuthorization,,DeleteVPCAssociationAuthorization, et, au format "VPCId=<vpc-id>, VPCRegion = <region>
route53profiles:ResourceTypes

AssociateResourceToProfile

DisassociateResourceFromProfile

UpdateProfileResourceAssociation

String

Filtre l'accès par type de ressource spécifique.

route53profiles:ResourceTypespeut prendre l'une des valeurs suivantes (en distinguant majuscules et minuscules) :

  • HostedZone

  • FirewallRuleGroup

  • ResolverQueryLoggingConfig

  • ResolverRule

  • VPCEndpoint

route53profiles:ResourceArns

AssociateResourceToProfile

DisassociateResourceFromProfile

ARN

Filtre l'accès par ressource spécifique ARNs.
route53profiles:HostedZoneDomains

AssociateResourceToProfile

DisassociateResourceFromProfile

UpdateProfileResourceAssociation

String

Filtre l'accès par domaines de zone hébergée. Pour obtenir le comportement attendu, les noms de domaine de la politique IAM doivent être normalisés comme suit :

  • Le nom de domaine ne doit pas comporter de point final.

  • Les valeurs sont sensibles à la casse.

route53profiles:ResolverRuleDomains

AssociateResourceToProfile

DisassociateResourceFromProfile

UpdateProfileResourceAssociation

String

Filtre l'accès par domaines Resolver Rule. Pour obtenir le comportement attendu, les noms de domaine de la politique IAM doivent être normalisés comme suit :

  • Le nom de domaine ne doit pas comporter de point final.

  • Les valeurs sont sensibles à la casse.

route53profiles:FirewallRuleGroupPriority

AssociateResourceToProfile

DisassociateResourceFromProfile

UpdateProfileResourceAssociation

Numérique

Filtre l'accès par plage de priorités d'un groupe de règles de pare-feu.
route53profiles:ResourceIds

AssociateProfile

DisassociateProfile

String

Filtre l'accès en fonction des données VPCs.

Exemples de politiques : utilisation de conditions pour un accès précis

Chacun des exemples de cette section définit la clause Effect sur Allow et spécifie uniquement les actions, ressources et paramètres autorisés. L’accès est autorisé uniquement à ce qui est explicitement indiqué dans la politique IAM.

Dans certains cas, il est possible de réécrire ces politiques afin qu'elles soient basées sur le refus (autrement dit, définition de la clause Effect sur Deny et inversion de toute la logique de la politique). Cependant, nous vous recommandons d'éviter d'utiliser les politiques basées sur le refus, car elles sont difficiles à écrire correctement, par comparaison avec les stratégies basées sur l'autorisation. Cela est particulièrement vrai pour Route 53 en raison de la normalisation du texte requise.

Accorder des autorisations limitant l'accès aux enregistrements DNS avec des noms spécifiques

La politique d'autorisations suivante accorde les autorisations qui autorise les actions ChangeResourceRecordSets sur la zone hébergée Z12345 pour example.com et marketing.example.com. Elle utilise la clé de condition route53:ChangeResourceRecordSetsNormalizedRecordNames pour limiter les actions de l'utilisateur uniquement sur les enregistrements correspondant aux noms spécifiés.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["example.com", "marketing.example.com"] } } } ] }

ForAllValues:StringEquals est un opérateur de condition IAM qui s'applique aux clés à valeurs multiples. La condition dans la politique ci-dessus n'autorisera l'opération que lorsque tous les changements dans ChangeResourceRecordSets auront le nom DNS example.com. Pour plus d'informations, consultez Opérateurs de condition IAM etCondition IAM avec plusieurs clés ou valeurs dans le Guide de l'utilisateur IAM.

Pour implémenter l'autorisation qui fait correspondre les noms avec certains suffixes, vous pouvez utiliser le caractère générique IAM (*) dans la politique avec l'opérateur de condition StringLike ou StringNotLike. La politique suivante autorisera l'opération lorsque toutes les changements dans l'opération ChangeResourceRecordSets auront des noms DNS qui se terminent par « -beta.example.com ».

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringLike":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["*-beta.example.com"] } } } ] }
Note

Le caractère générique IAM n'est pas identique au caractère générique du nom de domaine. Consultez l'exemple suivant pour savoir comment utiliser le caractère générique avec un nom de domaine.

Accorder des autorisations limitant l'accès aux enregistrements DNS correspondant à un nom de domaine contenant un caractère générique

La politique d'autorisations suivante accorde les autorisations qui autorise les actions ChangeResourceRecordSets sur la zone hébergée Z12345 pour example.com. Elle utilise la clé de condition route53:ChangeResourceRecordSetsNormalizedRecordNames pour limiter les actions de l'utilisateur uniquement aux enregistrements correspondant à *.example.com.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["\\052.example.com"] } } } ] }

\052 est le code octal du caractère * dans le nom DNS, et \ dans \052 est échappé pour être \\ afin de suivre la syntaxe JSON.

Accorder des autorisations limitant l'accès à des enregistrements DNS spécifiques

La politique d'autorisations suivante accorde les autorisations qui autorise les actions ChangeResourceRecordSets sur la zone hébergée Z12345 pour example.com. Elle utilise la combinaison de trois clés de condition pour limiter les actions des utilisateurs afin de permettre uniquement la création ou la modification d'enregistrements DNS avec un nom et un type de DNS spécifiques.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["example.com"], "route53:ChangeResourceRecordSetsRecordTypes": ["MX"], "route53:ChangeResourceRecordSetsActions": ["CREATE", "UPSERT"] } } } ] }
Accorder des autorisations limitant l'accès à la création et la modification uniquement de types d'enregistrements DNS spécifiques

La politique d'autorisations suivante accorde les autorisations qui autorise les actions ChangeResourceRecordSets sur la zone hébergée Z12345 pour example.com. Elle utilise la clé de condition route53:ChangeResourceRecordSetsRecordTypes pour limiter les actions de l'utilisateur uniquement sur les enregistrements correspondant aux types spécifiés (A et AAAA).

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsRecordTypes": ["A", "AAAA"] } } } ] }
Accordez des autorisations qui spécifient le VPC dans lequel le principal IAM peut opérer

La politique d'autorisation suivante accorde des autorisations qui autorisentAssociateVPCWithHostedZone,DisassociateVPCFromHostedZone,ListHostedZonesByVPC, CreateHostedZoneCreateVPCAssociationAuthorization, et DeleteVPCAssociationAuthorization les actions sur le VPC spécifié par le vpc-id.

Important

La valeur de la condition doit être au format deVPCId=<vpc-id>,VPCRegion=<region>. Si vous spécifiez un ARN VPC dans la valeur de la condition, la clé de condition ne prendra pas effet.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "route53:*" ], "Resource": [ "*" ], "Condition": { "StringLike": { "route53:VPCs": [ "VPCId=<vpc-id>,VPCRegion=<region>" ] } } }, { "Sid": "Statement2", "Effect": "Allow", "Action": "ec2:DescribeVpcs", "Resource": "*" } ] }
Important

Les clés de route53profiles condition sont disponibles partout Régions AWS où Route 53 Route53Profiles est disponible, à l'exception de me-central-1 et me-south-1.

Accordez des autorisations qui limitent l'association de ressources à des types de ressources spécifiques dans les profils Route 53

La politique d'autorisation suivante accorde des autorisations AssociateResourceToProfile et DisassociateResourceFromProfile des actions uniquement lorsque le type de ressource est une zone hébergée. Il utilise la clé de route53profiles:ResourceTypes condition pour restreindre les types de ressources qui peuvent être associés à un profil.

{ "Effect": "Allow", "Action": [ "route53profiles:AssociateResourceToProfile", "route53profiles:DisassociateResourceFromProfile" ], "Resource": "*", "Condition": { "StringEquals": { "route53profiles:ResourceTypes": "HostedZone" } } }
Accorder des autorisations qui limitent l'association de ressources à une ressource spécifique ARNs dans les profils Route 53

La politique d'autorisation suivante accorde des autorisations AssociateResourceToProfile et des DisassociateResourceFromProfile actions uniquement pour l'ARN de ressource spécifié. Il utilise la clé de route53profiles:ResourceArns condition pour limiter les ressources pouvant être associées à un profil.

{ "Effect": "Allow", "Action": [ "route53profiles:AssociateResourceToProfile", "route53profiles:DisassociateResourceFromProfile" ], "Resource": "*", "Condition": { "ArnEquals": { "route53profiles:ResourceArns": "arn:aws:route53:::hostedzone/Z12345" } } }
Accordez des autorisations qui limitent l'association de ressources à des domaines de zone hébergée spécifiques dans les profils Route 53

La politique d'autorisation suivante accorde des autorisations qui autorisent AssociateResourceToProfileDisassociateResourceFromProfile, et UpdateProfileResourceAssociation des actions uniquement lorsque le domaine de la zone hébergée correspond à la valeur spécifiée. Il utilise la clé de route53profiles:HostedZoneDomains condition pour restreindre les domaines de zone hébergée qui peuvent être associés à un profil.

{ "Effect": "Allow", "Action": [ "route53profiles:AssociateResourceToProfile", "route53profiles:DisassociateResourceFromProfile", "route53profiles:UpdateProfileResourceAssociation" ], "Resource": "*", "Condition": { "StringEquals": { "route53profiles:HostedZoneDomains": "example.com" } } }
Accordez des autorisations qui limitent l'association de ressources à des domaines de règles de résolution spécifiques dans les profils Route 53

La politique d'autorisation suivante accorde des autorisations qui autorisent AssociateResourceToProfileDisassociateResourceFromProfile, et UpdateProfileResourceAssociation des actions uniquement lorsque le domaine Resolver Rule correspond à la valeur spécifiée. Il utilise la clé de route53profiles:ResolverRuleDomains condition pour restreindre les domaines de règles de résolution qui peuvent être associés à un profil.

{ "Effect": "Allow", "Action": [ "route53profiles:AssociateResourceToProfile", "route53profiles:DisassociateResourceFromProfile", "route53profiles:UpdateProfileResourceAssociation" ], "Resource": "*", "Condition": { "StringEquals": { "route53profiles:ResolverRuleDomains": "example.com" } } }
Accordez des autorisations qui limitent l'association de groupes de règles de pare-feu à une plage de priorités spécifique dans les profils Route 53

La politique d'autorisation suivante accorde des autorisations qui autorisent AssociateResourceToProfileDisassociateResourceFromProfile, et UpdateProfileResourceAssociation des actions uniquement lorsque la priorité du groupe de règles de pare-feu se situe dans la plage spécifiée. Il utilise la clé de route53profiles:FirewallRuleGroupPriority condition pour limiter les valeurs de priorité qui peuvent être utilisées.

{ "Effect": "Allow", "Action": [ "route53profiles:AssociateResourceToProfile", "route53profiles:DisassociateResourceFromProfile", "route53profiles:UpdateProfileResourceAssociation" ], "Resource": "*", "Condition": { "NumericGreaterThanEquals": { "route53profiles:FirewallRuleGroupPriority": "100" } } }
Accordez des autorisations qui limitent l'association de profils à des paramètres spécifiques VPCs dans les profils Route 53

La politique d'autorisation suivante accorde des autorisations AssociateProfile et des DisassociateProfile actions uniquement pour le VPC spécifié. Il utilise la clé de route53profiles:ResourceIds condition pour restreindre les profils auxquels VPCs un profil peut être associé.

{ "Effect": "Allow", "Action": [ "route53profiles:AssociateProfile", "route53profiles:DisassociateProfile" ], "Resource": "*", "Condition": { "StringEquals": { "route53profiles:ResourceIds": "vpc-1a2b3c4d5e6f" } } }