Utilisation des stratégies basées sur l'identité (stratégies IAM) pour Amazon Route 53 - 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 des stratégies basées sur l'identité (stratégies IAM) pour Amazon Route 53

Cette rubrique fournit des exemples de stratégies basées sur l'identité qui montrent comment un administrateur de compte peut lier des stratégies d'autorisations à des identités IAM et accorder ainsi des autorisations pour effectuer des opérations sur les ressources Amazon Route 53.

Important

Nous vous recommandons d'examiner d'abord les rubriques de présentation qui détaillent les concepts de base et les options de gestion de l'accès à vos ressources Route 53. Pour plus d’informations, consultez Présentation de la gestion des autorisations d'accès à vos ressources Amazon Route 53.

Note

Lors de l'autorisation d'accès, la zone hébergée et Amazon VPC doivent appartenir à la même partition. Une partition est un groupe de Régions AWS. Chaque Compte AWS est étendu à une partition.

Les partitions prises en charge sont les suivantes :

  • aws - Régions AWS

  • aws-cn - Régions chinoises

  • aws-us-gov - AWS GovCloud (US) Region

Pour plus d'informations, consultez la section Access Management (Gestion des accès) et Amazon Route 53 endpoints and quotas (points de terminaison et quotas Amazon Route 53) dans la Référence générale AWS.

Voici un exemple de stratégie d'autorisation. Le Sid, ou ID de l'instruction, est facultatif :

{ "Version": "2012-10-17", "Statement": [ { "Sid" : "AllowPublicHostedZonePermissions", "Effect": "Allow", "Action": [ "route53:CreateHostedZone", "route53:UpdateHostedZoneComment", "route53:GetHostedZone", "route53:ListHostedZones", "route53:DeleteHostedZone", "route53:ChangeResourceRecordSets", "route53:ListResourceRecordSets", "route53:GetHostedZoneCount", "route53:ListHostedZonesByName" ], "Resource": "*" }, { "Sid" : "AllowHealthCheckPermissions", "Effect": "Allow", "Action": [ "route53:CreateHealthCheck", "route53:UpdateHealthCheck", "route53:GetHealthCheck", "route53:ListHealthChecks", "route53:DeleteHealthCheck", "route53:GetCheckerIpRanges", "route53:GetHealthCheckCount", "route53:GetHealthCheckStatus", "route53:GetHealthCheckLastFailureReason" ], "Resource": "*" } ] }

La stratégie comprend deux déclarations :

  • La première instruction accorde des autorisations aux actions requises pour créer et gérer des zones hébergées publiques et leurs enregistrements. Le caractère générique (*) dans l'Amazon Resource Name (ARN) accorde l'accès à toutes les zones hébergées qui appartiennent au compte AWS actuel.

  • La deuxième déclaration accorde des autorisations à toutes les actions qui sont nécessaires pour créer et gérer les surveillance de l'état.

Pour une liste des actions et l'ARN que vous spécifiez pour accorder ou refuser l'autorisation d'utiliser chaque action, consultez la section Autorisations d'API Amazon Route 53 : référence des actions, ressources et conditions.

Autorisations requises pour utiliser la console Amazon Route 53

Pour accorder un accès complet à la console Amazon Route 53, vous accordez les autorisations dans la stratégie d'autorisations suivante :

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "route53:*", "route53domains:*", "ssm:GetParametersByPath", "cloudfront:ListDistributions", "elasticloadbalancing:DescribeLoadBalancers", "elasticbeanstalk:DescribeEnvironments", "s3:ListAllMyBuckets", "s3:GetBucketLocation", "s3:GetBucketWebsite", "ec2:DescribeRegions", "ec2:DescribeVpcs", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:ModifyNetworkInterfaceAttribute", "sns:ListTopics", "sns:ListSubscriptionsByTopic", "sns:CreateTopic", "kms:ListAliases", "kms:DescribeKey", "kms:CreateKey", "kms:CreateAlias", "kms:Sign", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms", "cloudwatch:GetMetricStatistics" ], "Resource":"*" }, { "Effect": "Allow", "Action": "apigateway:GET", "Resource": "arn:aws:apigateway:*::/domainnames" } ] }

Voici pourquoi les autorisations sont obligatoires :

route53:*

