Uso de condiciones de las políticas de IAM para control de acceso preciso - Amazon Route 53

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de condiciones de las políticas de IAM para control de acceso preciso

En Route 53, puede especificar las condiciones al conceder permisos utilizando la política de IAM (consulte Control de acceso). Por ejemplo, puede hacer lo siguiente:

  • Conceda permisos para permitir el acceso a un único conjunto de registros de recursos.

  • Conceda permisos para que los usuarios puedan acceder a todos los conjuntos de registros de recursos de un tipo de registro de DNS específico en una zona alojada, por ejemplo, los registros A y AAAA.

  • Conceda permisos para que los usuarios puedan acceder a un conjunto de registros de recursos en el que su nombre contenga una cadena específica.

  • Otorgue permisos para que los usuarios puedan realizar solo un subconjunto de CREATE | UPSERT | DELETE las acciones en la consola de Route 53 o cuando usen la API. ChangeResourceRecordSets

  • Otorgue permisos para permitir a los usuarios asociar o disociar zonas alojadas privadas de una VPC determinada.

  • Otorgue permisos para permitir a los usuarios enumerar las zonas alojadas asociadas a una VPC determinada.

  • Otorgue permisos para permitir a los usuarios acceder a crear una nueva zona alojada privada y asociarla a una VPC determinada.

  • Otorgue permisos para permitir a los usuarios crear o eliminar una autorización de asociación de VPC.

También puede crear permisos que combinen cualquiera de los permisos granulares.

Normalización de los valores clave de la condición de Route 53

Los valores que ingrese para las condiciones de la política deben formatearse o normalizarse de la siguiente manera:

Para route53:ChangeResourceRecordSetsNormalizedRecordNames:

  • Todas las letras deben estar en minúsculas.

  • El nombre de DNS debe estar sin el punto final.

  • Los caracteres que no sean a-z, 0-9, - (guion), _ (guion bajo) y . (punto, como delimitador entre etiquetas) deben utilizar códigos de escape con el formato \código octal de tres dígitos. Por ejemplo, \052 es el código octal del carácter *.

Para route53:ChangeResourceRecordSetsActions, el valor puede ser cualquiera de los siguientes y debe estar en mayúscula:

  • CREATE

  • UPSERT

  • DELETE

Para route53:ChangeResourceRecordSetsRecordTypes:

  • El valor debe estar en mayúsculas y puede ser cualquiera de los tipos de registro de DNS compatibles con Route 53. Para obtener más información, consulte Tipos de registros de DNS admitidos.

Para route53:VPCs:

  • El formato del valor debe ser VPCId=<vpc-id>,VPCRegion=<region>.

  • El valor de <vpc-id> y <region> debe expresarse en letras minúsculas, como VPCId=vpc-123abc y VPCRegion=us-east-1.

  • Las claves de contexto y los valores distinguen entre mayúsculas y minúsculas.

importante

Para que sus permisos permitan o restrinjan las acciones que quiera, debe seguir estas convenciones. Esta clave de condición solo VPCId acepta los VPCRegion elementos; por ejemplo, no se admiten otros AWS recursos. Cuenta de AWS

Puede utilizar Access Analyzer o Policy Simulator de la Guía del usuario de IAM para validar que la política conceda o restrinja los permisos según lo previsto. Para validar los permisos, también puede aplicar una política de IAM a un usuario o rol de prueba para llevar a cabo las operaciones de Route 53.

Especificación de condiciones: uso de claves de condición

AWS proporciona un conjunto de claves de condición AWS predefinidas (claves de condición generales) para todos los AWS servicios que admiten la IAM para el control de acceso. Por ejemplo, puede usar la clave de condición aws:SourceIp para comprobar la dirección IP del solicitante antes de permitir que se lleve a cabo cualquier acción. Para obtener más información y una lista con las claves generales de AWS, consulte Available Keys for Conditions (Claves disponibles para las condiciones) en la Guía del usuario de IAM.

nota

Route 53 no admite claves de condición basadas en etiquetas.

En la siguiente tabla se muestran las claves de condición específicas del servicio Route 53 que se aplican a Route 53.

Clave de condición de Route 53 Operaciones de la API Tipo de valor Descripción
route53:ChangeResourceRecordSetsNormalizedRecordNames

ChangeResourceRecordSets

Multivalor

Representa una lista de nombres de registros DNS incluidos en la solicitud de. ChangeResourceRecordSets Para obtener el comportamiento esperado, los nombres de DNS de la política de IAM se deben normalizar de la siguiente manera:

  • Todas las letras deben estar en minúsculas.

  • El nombre de DNS debe estar sin el punto final.

  • Los caracteres que no sean de la A a la Z, del 0 al 9, - (guion), _ (guion bajo) y . (punto, como delimitador entre etiquetas) deben utilizar códigos de escape con el formato \código octal de tres dígitos.

route53:ChangeResourceRecordSetsRecordTypes

ChangeResourceRecordSets

Multivalor

Representa una lista de tipos de registros de DNS en la solicitud de ChangeResourceRecordSets.

ChangeResourceRecordSetsRecordTypes puede ser cualquiera de los tipos de registros de DNS compatibles con Route 53. Para obtener más información, consulte Tipos de registros de DNS admitidos. En la política, todo se debe escribir en mayúsculas.

