Uso de políticas basadas en identidad (políticas de IAM) para Amazon Route 53 - Amazon Route 53

Uso de políticas basadas en identidad (políticas de IAM) para Amazon Route 53

En este tema se ofrecen ejemplos de políticas basadas en identidad que muestran cómo un administrador de una cuenta puede adjuntar políticas de permisos a identidades de IAM y, de ese modo, conceder permisos para realizar operaciones en recursos de Amazon Route 53.

importante

Le recomendamos que consulte primero los temas de introducción en los que se explican los conceptos básicos y las opciones disponibles para administrar el acceso a sus recursos de Route 53. Para obtener más información, consulte Información general sobre la administración de los permisos de acceso a los recursos de Amazon Route 53.

nota

Al conceder acceso, la zona alojada y Amazon VPC deben pertenecer a la misma partición. Una partición es un grupo de regiones de Regiones de AWS. Cada Cuenta de AWS está limitada a una partición.

Las siguientes son las particiones admitidas:

  • aws - Regiones de AWS

  • aws-cn - Regiones de China

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

Para obtener más información, consulte Administración de acceso y puntos de conexión y cuotas de Amazon Route 53 en la Referencia general de AWS.

El ejemplo siguiente muestra una política de permisos. El Sid o ID de instrucción es opcional:

{ "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 política incluye dos instrucciones:

  • La primera instrucción concede permisos para las acciones necesarias para crear y administrar zonas hospedadas públicas y sus registros. El carácter comodín (*) en el nombre de recurso de Amazon (ARN) concede acceso a todas las zonas alojadas que son propiedad de la cuenta de AWS.

  • La segunda instrucción concede permisos para todas las acciones necesarias para crear y administrar comprobaciones de estado.

Para consultar una lista de acciones y el ARN a especificar para conceder o denegar permisos para ejecutar cada acción, visite Permisos de la API de Amazon Route 53: referencia de acciones, recursos y condiciones.

Permisos necesarios para usar la consola de Amazon Route 53

Para conceder acceso total a la consola de Amazon Route 53, debe conceder los permisos en la siguiente política de permisos:

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "route53:*", "route53domains:*", "tag:*", "ssm:GetParametersByPath", "cloudfront:ListDistributions", "elasticloadbalancing:DescribeLoadBalancers", "elasticbeanstalk:DescribeEnvironments", "s3:ListAllamzn-s3-demo-bucket", "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" } ] }

Aquí se explica por qué son necesarios los permisos:

route53:*

Le permite realizar todas las acciones de Route 53 salvo las siguientes:

  • Crear y actualizar registros de alias en los que el valor de Alias Target (Destino del alias) es una distribución de CloudFront, un balanceador de carga de Elastic Load Balancing, un entorno de Elastic Beanstalk o un bucket de Amazon S3. (Con estos permisos, puede crear registros de alias en los que el valor de Alias Target (Destino del alias) es otro registro de la misma zona alojada).

  • Trabajar con zonas alojadas privadas.

  • Trabajar con dominios.

  • Crear, eliminar y ver alarmas de CloudWatch.

  • Representar las métricas de CloudWatch en la consola de Route 53.

route53domains:*

Le permite trabajar con dominios.

importante

Si muestra las acciones de route53 individualmente, debe incluir route53:CreateHostedZone para trabajar con dominios. Al registrar un dominio, se crea una zona alojada al mismo tiempo, por lo que una política que incluya permisos para registrar dominios también requiere permiso para crear zonas alojadas.

Para el registro de dominios, Route 53 no permite conceder o denegar permisos a recursos específicos.

route53resolver:*

Le permite trabajar con Route 53 Resolver.

ssm:GetParametersByPath

Le permite buscar regiones disponibles públicamente cuando crean nuevos registros de alias, zonas alojadas privadas y comprobaciones de estado.

cloudfront:ListDistributions

Le permite crear y actualizar registros de alias en los que el valor de Alias Target (Destino del alias) es una distribución de CloudFront.

Estos permisos no son necesarios si no está utilizando la consola de Route 53. Route 53 solo lo utiliza para obtener la lista de distribuciones que muestra en la consola.

elasticloadbalancing:DescribeLoadBalancers

Le permite crear y actualizar registros de alias en los que el valor de Alias Target (Destino del alias) es un balanceador de carga de ELB.

Estos permisos no son necesarios si no está utilizando la consola de Route 53. Route 53 solo lo utiliza para obtener la lista de balanceadores de carga que muestra en la consola.

elasticbeanstalk:DescribeEnvironments

Le permite crear y actualizar registros de alias en los que el valor de Alias Target (Destino del alias) es un entorno de Elastic Beanstalk.

Estos permisos no son necesarios si no está utilizando la consola de Route 53. Route 53 solo lo utiliza para obtener la lista de entornos que muestra en la consola.

s3:ListAllamzn-s3-demo-bucket, s3:GetBucketLocation, y s3:GetBucketWebsite

Le permite crear y actualizar registros de alias en los que el valor de Alias Target (Destino del alias) es un bucket de Amazon S3. (Puede crear un alias para un bucket de Amazon S3 solo si el bucket está configurado como el punto de enlace de un sitio web; s3:GetBucketWebsite obtiene la información de configuración necesaria).

Estos permisos no son necesarios si no está utilizando la consola de Route 53. Route 53 solo lo utiliza para obtener la lista de buckets que muestra en la consola.

ec2:DescribeVpcs y ec2:DescribeRegions

Le permite trabajar con zonas hospedadas privadas.

Todos los permisos de ec2 mostrados

Le permite trabajar con Route 53 Resolver.

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

Le permite crear, eliminar y ver alarmas de CloudWatch.

cloudwatch:GetMetricStatistics

