Utilizzo di policy basate su identità (policy IAM) per Amazon Route 53 - Amazon Route 53

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di policy basate su identità (policy IAM) per Amazon Route 53

In questo argomento sono forniti esempi di policy basate su identità che illustrano come un amministratore account può collegare policy di autorizzazioni a identità IAM e quindi concedere autorizzazioni per eseguire operazioni sulle risorse di Amazon Route 53.

Importante

In primo luogo, è consigliabile esaminare gli argomenti introduttivi in cui vengono spiegati i concetti di base e le opzioni per gestire l'accesso alle risorse Route 53. Per ulteriori informazioni, consulta Panoramica della gestione delle autorizzazioni di accesso alle risorse di Amazon Route 53.

Nota

Quando si concede l'accesso, la zona ospitata e Amazon VPC devono appartenere alla stessa partizione. Una partizione è un gruppo di. Regioni AWS Ciascuno Account AWS è limitato a una partizione.

Di seguito sono riportate le partizioni supportate:

  • aws - Regioni AWS

  • aws-cn: Regioni Cina

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

Per ulteriori informazioni, consulta Gestione dell’accesso ed Endpoint e quote di Amazon Route 53 nella Guida di riferimento generale di AWS .

Di seguito viene illustrato un esempio di policy di autorizzazione. Il Sid, o ID dichiarazione, è facoltativo:

{ "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 policy include due dichiarazioni:

  • La prima dichiarazione consente di concedere autorizzazioni per le azioni necessarie per creare e gestire zone ospitate pubbliche e i relativi record. Il carattere jolly (*) nell'Amazon Resource Name (ARN) consente l'accesso a tutte le zone ospitate di proprietà dell'account corrente. AWS

  • La seconda dichiarazione consente di concedere autorizzazioni per tutte le azioni necessarie per creare e gestire i controlli dell'integrità.

Per un elenco di operazioni e l'ARN che specifichi per concedere o negare l'autorizzazione a utilizzare ciascuna operazione, consulta Autorizzazioni API di Amazon Route 53: riferimento a operazioni, risorse e condizioni.

Autorizzazioni necessarie per utilizzare la console Amazon Route 53

Per concedere l'accesso completo alla console Amazon Route 53 è necessario concedere le autorizzazioni nelle seguenti policy di autorizzazione:

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "route53:*", "route53domains:*", "tag:*", "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" } ] }

Di seguito viene descritto perché le autorizzazioni sono necessarie:

route53:*

Consente di eseguire tutte le operazioni di Route 53, tranne le seguenti:

  • Crea e aggiorna record di alias per i quali il valore di Alias Target è una CloudFront distribuzione, un sistema di bilanciamento del carico Elastic Load Balancing, un ambiente Elastic Beanstalk o un bucket Amazon S3. Con queste autorizzazioni, puoi creare record alias per cui il valore di Alias Target (Destinazione alias) è un altro record nella stessa hosted zone.

  • Utilizzare le zone ospitate private.

  • Lavorare con i domini.

  • Crea, elimina e visualizza gli allarmi. CloudWatch

  • Esegui il rendering CloudWatch delle metriche nella console Route 53.

route53domains:*

Consente di lavorare con domini.

Importante

Se si elencano operazioni route53 individualmente, è necessario includere route53:CreateHostedZone per lavorare con domini. Quando si registra un dominio, una zona ospitata viene creata nello stesso momento, quindi una policy che include le autorizzazioni per registrare domini, inoltre, richiede il permesso di creare hosted zone.

Per la registrazione di domini, Route 53 non supporta la concessione o il rifiuto di autorizzazioni per singole risorse.

route53resolver:*

Consente di lavorare con Route 53 Resolver.

ssm:GetParametersByPath

Consente di recuperare regioni disponibili pubblicamente quando crei nuovi record alias, zone ospitate private e controlli dell'integrità.

cloudfront:ListDistributions

Consente di creare e aggiornare record di alias per i quali il valore di Alias Target è una distribuzione. CloudFront