Permet d'exécuter toutes les actions Route 53, sauf les actions suivantes :

  • Créez et mettez à jour des enregistrements d'alias pour lesquels la valeur d'Alias Target est une CloudFront distribution, un équilibreur de charge Elastic Load Balancing, un environnement Elastic Beanstalk ou un bucket Amazon S3. (Avec ces autorisations, vous pouvez créer des enregistrements d'alias pour lesquels la valeur de Alias Target est un autre enregistrement dans la même zone hébergée.)

  • Utiliser des zones hébergées privées.

  • Utiliser des domaines.

  • Créez, supprimez et visualisez les CloudWatch alarmes.

  • Afficher CloudWatch les métriques dans la console Route 53.

route53domains:*

Permet d'utiliser des domaines.

Important

Si vous répertoriez les actions route53 individuellement, vous devez inclure route53:CreateHostedZone pour utiliser des domaines. Lorsque vous enregistrez un domaine, une zone hébergée est créée simultanément. Une stratégie qui inclut l'autorisation d'enregistrer des domaines doit donc également inclure l'autorisation de créer des zones hébergées.

Pour l'enregistrement de domaine, Route 53 ne prend pas en charge l'octroi ou le refus d'autorisations à des ressources individuelles.

route53resolver:*

Permet d'utiliser Route 53 Resolver.

ssm:GetParametersByPath

Vous permet de récupérer des régions accessibles au public lorsque vous créez de nouveaux enregistrements d'alias, des zones hébergées privées et des surveillances de l'état.

cloudfront:ListDistributions

Permet de créer et de mettre à jour des enregistrements d'alias pour lesquels la valeur d'Alias Target est une CloudFront distribution.

Ces autorisations ne sont pas nécessaires si vous n'utilisez pas la console Route 53. Route 53 l'utilise uniquement pour obtenir une liste des distributions à afficher dans la console.

elasticloadbalancing:DescribeLoadBalancers

Permet de créer et de mettre à jour des enregistrements d'alias pour lesquels la valeur de Alias Target (Cible de l'alias) est un équilibreur de charge ELB.

Ces autorisations ne sont pas nécessaires si vous n'utilisez pas la console Route 53. Route 53 l'utilise uniquement pour obtenir une liste des équilibreurs de charge à afficher dans la console.

elasticbeanstalk:DescribeEnvironments

Permet de créer et de mettre à jour des enregistrements d'alias pour lesquels la valeur de Alias Target (Cible de l'alias) est un environnement Elastic Beanstalk.

Ces autorisations ne sont pas nécessaires si vous n'utilisez pas la console Route 53. Route 53 l'utilise uniquement pour obtenir une liste des environnements à afficher dans la console.

s3:ListAllMyBuckets, s3:GetBucketLocation et s3:GetBucketWebsite

Permet de créer et de mettre à jour des enregistrements d'alias pour lesquels la valeur de Alias Target (Cible de l'alias) est un compartiment Amazon S3. (Vous pouvez créer un alias dans un compartiment Amazon S3 uniquement si le compartiment est configuré en tant que point de terminaison de site web ; s3:GetBucketWebsite obtient les informations de configuration nécessaires.)

Ces autorisations ne sont pas nécessaires si vous n'utilisez pas la console Route 53. Route 53 l'utilise uniquement pour obtenir une liste des compartiments à afficher dans la console.

ec2:DescribeVpcs et ec2:DescribeRegions

Permet d'utiliser des zones hébergées privées.

Toutes les autorisations ec2 répertoriées

Permet d'utiliser Route 53 Resolver.

sns:ListTopics, sns:ListSubscriptionsByTopic, sns:CreateTopic, cloudwatch:DescribeAlarms, cloudwatch:PutMetricAlarm, cloudwatch:DeleteAlarms

Vous permet de créer, de supprimer et de consulter les CloudWatch alarmes.

cloudwatch:GetMetricStatistics

Permet de créer des CloudWatch bilans de santé métriques.

Ces autorisations ne sont pas nécessaires si vous n'utilisez pas la console Route 53. Route 53 l'utilise uniquement pour obtenir des statistiques à afficher dans la console.

apigateway:GET

Permet de créer et de mettre à jour des enregistrements d'alias pour lesquels la valeur Alias Target (Cible de l'alias) est une API Amazon API Gateway.