Le permite crear comprobaciones de estado de métricas de CloudWatch.

Estos permisos no son necesarios si no está utilizando la consola de Route 53. Route 53 solo lo utiliza para obtener las estadísticas que muestra en la consola.

apigateway:GET

Le permite crear y actualizar registros de alias en los que el valor de Alias Target (Destino del alias) es una API de Amazon API Gateway.

Este permiso no es necesario si no está utilizando la consola de Route 53. Route 53 solo lo utiliza para obtener la lista de API que muestra en la consola.

kms:*

Le permite trabajar con AWS KMS para habilitar la firma DNSSEC.

Permisos de ejemplo para el propietario de un registro de dominio

Con los permisos del conjunto de registros de recursos, puede establecer permisos granulares que limiten lo que el usuario de AWS puede actualizar o modificar. Para obtener más información, consulte Uso de condiciones de las políticas de IAM para control de acceso preciso.

En algunos casos, el propietario de una zona alojada podría ser el responsable de la administración general de la misma, mientras que otra persona de la organización es responsable de un subconjunto de esas tareas. El propietario de una zona alojada que haya habilitado la firma DNSSEC, por ejemplo, podría querer crear una política de IAM que incluya el permiso para que otra persona agregue y elimine registros de conjuntos de recursos (RR) en la zona alojada, entre otras tareas. Los permisos específicos que el propietario de una zona alojada elija habilitar para un propietario de registro u otras personas dependerán de la política de su organización.

A continuación se muestra un ejemplo de política de IAM que permite a un propietario de registro realizar modificaciones en los RR, las políticas de tráfico y las comprobaciones de estado. El propietario de un registro con esta política no puede realizar operaciones de nivel de zona, tales como crear o eliminar una zona, activar o desactivar el registro de consultas, crear o eliminar un conjunto de delegación reutilizable o cambiar la configuración de 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": [ "*" ] }

Permisos de clave administrados por el cliente de Route 53 necesarios para firmar DNSSEC

Cuando habilita la firma DNSSEC para Route 53, este servicio crea una clave de firma de clave (KSK) basada en una clave administrada por el cliente en AWS Key Management Service (AWS KMS). Puede usar una clave administrada por el cliente que admita la firma DNSSEC o crear una. Route 53 debe tener permiso para acceder a la clave administrada por el cliente a fin de que pueda crear la KSK automáticamente.

Para permitir que Route 53 acceda a la clave administrada por el cliente, asegúrese de que la política de clave administrada por el cliente incluya las siguientes instrucciones:

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

El problema del suplente confuso es un problema de seguridad en el que una entidad que no tiene permiso para realizar una acción puede obligar a una entidad con más privilegios a realizar la acción. Para proteger su AWS KMS desde él, puede limitar opcionalmente los permisos que un servicio tiene a un recurso de una política basada en recursos proporcionando una combinación de aws:SourceAccount y aws:SourceArn condiciones (ambas o una). aws:SourceAccount es un AWS ID de cuenta de un propietario de una zona alojada. aws:SourceArn es un ARN de una zona alojada.

A continuación se muestran dos ejemplos de permisos que puede agregar:

{ "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/*" } } },

Para obtener más información, consulte El problema del suplente confuso en la Guía del usuario de IAM.

Ejemplos de políticas administradas por el cliente

Puede crear sus propias políticas de IAM personalizadas con el fin de conceder permisos para realizar acciones de Route 53. Puede asociar estas políticas personalizadas a los grupos de IAM que requieran los permisos especificados. Estas políticas funcionan cuando se utiliza la API de Route 53, los AWS SDK o la AWS CLI. A continuación se muestran algunos ejemplos de permisos para algunos casos de uso comunes. Para ver la política que concede a un usuario acceso total a Route 53, consulte Permisos necesarios para usar la consola de Amazon Route 53.

Ejemplo 1: Permitir acceso de lectura a todas las zonas hospedadas

La siguiente política de permisos concede al usuario permisos para mostrar todas las zonas hospedadas y ver todos los registros de una zona alojada.

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

Ejemplo 2: Permitir la creación y eliminación de zonas hospedadas

La siguiente política de permisos permite a los usuarios crear y eliminar zonas hospedadas, así como realizar un seguimiento del progreso del cambio.

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

Ejemplo 3: Permitir acceso completo a todos los dominios (solo zonas hospedadas públicas)

La siguiente política de permisos permite a los usuarios realizar todas las acciones en los registros de dominios, incluidos los permisos para registrar dominios y crear zonas hospedadas.

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

Al registrar un dominio, se crea una zona alojada al mismo tiempo, por lo que una política que incluya permisos para registrar dominios también requiere permisos para crear zonas alojadas. (Para el registro de dominios, Route 53 no permite conceder permisos a recursos específicos).

Para obtener información sobre los permisos necesarios para trabajar con zonas hospedadas, consulte Permisos necesarios para usar la consola de Amazon Route 53.

Ejemplo 4: Permitir la creación de puntos de enlace de entrada y salida de Route 53 Resolver

La siguiente política de permisos permite a los usuarios utilizar la consola de Route 53 para crear puntos de enlace de entrada y salida de Resolver.

Algunos de estos permisos solo son necesarios para crear puntos de enlace en la consola. Puede omitir estos permisos si desea conceder permisos solo para crear puntos de enlace de entrada y salida mediante programación:

  • route53resolver:ListResolverEndpoints permite a los usuarios ver la lista de puntos de enlace de entrada o salida para que puedan verificar que se ha creado un puntos de conexión.

  • DescribeAvailabilityZones es necesario para mostrar una lista de zonas de disponibilidad.

  • DescribeVpcs es necesario para mostrar una lista 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": "*" } ] }