Queste autorizzazioni non sono necessarie se non utilizzi la console Route 53. Route 53 lo utilizza solo per ottenere un elenco di distribuzioni da visualizzare nella console.

elasticloadbalancing:DescribeLoadBalancers

Consente di creare e aggiornare i record alias per cui il valore di Alias Target (Destinazione alias) è un load balancer ELB.

Queste autorizzazioni non sono necessarie se non utilizzi la console Route 53. Route 53 lo utilizza solo per ottenere un elenco di bilanciatori del carico da visualizzare nella console.

elasticbeanstalk:DescribeEnvironments

Consente di creare e aggiornare i record alias per cui il valore di Destinazione alias è un ambiente Elastic Beanstalk.

Queste autorizzazioni non sono necessarie se non utilizzi la console Route 53. Route 53 lo utilizza solo per ottenere un elenco di ambienti da visualizzare nella console.

s3:ListAllMyBuckets, s3:GetBucketLocation e s3:GetBucketWebsite

Consente di creare e aggiornare i record alias per cui il valore di Destinazione alias è un bucket Amazon S3. (Puoi creare un alias per un bucket Amazon S3 solo se il bucket è configurato come endpoint di sito Web; s3:GetBucketWebsite ottiene le informazioni richieste sulla configurazione).

Queste autorizzazioni non sono necessarie se non utilizzi la console Route 53. Route 53 lo utilizza solo per ottenere un elenco di bucket da visualizzare nella console.

ec2:DescribeVpcs e ec2:DescribeRegions

Consente di lavorare con zone ospitate private.

Tutte le autorizzazioni ec2 elencate

Consente di lavorare con Route 53 Resolver.

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

Consente di creare, eliminare e visualizzare CloudWatch gli allarmi.

cloudwatch:GetMetricStatistics

Consente di creare controlli CloudWatch metrici dello stato.

Queste autorizzazioni non sono necessarie se non utilizzi la console Route 53. Route 53 lo utilizza solo per ottenere statistiche da visualizzare nella console.

apigateway:GET

Consente di creare e aggiornare i record alias per i quali il valore di Destinazione alias è un'API di Amazon API Gateway.

Questa autorizzazione non è necessaria se non utilizzi la console Route 53. Route 53 lo utilizza solo per ottenere un elenco di API da visualizzare nella console.

kms:*

Consente di utilizzare AWS KMS per abilitare la firma DNSSEC.

Autorizzazioni di esempio per il proprietario di un record di dominio

Con le autorizzazioni relative al set di record di risorse è possibile impostare autorizzazioni granulari che limitano ciò che l' AWS utente può aggiornare o modificare. Per ulteriori informazioni, consulta Utilizzo di condizioni di policy IAM per il controllo granulare degli accessi per gestire i set di record di risorse.

In alcuni scenari, il proprietario di una zona ospitata potrebbe essere responsabile della gestione complessiva della zona ospitata mentre un'altra persona dell'organizzazione è responsabile di un sottoinsieme di tali attività. Il proprietario di una zona ospitata che ha abilitato la firma DNSSEC, ad esempio, potrebbe voler creare una policy IAM che includa l'autorizzazione per altri utenti per aggiungere ed eliminare record di set di risorse (RR) nella zona ospitata, tra le altre attività. Le autorizzazioni specifiche che il proprietario di una zona ospitata sceglie di abilitare per un proprietario di record o altri utenti dipenderanno dalle policy dell'organizzazione.

Di seguito è riportata una policy IAM di esempio che consente a un proprietario di record di apportare modifiche alle RR, alle policy di traffico e ai controlli dell'integrità. Un proprietario di record con questa policy non può eseguire operazioni a livello di zona, ad esempio la creazione o l'eliminazione di una zona, l'abilitazione o la disabilitazione della registrazione delle query, la creazione o l'eliminazione di un set di delega riutilizzabile o la modifica delle impostazioni 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": [ "*" ] }

Autorizzazioni delle chiavi gestite dal cliente di Route 53 richieste per la firma DNSSEC