Cette autorisation n'est pas nécessaire si vous n'utilisez pas la console Route 53. Route 53 l'utilise uniquement pour obtenir une liste des API à afficher dans la console.

kms:*

Permet d'utiliser avec AWS KMS pour activer la signature DNSSEC.

Exemples d'autorisations pour un propriétaire d'enregistrement de domaine

Avec les autorisations d'ensemble d'enregistrements de ressources, vous pouvez définir des autorisations granulaires qui limitent ce que l'utilisateur AWS peut mettre à jour ou modifier. Pour plus d’informations, consultez Utilisation de conditions de politique IAM pour un contrôle d'accès précis pour gérer les ensembles d'enregistrements de ressources.

Dans certains scénarios, un propriétaire de zone hébergée peut être responsable de la gestion globale de la zone hébergée, tandis qu'une autre personne de l'organisation est responsable d'un sous-ensemble de ces tâches. Un propriétaire de zone hébergée qui a activé la signature DNSSEC, par exemple, peut souhaiter créer une stratégie IAM qui inclut l'autorisation pour quelqu'un d'autre d'ajouter et de supprimer des enregistrements de jeux de ressources (RR) dans la zone hébergée, entre autres tâches. Les autorisations spécifiques qu'un propriétaire de zone hébergée choisit d'activer pour un propriétaire d'enregistrement ou d'autres personnes dépendent de la stratégie de leur organisation.

Voici un exemple de stratégie IAM qui permet à un propriétaire d'enregistrement d'apporter des modifications aux RR, aux stratégies de trafic et aux surveillances de l'état. Un propriétaire d'enregistrement doté de cette stratégie n'est pas autorisé à effectuer des opérations au niveau de la zone, telles que la création ou la suppression d'une zone, l'activation ou la désactivation de la journalisation des requêtes, la création ou la suppression d'un jeu de délégations réutilisable ou la modification des paramètres DNSSEC.

{ "Sid": "Do not allow zone-level modification ", "Effect": "Allow", "Action": [ "route53:ChangeResourceRecordSets", "route53:CreateTrafficPolicy", "route53:DeleteTrafficPolicy", "route53:CreateTrafficPolicyInstance", "route53:CreateTrafficPolicyVersion", "route53:UpdateTrafficPolicyInstance", "route53:UpdateTrafficPolicyComment", "route53:DeleteTrafficPolicyInstance", "route53:CreateHealthCheck", "route53:UpdateHealthCheck", "route53:DeleteHealthCheck", "route53:List*", "route53:Get*" ], "Resource": [ "*" ] }

Autorisations de clé gérées par le client Route 53 requises pour la signature DNSSEC

Lorsque vous activez la signature DNSSEC pour Route 53, Route 53 crée une clé de signature de clé (KSK) basée sur une clé gérée par le client dans AWS Key Management Service (AWS KMS). Vous pouvez utiliser une clé gérée par le client existante qui prend en charge la signature DNSSEC ou en créer une nouvelle. Route 53 doit être autorisé à accéder à votre clé gérée par le client afin de pouvoir créer la clé KSK pour vous.

Pour activer Route 53 pour accéder à votre clé gérée par le client, assurez-vous que votre stratégie de clé gérée par le client contient les instructions suivantes :

{ "Sid": "Allow Route 53 DNSSEC Service", "Effect": "Allow", "Principal": { "Service": "dnssec-route53.amazonaws.com" }, "Action": ["kms:DescribeKey", "kms:GetPublicKey", "kms:Sign"], "Resource": "*" }, { "Sid": "Allow Route 53 DNSSEC to CreateGrant", "Effect": "Allow", "Principal": { "Service": "dnssec-route53.amazonaws.com" }, "Action": ["kms:CreateGrant"], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } }

Le problème de député confus est un problème de sécurité dans lequel une entité sans autorisation pour une action peut contraindre une entité plus privilégiée à le faire. Pour protéger votre AWS KMS de celle-ci, vous pouvez éventuellement limiter les autorisations d'un service à une ressource dans une politique basée sur les ressources en fournissant une combinaison des conditions aws:SourceAccount et aws:SourceArn (les deux ou une des deux). aws:SourceAccount est un ID de compte AWS d'un propriétaire d'une zone hébergée. aws:SourceArn est un ARN d'une zone hébergée.

Voici deux exemples d'autorisations que vous pouvez ajouter :

{ "Sid": "Allow Route 53 DNSSEC Service", … "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnEquals": { "aws:SourceArn": "arn:aws:route53:::hostedzone/HOSTED_ZONE_ID" } } },

- Ou -

{ "Sid": "Allow Route 53 DNSSEC Service", … "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": ["1111-2222-3333","4444-5555-6666"] }, "ArnLike": { "aws:SourceArn": "arn:aws:route53:::hostedzone/*" } } },

Pour de plus amples informations, veuillez consulter Le problème du député confus dans le Guide de l'utilisateur IAM.

Exemples de politiques gérées par le client

Vous pouvez créer vos propres stratégies IAM personnalisées pour accorder des autorisations pour des actions Route 53. Vous pouvez attacher ces politiques personnalisées aux groupes IAM qui nécessitent les autorisations spécifiées. Ces stratégies fonctionnent lorsque vous utilisez les API Route 53, les kits SDK AWS ou AWS CLI. Les exemples suivants présentent des autorisations pour plusieurs cas d'utilisation courants. Pour accéder à la stratégie qui accorde à un utilisateur l'accès complet à Route 53, consultez Autorisations requises pour utiliser la console Amazon Route 53.

Exemple 1 : Autoriser l'accès en lecture à toutes les zones hébergées

La stratégie d'autorisation suivante accorde à l'utilisateur l'autorisation de répertorier toutes les zones hébergées et d'afficher tous les enregistrements d'une zone hébergée.

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "route53:GetHostedZone", "route53:ListResourceRecordSets" ], "Resource":"*" }, { "Effect":"Allow", "Action":["route53:ListHostedZones"], "Resource":"*" } ] }

Exemple 2 : Autoriser la création et la suppression de zones hébergées

La stratégie d'autorisation suivante accorde aux utilisateurs l'autorisation de créer et de supprimer des zones hébergées, et de suivre l'avancement des modifications.

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":["route53:CreateHostedZone"], "Resource":"*" }, { "Effect":"Allow", "Action":["route53:DeleteHostedZone"], "Resource":"*" }, { "Effect":"Allow", "Action":["route53:GetChange"], "Resource":"*" } ] }

Exemple 3 : Autoriser l'accès complet à tous les domaines (zones hébergées publiques uniquement)

La stratégie d'autorisation suivante accorde aux utilisateurs l'autorisation d'exécuter toutes les actions sur les enregistrements de domaines, y compris l'enregistrement de domaines et la création de zones hébergées.

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "route53domains:*", "route53:CreateHostedZone" ], "Resource":"*" } ] }

Lorsque vous enregistrez un domaine, une zone hébergée est créée simultanément. Une stratégie qui inclut l'autorisation d'enregistrer des domaines doit donc également inclure l'autorisation de créer des zones hébergées. (Pour l'enregistrement de domaine, Route 53 ne prend pas en charge l'octroi d'autorisations à des ressources individuelles.)

Pour plus d'informations sur les autorisations requises pour utiliser des zones hébergées privées, consultez Autorisations requises pour utiliser la console Amazon Route 53.

Exemple 4 : Autoriser la création de points de terminaison Route 53 Resolver entrants et sortants

La stratégie d'autorisations suivante permet aux utilisateurs d'utiliser la console Route 53 pour créer des points de terminaison Resolver entrants et sortants.

Certaines de ces autorisations sont nécessaires uniquement pour créer des points de terminaison dans la console. Vous pouvez omettre ces autorisations si vous souhaitez accorder des autorisations uniquement pour créer des points de terminaison entrants et sortants par programmation :

  • route53resolver:ListResolverEndpoints permet aux utilisateurs de voir la liste des points de terminaison entrants ou sortants afin qu'ils puissent vérifier qu'un point de terminaison a été créé.

  • DescribeAvailabilityZones est nécessaire pour afficher la liste des zones de disponibilité.

  • DescribeVpcs est nécessaire pour afficher une liste de VPC.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "route53resolver:CreateResolverEndpoint", "route53resolver:ListResolverEndpoints", "ec2:CreateNetworkInterface", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": "*" } ] }