Cómo autoriza Amazon S3 una solicitud
Cuando Amazon S3 recibe una solicitud, por ejemplo, una operación de bucket o de objeto, primero verifica que el solicitante tenga los permisos necesarios. Para decidir si autoriza la solicitud o no, Amazon S3 evalúa todas las políticas de acceso, las políticas de usuario y las políticas basadas en recursos (política de bucket, lista de control de acceso (ACL) de bucket y ACL de objeto) relevantes.
nota
Si la comprobación de permisos de Amazon S3 no encuentra permisos válidos, se devuelve un error de permiso denegado de acceso denegado (403 Prohibido). Para obtener más información, consulte Solución de errores de acceso denegado (403 Prohibido) en Amazon S3.
Para determinar si el solicitante tiene permiso para realizar la operación específica, Amazon S3 hace lo siguiente, por orden, cuando recibe una solicitud:
-
Convierte todas las políticas de acceso relevantes (política de usuario, política de bucket y ACL) en tiempo de ejecución en un conjunto de políticas para evaluación.
-
Evalúa el conjunto de políticas resultante en los siguiente pasos. En cada paso, Amazon S3 evalúa un subconjunto de políticas en un contexto específico, en función de la autoridad del contexto.
-
Contexto de usuario: en el contexto de usuario, la cuenta principal a la que pertenece el usuario es la autoridad del contexto.
Amazon S3 evalúa un subconjunto de políticas perteneciente a la cuenta principal. Este subconjunto incluye la política de usuario que la cuenta principal asocia al usuario. Si la cuenta principal también es propietaria del recurso en la solicitud (bucket u objeto), Amazon S3 también evalúa las políticas de recursos correspondientes (política de bucket, ACL de bucket y ACL de objeto) al mismo tiempo.
El usuario debe tener permiso de la cuenta principal para realizar la operación.
Este paso se aplica solo si la solicitud la realiza un usuario en una Cuenta de AWS. Si la solicitud se realiza con las credenciales de usuario raíz de una Cuenta de AWS, Amazon S3 omite este paso.
-
Contexto de bucket: en el contexto de bucket, Amazon S3 evalúa las políticas que pertenecen a la Cuenta de AWS que posee el bucket.
Si la solicitud es para una operación de bucket, el solicitante debe tener permiso del propietario del bucket. Si la solicitud es para un objeto, Amazon S3 evalúa todas las políticas pertenecientes al propietario del bucket para verificar si el propietario del bucket no denegó explícitamente el acceso al objeto. Si se estableció una denegación explícita, Amazon S3 no autoriza la solicitud.
-
Contexto de objeto: si la solicitud es para un objeto, Amazon S3 evalúa el subconjunto de políticas perteneciente al propietario del objeto.
-
A continuación, se presentan algunos escenarios de ejemplo que ilustran cómo Amazon S3 autoriza una solicitud.
ejemplo - El solicitante es una entidad principal de IAM
Si el solicitante es una entidad principal de IAM, Amazon S3 debe determinar si la Cuenta de AWS principal a la que pertenece esa entidad principal le concedió a esta el permiso necesario para realizar la operación. Además, si la solicitud es para una operación de bucket, como una solicitud para mostrar el contenido del bucket, Amazon S3 debe verificar que el propietario del bucket le haya otorgado permiso al solicitante para realizar la operación. Para realizar una operación específica en un recurso, la entidad principal de IAM necesita permiso tanto de la Cuenta de AWS principal a la que pertenece como de la Cuenta de AWS a la que pertenece el recurso.
ejemplo - El solicitante es una entidad principal de IAM: en caso de que sea una solicitud para una operación en un objeto que el propietario del bucket no posee
Si la solicitud es para una operación en un objeto que no pertenece al propietario del bucket, además de asegurarse de que el solicitante tenga permisos del propietario del objeto, Amazon S3 también debe revisar la política de bucket para asegurarse de que el propietario del bucket no haya establecido la denegación explícita en el objeto. El propietario del bucket (que paga la factura) puede denegar explícitamente el acceso a los objetos del bucket independientemente de quién sea el propietario. El propietario del bucket también puede eliminar cualquier objeto del bucket.
De forma predeterminada, cuando otra Cuenta de AWS carga un objeto en el bucket de S3, esa cuenta (el escritor del objeto) es propietario del objeto, tiene acceso a él y puede conceder acceso a él a otros usuarios a través de listas de control de acceso (ACL). Puede utilizar la propiedad de objetos para cambiar este comportamiento predeterminado de modo que las ACL estén desactivadas y, como propietario del bucket, tenga automáticamente la propiedad de todos los objetos del bucket. Como resultado, el control de acceso de los datos se basa en políticas, tales como las políticas de usuario de IAM, las políticas de bucket de S3, las políticas de puntos de conexión de nube privada virtual (VPC) y las políticas de control de servicios (SCP) de AWS Organizations. Para obtener más información, consulte Control de la propiedad de los objetos y desactivación de las ACL del bucket.
Para obtener más información acerca de cómo Amazon S3 evalúa las políticas de acceso para autorizar o denegar solicitudes de operaciones de buckets y operaciones con objetos, consulte los siguientes temas: