Cómo hace Amazon S3 para autorizar una solicitud para una operación con objetos
Cuando Amazon S3 recibe una solicitud para una operación de bucket, convierte todos los permisos relevantes —permisos basados en recursos (lista de control de acceso [ACL] de objeto, política de bucket, ACL de bucket) y las políticas de usuario de IAM— en un conjunto de políticas para evaluar en tiempo de ejecución. Luego, evalúa el conjunto de políticas resultante en una serie de pasos. En cada paso, evalúa un subconjunto de políticas en tres contextos específicos: contexto de usuario, contexto de bucket y contexto de objeto:
-
Contexto de usuario: si el solicitante es una entidad principal de IAM, esta debe tener permiso de la Cuenta de AWS principal a la que pertenece. En este paso, Amazon S3 evalúa un subconjunto de políticas perteneciente a la cuenta principal (también denominada autoridad del contexto). Este subconjunto de políticas incluye la política de usuario que la cuenta principal asocia al principal. Si la cuenta principal también es propietaria del recurso en la solicitud (bucket u objeto), Amazon S3 evalúa las políticas de recursos correspondientes (política de bucket, ACL de bucket y ACL de objeto) al mismo tiempo.
nota
Si la Cuenta de AWS principal es propietaria del recurso (bucket u objeto), puede conceder permisos de recursos a su entidad principal de IAM mediante la política de usuario o la política de recursos.
-
Contexto de bucket: en este contexto, Amazon S3 evalúa las políticas pertenecientes a la Cuenta de AWS que es propietaria del bucket.
Si la Cuenta de AWS que es propietaria del objeto en la solicitud no es la misma que la propietaria del bucket, Amazon S3 verifica las políticas para determinar si el propietario del bucket denegó explícitamente el acceso al objeto. Si se estableció una denegación explícita en el objeto, Amazon S3 no autoriza la solicitud.
-
Contexto de objeto: el solicitante debe tener permisos del propietario del objeto para realizar una operación de objeto específica. En este paso, Amazon S3 evalúa la ACL de objeto.
nota
Si los propietarios del bucket y del objeto son los mismos, el acceso al objeto se puede conceder en la política de bucket, que se evalúa en el contexto de bucket. Si los propietarios son diferentes, los propietarios del objeto deben utilizar una ACL de objeto para conceder permisos. Si la Cuenta de AWS que es propietaria del objeto es también la cuenta principal a la que pertenece la entidad principal de IAM, esta puede configurar los permisos del objeto en una política de usuario, que se evalúa en el contexto de usuario. Para obtener más información acera del uso de estas alternativas de políticas de acceso, consulte Explicaciones que utilizan políticas para administrar el acceso a los recursos de Amazon S3.
Si, como propietario del bucket, desea tener la propiedad de todos los objetos del bucket y utilizar políticas de bucket o políticas basadas en IAM para administrar el acceso a estos objetos, puede aplicar la configuración de propietario del bucket obligatorio de Object Ownership. Con esta configuración, como propietario del bucket, tiene automáticamente la propiedad y el control total sobre cada objeto del bucket. Las ACL de bucket y objeto no se pueden editar y ya no se consideran para el acceso. Para obtener más información, consulte Control de la propiedad de los objetos y desactivación de las ACL del bucket.
A continuación se muestra una ilustración de la evaluación de una operación de objeto basada en el contexto.
Ejemplo de una solicitud de operación de objeto
En este ejemplo, Jill, la usuaria de IAM cuya Cuenta de AWS principal es 1111-1111-1111, envía una solicitud de operación de objeto (por ejemplo: GetObject
) para un objeto que pertenece a la Cuenta de AWS 3333-3333-3333 en un bucket propiedad de la Cuenta de AWS 2222-2222-2222.
Jill necesitará contar con los permisos correspondientes de la Cuenta de AWS principal, el propietario del bucket y el propietario del objeto. Amazon S3 evalúa el contexto de la siguiente manera:
-
Dado que la solicitud es de una entidad principal de IAM, Amazon S3 evalúa el contexto de usuario para verificar que la Cuenta de AWS principal 1111-1111-1111 haya otorgado a Jill el permiso necesario para realizar la operación solicitada. Si Jill tiene permiso, Amazon S3 evalúa el contexto de bucket. De lo contrario, Amazon S3 deniega la solicitud.
-
En el contexto del bucket, el propietario del bucket, la Cuenta de AWS 2222-2222-2222, es la autoridad del contexto. Amazon S3 evalúa la política de bucket para determinar si el propietario del bucket le denegó explícitamente el acceso al objeto a Jill.
-
En el contexto de objeto, la autoridad del contexto es la Cuenta de AWS 3333-3333-3333, propietaria del objeto. Amazon S3 evalúa la ACL de objeto para determinar si Jill tiene permiso para acceder al objeto. Si lo tiene, Amazon S3 autoriza la solicitud.