Quando abiliti la firma DNSSEC per Route 53, Route 53 crea una chiave di firma delle chiavi (KSK) basata su una chiave gestita dal cliente in (). AWS Key Management Service AWS KMS Puoi usare una chiave gestita dal cliente esistente che supporti la firma DNSSEC o crearne una nuova. Perché possa creare una KSK per tuo conto, Route 53 deve poter accedere alla chiave gestita dal cliente.

Per abilitare Route 53 per accedere alla chiave gestita dal cliente, assicurati che la policy della chiave gestita dal cliente contenga le seguenti istruzioni:

{ "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 } } }

Con "confused deputy" si intende un problema di sicurezza in cui un'entità che non dispone dell'autorizzazione per eseguire una certa operazione può costringere un'entità con più privilegi a eseguire tale operazione. Per proteggervi AWS KMS da tale problema, potete facoltativamente limitare le autorizzazioni di cui un servizio dispone per una risorsa in una politica basata sulle risorse, fornendo una combinazione di e condizioni (entrambe o una). aws:SourceAccount aws:SourceArn aws:SourceAccountè l'ID AWS dell'account del proprietario di una zona ospitata. aws:SourceArnè un ARN di una zona ospitata.

Di seguito sono riportati due esempi di autorizzazioni che è possibile aggiungere:

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

- O -

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

Per ulteriori informazioni, consultare Problema del "confused deputy" nella Guida per l'utente di IAM.

Esempi di policy gestite dal cliente

Puoi creare le tue policy IAM personalizzate per consentire autorizzazioni per le operazioni di Route 53. È possibile allegare queste policy personalizzate ai gruppi IAM che hanno bisogno delle autorizzazioni specificate. Queste politiche funzionano quando si utilizza l'API Route 53, gli AWS SDK o la AWS CLI. I seguenti esempi mostrano le autorizzazioni per diversi casi d'uso comuni. Per la policy che concede a un utente accesso completo a Route 53, consulta Autorizzazioni necessarie per utilizzare la console Amazon Route 53.

Esempio 1: Consentire l'accesso in lettura a tutte le zone ospitate

La seguente policy di autorizzazione concede all'utente le autorizzazioni per elencare tutte le zone ospitate e visualizzare tutti i record in una zona ospitata.

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

Esempio 2: Consentire la creazione ed eliminazione delle zone ospitate

La seguente policy di autorizzazione consente agli utenti di creare e cancellare zone ospitate e di monitorare l'avanzamento della modifica.

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

Esempio 3: Consentire l'accesso completo a tutti i domini (solo zone ospitate pubbliche)

La seguente policy di autorizzazione consente agli utenti di eseguire tutte le azioni su registrazioni di dominio, incluse le autorizzazioni per registrare domini e creare hosted zone.

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

Quando si registra un dominio, una zona ospitata viene creata nello stesso momento, quindi una policy che include le autorizzazioni per registrare domini, inoltre, richiede le autorizzazioni per creare hosted zone. (Per la registrazione di domini, Route 53 non supporta la concessione di autorizzazioni per singole risorse.)

Per informazioni sulle autorizzazioni necessarie per lavorare con zone ospitate private, consulta Autorizzazioni necessarie per utilizzare la console Amazon Route 53.

Esempio 4: Consentire la creazione di endpoint di Route 53 Resolver in entrata e in uscita

La policy di autorizzazioni riportata di seguito consente agli utenti di utilizzare la console Route 53 per creare endpoint in ingresso e in uscita di Resolver.

Alcune di queste autorizzazioni sono necessarie solo per creare endpoint nella console. È possibile omettere queste autorizzazioni se si desidera concedere autorizzazioni solo per creare endpoint in ingresso e in uscita a livello di codice:

  • route53resolver:ListResolverEndpoints consente agli utenti di visualizzare l'elenco degli endpoint in ingresso o in uscita in modo da poter verificare che sia stato creato un endpoint.

  • DescribeAvailabilityZones è necessario per visualizzare un elenco di Zone di disponibilità.

  • DescribeVpcs è necessario per visualizzare un elenco di 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": "*" } ] }