route53:ChangeResourceRecordSetsActions

ChangeResourceRecordSets

Multivalor

Representa una lista de acciones en la solicitud de ChangeResourceRecordSets.

ChangeResourceRecordSetsActions puede ser cualquiera de los siguientes valores (debe estar en mayúscula):

  • CREATE

  • UPSERT

  • DELETE

route53:VPCs

Asociado VPCWith HostedZone

Disociar VPCFrom HostedZone

ListHostedZonesByVPC

CreateHostedZone

Crear autorización VPCAssociation

Eliminar VPCAssociation autorización

Multivalor

Representa una lista de VPCs en la solicitud de AssociateVPCWithHostedZoneDisassociateVPCFromHostedZone,ListHostedZonesByVPC,CreateHostedZone,CreateVPCAssociationAuthorization, yDeleteVPCAssociationAuthorization, con el formato de "VPCId=<vpc-id>, VPCRegion = <region>

Ejemplos de políticas: uso de condiciones para el acceso preciso

Cada uno de los ejemplos de esta sección establece en la cláusula Effect el valor Allow y especifica solamente las acciones, los recursos y los parámetros que se permiten. Únicamente se permite el acceso a aquello que se indica explícitamente en la política de IAM.

En algunos casos, se pueden modificar estas políticas de tal forma que se basen en la denegación (en cuyo caso, se establecería la cláusula Effect en Allow y se invertiría toda la lógica de la política). Sin embargo, recomendamos evitar el uso de políticas basadas en la denegación, ya que son difíciles de escribir correctamente en comparación con las políticas basadas el permiso. Esto es especialmente cierto para Route 53 debido a la normalización del texto que se requiere.

Concesión de permisos que limitan el acceso a los registros de DNS con nombres específicos

La siguiente política de permisos otorga permisos que permiten acciones de ChangeResourceRecordSets en la zona alojada Z12345 para ejemplo.com. y marketing.ejemplo.com. Utiliza la clave de condición route53:ChangeResourceRecordSetsNormalizedRecordNames para limitar las acciones del usuario solo en los registros que coincidan con los nombres especificados.

{ "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 es un operador de condición de IAM que se aplica a claves con varios valores. La condición de la política anterior permitirá la operación solo cuando todos los cambios en ChangeResourceRecordSets tengan el nombre de DNS example.com. Para obtener más información, consulte IAM condition operators (Operadores de condición de IAM) y IAM condition with multiple keys or values (Condición de IAM con varias claves o valores) en la Guía del usuario de IAM.

Para implementar el permiso que hace coincidir nombres con ciertos sufijos, puede usar el comodín de IAM (*) en la política con el operador de condición StringLike o StringNotLike. La siguiente política permitirá la operación cuando todos los cambios en la operación ChangeResourceRecordSets tengan nombres de DNS que terminen en “-beta.example.com”.

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

El comodín de IAM no es el mismo que el comodín del nombre de dominio. Consulte el siguiente ejemplo para saber cómo utilizar el comodín con un nombre de dominio.

Concesión de permisos que limiten el acceso a los registros de DNS que coincidan con un nombre de dominio que tenga un comodín

La siguiente política de permisos concede permisos que autorizan acciones ChangeResourceRecordSets en la zona alojada Z12345 para example.com. Utiliza la clave de condición route53:ChangeResourceRecordSetsNormalizedRecordNames para limitar las acciones del usuario solo a los registros que coincidan con *.example.com.

{ "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 es el código octal del carácter * del nombre de DNS, y \ en \052 es un carácter de escape que significa \\ para seguir la sintaxis JSON.

Concesión de permisos que limiten el acceso a los registros de DNS específicos

La siguiente política de permisos concede permisos que autorizan acciones ChangeResourceRecordSets en la zona alojada Z12345 para example.com. Utiliza la combinación de tres claves de condición para limitar las acciones del usuario y permitir solo la creación o edición de registros de DNS con un nombre y un tipo de DNS determinados.

{ "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"] } } } ] }
Concesión de permisos que limiten el acceso a la creación y edición solo de los tipos de registros de DNS especificados

La siguiente política de permisos concede permisos que autorizan acciones ChangeResourceRecordSets en la zona alojada Z12345 para example.com. Utiliza la clave de condición route53:ChangeResourceRecordSetsRecordTypes para limitar las acciones del usuario solo en los registros que coincidan con los tipos especificados (A y AAAA).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsRecordTypes": ["A", "AAAA"] } } } ] }
Otorgamiento de permisos que especifiquen la VPC en la que la entidad principal de IAM puede operar

La siguiente política de permisos otorga permisos que permiten acciones AssociateVPCWithHostedZone, DisassociateVPCFromHostedZone, ListHostedZonesByVPC, CreateHostedZone, CreateVPCAssociationAuthorization y DeleteVPCAssociationAuthorization en la VPC especificada por el vpc-id.

importante

El formato del valor de condición debe ser VPCId=<vpc-id>,VPCRegion=<region>. Si especifica un ARN de VPC en el valor de condición, la clave de condición no surtirá efecto.

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