Cómo hace Amazon S3 para autorizar una solicitud para una operación de bucket
Cuando Amazon S3 recibe una solicitud para una operación de bucket, Amazon S3 convierte todos los permisos pertinentes en un conjunto de políticas para evaluar en el tiempo de ejecución. Los permisos pertinentes incluyen permisos basados en recursos (por ejemplo: políticas de bucket y listas de control de acceso a bucket) y políticas de usuario si la solicitud procede de una entidad principal de IAM. A continuación, Amazon S3 evalúa el conjunto de políticas resultante en una serie de pasos de acuerdo con un contexto específico: contexto de usuario o contexto de bucket:
-
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 (en este caso, el bucket), Amazon S3 también evalúa las políticas de recursos correspondientes (política de bucket y ACL de bucket) al mismo tiempo. Siempre que se realiza una solicitud de operación de bucket, los registros de acceso al servidor registran el ID canónico del solicitante. Para obtener más información, consulte Registro de solicitudes con registro de acceso al servidor.
-
Contexto de bucket: el solicitante debe tener permisos del propietario del bucket para realizar una operación de bucket específica. En este paso, Amazon S3 evalúa un subconjunto de políticas que pertenecen a la Cuenta de AWS que es propietaria del bucket.
El propietario del bucket puede conceder permisos mediante una política de bucket o una ACL de bucket. Si la Cuenta de AWS que es propietaria del bucket también es la cuenta principal de una entidad principal de IAM, esta puede configurar los permisos del bucket en una política de usuario.
A continuación se muestra una ilustración gráfica de la evaluación de una operación de bucket basada en el contexto.
![Ilustración que muestra la evaluación de una operación de bucket basada en el contexto.](images/AccessControlAuthorizationFlowBucketResource.png)
Los siguientes ejemplos ilustran la lógica de evaluación.
Ejemplo 1: operación de bucket solicitada por el propietario del bucket
En este ejemplo, el propietario del bucket envía una solicitud para una operación de bucket mediante el uso de credenciales raíz de la Cuenta de AWS.
![Ilustración que muestra una operación de bucket solicitada por el propietario del bucket.](images/example10-policy-eval-logic.png)
Amazon S3 realiza la evaluación de contexto de la siguiente manera:
-
Dado que la solicitud se realiza con las credenciales de usuario raíz de una Cuenta de AWS, el contexto de usuario no se evalúa.
-
En el contexto de bucket, Amazon S3 revisa la política de bucket para determinar si el solicitante tiene permiso para realizar la operación. Amazon S3 autoriza la solicitud.
Ejemplo 2: operación de bucket solicitada por una Cuenta de AWS que no es propietaria del bucket
En este ejemplo, se realiza una solicitud con credenciales de usuario raíz de la Cuenta de AWS 1111-1111-1111 para una operación de bucket perteneciente a la Cuenta de AWS 2222-2222-2222. No hay ningún usuario de IAM involucrado en esta solicitud.
![Ilustración que muestra una operación de bucket solicitada por una Cuenta de AWS que no es propietaria del bucket.](images/example20-policy-eval-logic.png)
En este ejemplo, Amazon S3 evalúa el contexto de la siguiente manera:
-
Dado que la solicitud se realiza con las credenciales de usuario raíz de una Cuenta de AWS, el contexto de usuario no se evalúa.
-
En el contexto de bucket, Amazon S3 examina la política de bucket. Si el propietario del bucket (Cuenta de AWS 2222-2222-2222) no autorizó a la Cuenta de AWS 1111-1111-1111 a realizar la operación solicitada, Amazon S3 deniega la solicitud. De lo contrario, Amazon S3 acepta la solicitud y realiza la operación.
Ejemplo 3: operación de bucket solicitada por una entidad principal de IAM cuya Cuenta de AWS principal también es propietaria del bucket
En el ejemplo, la solicitud la envía Jill, una usuaria de IAM en la Cuenta de AWS 1111-1111-1111, que también es propietaria del bucket.
![Ilustración que muestra una operación de bucket solicitada por una entidad principal de IAM y el propietario del bucket.](images/example30-policy-eval-logic.png)
Amazon S3 realiza la siguiente evaluación de contexto:
-
Dado que la solicitud surge de una entidad principal de IAM, en el contexto de usuario, Amazon S3 evalúa todas las políticas que pertenecen a la Cuenta de AWS principal para determinar si Jill cuenta con el permiso necesario para realizar la operación.
En este ejemplo, la Cuenta de AWS principal 1111-1111-1111 a la que pertenece la entidad principal también es propietaria del bucket. Como consecuencia, además de la política de usuario, Amazon S3 también evalúa la política de bucket y la ACL de bucket en el mismo contexto porque pertenecen a la misma cuenta.
-
Dado que Amazon S3 evaluó la política de bucket y la ACL de bucket como parte del contexto de usuario, no evalúa el contexto de bucket.
Ejemplo 4: operación de bucket solicitada por una entidad principal de IAM cuya Cuenta de AWS principal no es propietaria del bucket
En este ejemplo, la solicitud la envía Jill, una usuaria de IAM cuya Cuenta de AWS principal es 1111-1111-1111, pero el bucket es propiedad de otra Cuenta de AWS, 2222-2222-2222.
![Ilustración que muestra una operación de bucket solicitada por una entidad principal de IAM que no es propietaria del bucket.](images/example40-policy-eval-logic.png)
Jill necesitará contar con los permisos correspondientes de la Cuenta de AWS principal y el propietario del bucket. Amazon S3 evalúa el contexto de la siguiente manera:
-
Dado que la solicitud es de un principal de IAM, Amazon S3 evalúa el contexto de usuario mediante la revisión de las políticas estipuladas por la cuenta para verificar que Jill tenga los permisos necesarios. Si Jill tiene permiso, Amazon S3 continúa con la evaluación del contexto de bucket. Si Jill no tiene el permiso, deniega la solicitud.
-
En el contexto de bucket, Amazon S3 verifica que el propietario del bucket 2222-2222-2222 haya otorgado permiso a Jill (o a su Cuenta de AWS principal) para realizar la operación solicitada. Si Jill tiene ese permiso, Amazon S3 acepta la solicitud y realiza la operación. De lo contrario, Amazon S3 deniega la solicitud.