Solucionar problemas de mensajes de error de acceso denegado
La siguiente información puede ayudarlo a identificar, diagnosticar y resolver los errores de acceso denegado con AWS Identity and Access Management. Los errores de acceso denegado se muestran cuando AWS deniega explícita o implícitamente una solicitud de autorización.
-
Se produce una denegación explícita cuando una política contiene una declaración
Deny
para la acción de AWS específica. -
Una denegación implícita se produce cuando no hay declaraciones
Deny
niAllow
aplicables. Como una política de IAM deniega una entidad principal de IAM de forma predeterminada, la política debe permitir explícitamente que la entidad principal lleve a cabo una acción. De lo contrario, la política deniega el acceso de forma implícita. Para obtener más información, consulte Diferencia entre denegaciones implícitas y explícitas.
Al realizar una solicitud a un servicio o recurso, es posible que se apliquen varias políticas a la solicitud. Revise todas las políticas aplicables además de la política que se especifica en el mensaje de error.
-
Si varias políticas del mismo tipo de política rechazan una solicitud, el mensaje de error de acceso denegado no especifica la cantidad de políticas evaluadas.
-
Si se deniega una solicitud de autorización debido a varios tipos de políticas, AWS incluye solo uno de esos tipos de políticas en el mensaje de error.
importante
¿Tiene problemas para iniciar sesión en AWS? Asegúrese de que está en la página de inicio de sesión de AWS correcta para su tipo de usuario. Si es el Usuario raíz de la cuenta de AWS (propietario de la cuenta), puede iniciar sesión en AWS con las credenciales que configuró cuando creó la Cuenta de AWS. Si es un usuario de IAM, el administrador de su cuenta puede proporcionarle las credenciales de inicio de sesión de AWS. Si necesita solicitar soporte técnico, no utilice el enlace de comentarios de esta página. El formulario lo recibe el equipo de documentación de AWS, no AWS Support. En lugar de ello, en la página Contacte con nosotros
Me aparece un mensaje de “acceso denegado” al realizar una solicitud a un servicio de AWS
-
Verifique si el mensaje de error incluye el tipo de política responsable de denegar el acceso. Por ejemplo, si el error menciona que el acceso se deniega debido a una política de control de servicios (SCP), puede centrarse en solucionar problemas de SCP. Una vez que identifique el tipo de política, puede comprobar si hay instrucciones de denegación o acciones de permiso faltantes en esos tipos de política. Si el mensaje de error no menciona el tipo de política responsable de denegar el acceso, utilice el resto de las directrices de esta sección para solucionar más problemas.
-
Compruebe que tiene el permiso de política basada en identidad para llamar a la acción y a los recursos que ha solicitado. Si hay condiciones establecidas, también debe cumplir dichas condiciones al enviar la solicitud. Para obtener más información sobre cómo consultar o modificar políticas para un usuario, grupo o rol de IAM, consulte Administración de políticas de IAM.
-
Si la AWS Management Console da un mensaje diciendo que no está autorizado para llevar a cabo una acción, debe ponerse en contacto con su administrador para recibir ayuda. El administrador le proporcionó sus credenciales de inicio de sesión o enlace de inicio de sesión.
En el siguiente ejemplo, el error se produce cuando el usuario de IAM
mateojackson
intenta utilizar la consola para consultar los detalles acerca de un recurso ficticio
, pero no tiene los permisos ficticiosmy-example-widget
widgets:
.GetWidget
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: widgets:
GetWidget
on resource:my-example-widget
En este caso, Mateo debe pedirle a su administrador que actualice sus políticas para obtener acceso al recurso
mediante la acciónmy-example-widget
widgets:
.GetWidget
-
¿Está intentando obtener acceso a un servicio que admite Políticas basadas en recursos, como por ejemplo Amazon S3, Amazon SNS o Amazon SQS? En caso afirmativo, compruebe que la política le tenga especificado como principal y le dé acceso. Si realiza una solicitud a un servicio dentro de su cuenta, las políticas basadas en identidad o basadas en recursos puede concederle permiso. Si realiza una solicitud a un servicio de una cuenta distinta, tanto las políticas basadas en identidad como las basadas en recursos deben concederle permiso. Para ver qué servicios admiten políticas basadas en recursos, consulte Servicios de AWS que funcionan con IAM.
-
Si la política incluye una condición con un par clave-valor, revíselo atentamente. Entre los ejemplos se incluyen la clave de condición global aws:RequestTag/tag-key, la
kms:EncryptionContext:
de AWS KMS y la clave de condiciónencryption_context_key
ResourceTag/
compatibles con varios servicios. Asegúrese de que el nombre de la clave no coincida con varios resultados. Puesto que los nombres de la clave de condición no distinguen entre mayúsculas y minúsculas, una condición que comprueba una clave denominadatag-key
foo
coincidirá confoo
,Foo
oFOO
. Si su solicitud incluye varios pares clave-valor con nombres de clave que diferencian únicamente por las mayúsculas o minúsculas, su acceso puede denegarse de forma inesperada. Para obtener más información, consulte Elementos de política JSON de IAM: Condition. -
Si tiene un límite de permisos, compruebe que la política utilizada para el límite de permisos permite la solicitud. Si las políticas basadas en identidad permiten la solicitud, pero el límite de permisos no la permite, la solicitud se deniega. Un límite de permisos controla los permisos máximos que puede tener una entidad principal de IAM (usuario o rol). Las políticas basadas en recursos no se restringen por los límites de permisos. Los límites de permisos no son comunes. Para obtener más información sobre evalúa estas políticas AWS, consulte Lógica de evaluación de políticas.
-
Si va a firmar las solicitudes manualmente (sin utilizar los AWS SDK
), compruebe que haya firmado correctamente la solicitud.
Me aparece un mensaje de “acceso denegado” al realizar una solicitud con credenciales de seguridad temporales
-
En primer lugar, asegúrese de que no se le deniega el acceso por un motivo no relacionado con sus credenciales temporales. Para obtener más información, consulte Me aparece un mensaje de “acceso denegado” al realizar una solicitud a un servicio de AWS.
-
Compruebe que el servicio acepta credenciales de seguridad temporales, consulte Servicios de AWS que funcionan con IAM.
-
Compruebe que las solicitudes se han firmado correctamente y que la solicitud tiene el formato correcto. Para obtener más información, consulte la documentación de su conjunto de herramientas
o Uso de credenciales temporales con recursos de AWS. -
Compruebe que sus credenciales de seguridad temporales no hayan caducado. Para obtener más información, consulte Credenciales de seguridad temporales en IAM.
-
Compruebe que el usuario o el rol de IAM tenga los permisos adecuados. Los permisos de credenciales de seguridad temporales se obtienen de un usuario o un rol de IAM. Como resultado, los permisos se limitan a los que se conceden al rol cuyas credenciales temporales ha asumido. Para obtener más información sobre cómo se determinan los permisos de las credenciales de seguridad temporales, consulte Permisos para credenciales de seguridad temporales.
-
Si asume una función, su sesión de rol puede verse limitada por las políticas de la sesión. Al solicitar las credenciales de seguridad temporales mediante programación utilizando AWS STS, tiene la opción de pasar las políticas de sesión administradas o insertadas. Las políticas de sesión son políticas avanzadas que se pasan como parámetro cuando se crea una sesión de credenciales temporal mediante programación para un rol. Puede transferir un único documento de política de sesión insertada JSON utilizando el parámetro
Policy
. Puede utilizar el parámetroPolicyArns
para especificar hasta 10 políticas de sesión administrada. Los permisos de la sesión resultantes son la intersección de las políticas basadas en identidades del rol y las políticas de la sesión. De manera alternativa, si el administrador o un programa personalizado le proporcionan credenciales temporales, es posible que hayan incluido una política de sesión para limitar su acceso. -
Si es un usuario federado, la sesión puede verse limitada por las políticas de la sesión. Puede convertirse en un usuario federado iniciando sesión en AWS como un usuario de IAM y, a continuación, solicitando un token de federación. Para obtener más información acerca de los usuarios federados, consulte Solicitud de credenciales a través de un agente de identidades personalizado. Si usted o su agente de identidades pasan políticas de sesión al mismo tiempo que solicitan un token de federación, la sesión se verá limitada por esas políticas. Los permisos de la sesión resultantes son la intersección de las políticas basadas en identidades de su usuario de IAM y las políticas de la sesión. Para obtener más información acerca de las políticas de sesión, consulte Políticas de sesión.
-
Si obtiene acceso mediante un rol a un recurso que tiene una política basada en recursos, compruebe que la política conceda permisos a dicho rol. Por ejemplo, la siguiente política permite que
MyRole
de la cuenta111122223333
obtenga acceso aamzn-s3-demo-bucket
.{ "Version": "2012-10-17", "Statement": [{ "Sid": "S3BucketPolicy", "Effect": "Allow", "Principal": {"AWS": ["arn:aws:iam::111122223333:role/MyRole"]}, "Action": ["s3:PutObject"], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"] }] }
Ejemplos de mensajes de error de acceso denegado
La mayoría de los mensajes de error de acceso denegado aparecen en el formato User
. En este ejemplo, el user
is not authorized to perform
action
on resource
because
context
usuario
es el nombre de recurso de Amazon (ARN) que no recibe acceso, la acción
es la acción de servicio que la política niega y el recurso
es el ARN del recurso sobre el que actúa la política. El campo de contexto
representa un contexto adicional sobre el tipo de política que explica por qué se deniega el acceso.
Cuando una política deniega explícitamente el acceso porque contiene una declaración Deny
, AWS incluye la frase with an explicit deny in a
en el mensaje de error de acceso denegado. Cuando la política deniega implícitamente el acceso, AWS incluye la frase type
policybecause no
en el mensaje de error de acceso denegado.type
policy allows the
action
action
nota
Algunos servicios de AWS no admiten este formato de mensaje de error de acceso denegado. El contenido de los mensajes de error de acceso denegado puede variar según el servicio que realiza la solicitud de autorización.
En los siguientes ejemplos se muestra el formato de los distintos tipos de mensajes de error de acceso denegado.
Acceso denegado debido a una política de control de servicios: denegación implícita
-
Compruebe si falta una instrucción
Allow
explícita para la acción en sus políticas de control de servicio (SCP). Para el siguiente ejemplo, la acción escodecommit:ListRepositories
. -
Actualice su política al agregar la instrucción
Allow
. Para obtener más información, consulte Actualización de SCP en la Guía del usuario de AWS Organizations.
User: arn:aws:iam::777788889999:user/JohnDoe is not authorized to perform: codecommit:ListRepositories because no service control policy allows the codecommit:ListRespositories action
Acceso denegado debido a una política de control de servicios: denegación explícita
-
Compruebe si hay una instrucción
Deny
explícita para la acción en sus políticas de control de servicio (SCP). Para el siguiente ejemplo, la acción escodecommit:ListRepositories
. -
Actualice su SCP al eliminar la instrucción
Deny
. Para obtener más información, consulte Actualización de SCP en la Guía del usuario de AWS Organizations.
User: arn:aws:iam::777788889999:user/JohnDoe is not authorized to perform: codecommit:ListRepositories with an explicit deny in a service control policy
Acceso denegado debido a una política de punto de conexión de VPC: denegación implícita
-
Compruebe si falta la instrucción
Allow
para la acción en sus políticas de punto de conexión de nube privada virtual (VPC). Para el siguiente ejemplo, la acción escodecommit:ListRepositories
. -
Actualice su política de punto de conexión de VPC al agregar la instrucción
Allow
. Para obtener más información, consulte Actualizar una política de punto de conexión de VPC en la Guía de AWS PrivateLink.
User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codecommit:ListRepositories because no VPC endpoint policy allows the codecommit:ListRepositories action
Acceso denegado debido a una política de punto de conexión de VPC: denegación explícita
-
Compruebe si hay una instrucción
Deny
explícita para la acción en sus políticas de punto de conexión de nube privada virtual (VPC). Para el siguiente ejemplo, la acción escodedeploy:ListDeployments
. -
Actualice su política de punto de conexión de VPC al eliminar la instrucción
Deny
. Para obtener más información, consulte Actualizar una política de punto de conexión de VPC en la Guía de AWS PrivateLink.
User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* with an explicit deny in a VPC endpoint policy
Acceso denegado debido a un límite de permisos: denegación implícita
-
Compruebe si falta una instrucción
Allow
para la acción en su límite de permisos. Para el siguiente ejemplo, la acción escodedeploy:ListDeployments
. -
Actualice su límite de permisos al agregar la instrucción
Allow
a su política de IAM. Para obtener más información, consulte Límites de permisos para las entidades de IAM y Edición de políticas de IAM.
User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* because no permissions boundary allows the codedeploy:ListDeployments action
Acceso denegado debido a un límite de permisos: denegación explícita
-
Compruebe si hay una instrucción
Deny
explícita para la acción en su límite de permisos. Para el siguiente ejemplo, la acción essagemaker:ListModels
. -
Actualice su límite de permisos al eliminar la instrucción
Deny
de su política de IAM. Para obtener más información, consulte Límites de permisos para las entidades de IAM y Edición de políticas de IAM.
User: arn:aws:iam::777788889999:user/JohnDoe is not authorized to perform: sagemaker:ListModels with an explicit deny in a permissions boundary
Acceso denegado debido a políticas de sesión: denegación implícita
-
Compruebe si falta una instrucción
Allow
para la acción en sus políticas de sesión. Para el siguiente ejemplo, la acción escodecommit:ListRepositories
. -
Actualice su política de sesión al agregar la instrucción
Allow
. Para obtener más información, consulte Políticas de sesión y Edición de políticas de IAM.
User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codecommit:ListRepositories because no session policy allows the codecommit:ListRepositories action
Acceso denegado debido a políticas de sesión: denegación explícita
-
Compruebe si hay una instrucción
Deny
explícita para la acción en sus políticas de sesión. Para el siguiente ejemplo, la acción escodedeploy:ListDeployments
. -
Actualice su política de sesión al eliminar la instrucción
Deny
. Para obtener más información, consulte Políticas de sesión y Edición de políticas de IAM.
User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* with an explicit deny in a sessions policy
Acceso denegado debido a políticas basadas en recursos: denegación implícita
-
Compruebe si falta una instrucción
Allow
para la acción en su política basada en recursos. Para el siguiente ejemplo, la acción essecretsmanager:GetSecretValue
. -
Actualice su política al agregar la instrucción
Allow
. Para obtener más información, consulte Políticas basadas en recursos y Edición de políticas de IAM.
User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: secretsmanager:GetSecretValue because no resource-based policy allows the secretsmanager:GetSecretValue action
Acceso denegado debido a políticas basadas en recursos: denegación explícita
-
Compruebe si hay una instrucción
Deny
explícita para la acción en su política basada en recursos. Para el siguiente ejemplo, la acción essecretsmanager:GetSecretValue
. -
Actualice su política al eliminar la instrucción
Deny
. Para obtener más información, consulte Políticas basadas en recursos y Edición de políticas de IAM.
User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: secretsmanager:GetSecretValue on resource: arn:aws:secretsmanager:us-east-1:123456789012:secret:* with an explicit deny in a resource-based policy
Acceso denegado debido a políticas de confianza de rol: denegación implícita
-
Compruebe si falta una instrucción
Allow
para la acción en su política de confianza de rol. Para el siguiente ejemplo, la acción essts:AssumeRole
. -
Actualice su política al agregar la instrucción
Allow
. Para obtener más información, consulte Políticas basadas en recursos y Edición de políticas de IAM.
User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: sts:AssumeRole because no role trust policy allows the sts:AssumeRole action
Acceso denegado debido a políticas de confianza de rol: denegación explícita
-
Compruebe si hay una instrucción
Deny
explícita para la acción en su política de confianza de rol. Para el siguiente ejemplo, la acción essts:AssumeRole
. -
Actualice su política al eliminar la instrucción
Deny
. Para obtener más información, consulte Políticas basadas en recursos y Edición de políticas de IAM.
User: arn:aws:iam::777788889999:user/JohnDoe is not authorized to perform: sts:AssumeRole with an explicit deny in the role trust policy
Acceso denegado debido a políticas basadas en identidad: denegación implícita
-
Compruebe si falta una instrucción
Allow
para la acción en las políticas basadas en identidad asociadas a la identidad. Para el siguiente ejemplo, la acción escodecommit:ListRepositories
y está asociada al rolHR
. -
Actualice su política al agregar la instrucción
Allow
. Para obtener más información, consulte Políticas basadas en identidad y Edición de políticas de IAM.
User: arn:aws:iam::123456789012:role/HR is not authorized to perform: codecommit:ListRepositories because no identity-based policy allows the codecommit:ListRepositories action
Acceso denegado debido a políticas basadas en identidades: denegación explícita
-
Compruebe si hay una instrucción
Deny
explícita para la acción en las políticas basadas en identidad asociadas a la identidad. Para el siguiente ejemplo, la acción escodedeploy:ListDeployments
y está asociada al rolHR
. -
Actualice su política al eliminar la instrucción
Deny
. Para obtener más información, consulte Políticas basadas en identidad y Edición de políticas de IAM.
User: arn:aws:iam::123456789012:role/HR is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* with an explicit deny in an identity-based policy
Acceso denegado cuando una solicitud de VPC falla debido a otra política
-
Compruebe si hay una instrucción
Deny
explícita para la acción en sus políticas de control de servicio (SCP). Para el siguiente ejemplo, la acción esSNS:Publish
. -
Actualice su SCP al eliminar la instrucción
Deny
. Para obtener más información, consulte Actualización de SCP en la Guía del usuario de AWS IAM Identity Center.
User: arn:aws:sts::111122223333:assumed-role/
role-name
/role-session-name
is not authorized to perform: SNS:Publish on resource: arn:aws:sns:us-east-1:444455556666:role-name-2
with an explicit deny in a VPC endpoint policy transitively through a service control policy