Saltar al contenido

¿Cómo puedo resolver los problemas de acceso denegado causados por los límites de permisos?

5 minutos de lectura
0

Quiero solucionar los errores de acceso denegado o no autorizado cuando accedo a mi servicio de AWS.

Descripción corta

AWS Identity and Access Management (IAM) devuelve errores de acceso denegado o no autorizado cuando tu política no cumple con los requisitos de condición específicos.

Para resolver el problema, identifica el usuario o rol de IAM específico que causa el problema. Revisa el límite de permiso adjunto a esa entidad. Un límite de permisos te permite usar una política administrada para establecer los permisos máximos para una entidad de IAM. Esta característica controla los permisos máximos que una política basada en la identidad puede conceder a un usuario o rol de IAM. Al establecer un límite de permisos para una entidad, esa entidad solo puede realizar las acciones que permitan ambas políticas.

Nota: Una entidad solo puede realizar las acciones que permitan tanto la política basada en la identidad como el límite de permisos.

Resolución

Si los límites de permisos no resuelven el error, revisa las políticas de control de servicios (SCP) de tu cuenta de AWS. A continuación, comprueba si alguna política basada en recursos contiene denegaciones para la entidad de IAM.

Comprobación de si una acción se permite en la política de IAM, pero no en el límite de permisos

En el siguiente ejemplo se muestra una acción que se permite en una política de IAM, pero no en el límite de permisos. En este ejemplo, un usuario de IAM tiene la política USER_IAM_POLICY adjunta:

IAM policy:(USER_IAM_POLICY)
 “Effect”: “Allow”,
            “Action”: [
                “ec2:*”,
                “s3:*”
            ],

Esta política otorga al usuario acceso total a los servicios Amazon Elastic Compute Cloud (Amazon EC2) y Amazon Simple Storage Service (Amazon S3). El usuario también tiene establecido un límite de permisos denominado USER_PB_POLICY.

Permissions Boundary:(USER_PB_POLICY)
 “Effect”: “Allow”,
            “Action”: [
                “cloudwatch:*”,
                “s3:*”
            ],

El límite de permisos establece los permisos máximos que puede realizar el usuario. En este ejemplo, este límite de permisos permite el acceso total a los servicios Amazon CloudWatch y Amazon S3. Sin embargo, dado que Amazon S3 es el único servicio que está permitido tanto en la política de IAM como en el límite de permisos, el usuario solo tiene acceso a S3. Si el usuario intenta acceder a Amazon EC2, recibirá un error de acceso denegado.

Para resolver este error, modifica el límite de permisos y permite el acceso a Amazon EC2:

“Effect”: “Allow”,
            “Action”: [
                “cloudwatch:*”,
                “s3:*”,
                “ec2:*”
            ],

Inclusión de todas las acciones necesarias en el límite de permisos mediante la consola de IAM

Para editar el límite de permisos para incluir todas las acciones que necesita un usuario, sigue estos pasos:

  1. Abre la consola de IAM.
  2. En el panel de navegación, selecciona Roles/Usuarios.
  3. Elige la entidad de IAM que quieres editar.
  4. En la sección Límites de permisos, comprueba la configuración. Si se establece un límite de permisos, significa que hay un límite de permisos definido. El nombre de la política administrada que se usa como límite de permisos en tu entidad de IAM aparece en esta sección.
  5. Amplía la política de JSON y comprueba si la acción que necesitas se permite en el límite de permisos. Si el límite de permisos no permite tu acción, edita la política de JSON para permitir todas las acciones que requiere tu entidad de IAM.

Para obtener más información sobre cómo modificar las políticas, consulta Edición de políticas de IAM.

Uso de la clave de condición iam:PermissionsBoundary en las políticas de IAM

Agrega la clave de condición iam:PermissionsBoundary a tus políticas de IAM. Esta clave de condición comprueba que se adjunte una política específica como límite de permisos en una entidad de IAM.

En el siguiente ejemplo se muestra una política de IAM denominada RestrictedRegionpermissionsBoundary:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "EC2RestrictRegion",
            "Effect": “Allow”,
            "Action": "ec2:*”
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": [
                        "us-east-1"
                   ]
                }
            }
        }

Crea una política y adjúntala a un administrador delegado que tenga la responsabilidad de crear usuarios. Cuando adjuntamos el siguiente ejemplo de política al administrador, este solo puede crear un usuario de IAM si adjunta la política RestrictedRegionPermissionsBoundary a ese usuario. Si el administrador intenta crear un usuario de IAM sin adjuntar la política, recibirá un error de acceso denegado.

{
            "Sid": "CreateUser",
            "Effect": "Allow",
            "Action": [
                "iam:CreateUser"
            ],
            "Resource": "arn:aws:iam::444455556666:user/test1*",
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": "arn:aws:iam::444455556666:policy/RestrictedRegionPermissionsBoundary"
                }
            }

Para establecer la política de IAM RestrictedRegionPermissionsBoundary como límite de permisos al crear un usuario nuevo, sigue estos pasos:

  1. Abre la consola de IAM.
  2. En el panel de navegación, elige Usuarios y, a continuación, elige Agregar usuarios.
  3. Introduce el nombre de usuario que deseas editar, elige el tipo de acceso de AWS y, a continuación, elige Siguiente.
  4. Amplía la sección Establecer límites de permisos y elige Usar un límite de permisos para controlar el máximo de permisos de rol.
  5. En el campo de búsqueda, escribe RestrictedRegionPermissionsBoundary y, a continuación, selecciona el botón de opción de tu política.
  6. Selecciona Siguiente:Etiquetas.
  7. Revisa la configuración y crea un usuario.

Información relacionada

Evaluación de los permisos efectivos cuando se usan límites

AWSSupport-TroubleshootIAMAccessDeniedEvents