

# Habilitación de buckets de Amazon S3 de pago por solicitante en Athena para Spark
<a name="notebooks-spark-requester-pays"></a>

Cuando un bucket de Amazon S3 se configura para pagos por solicitante, a la cuenta del usuario que ejecuta la consulta se le cobran las tarifas de acceso y transferencia de datos asociadas a la consulta. Para obtener más información, consulte [Uso de buckets de pagos por solicitante para transferencias de almacenamiento y uso](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) en la *Guía del usuario de Amazon S3*.

En Athena para Spark, los buckets de pagos por solicitante están habilitados por sesión, no por grupo de trabajo. En un nivel superior, habilitar los buckets de pagos por solicitante incluye los siguientes pasos:

1. En la consola de Amazon S3, habilite los pagos por solicitante en las propiedades del bucket y agregue una política de bucket para especificar el acceso.

1. En la consola de IAM, cree una política de IAM para permitir el acceso al bucket y, a continuación, adjunte la política al rol de IAM que se utilizará para acceder al bucket de pagos por solicitante.

1. En Athena para Spark, agregue una propiedad de sesión para habilitar la característica de pagos por solicitante.

## Paso 1: habilitar el pago por solicitante en un bucket de Amazon S3 y agregar una política de bucket
<a name="notebooks-spark-requester-pays-enable-requester-pays-on-an-amazon-s3-bucket"></a>

**Para habilitar los pagos por solicitante en un bucket de S3**

1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3](https://console.aws.amazon.com/s3/).

1. En la lista de buckets, elija el enlace del bucket para el que desea habilitar los pagos por solicitante.

1. En la página del bucket, elija la pestaña **Propiedades**.

1. Desplácese hacia abajo hasta la sección **Pagos por solicitante** y, a continuación, elija **Editar**.

1. En la página **Editar pagos por solicitante**, seleccione **Habilitar** y, a continuación, elija **Guardar cambios**.

1. Elija la pestaña **Permisos**.

1. Elija **Editar** en la sección **Política de bucket**.

1. En la página **Editar política de bucket**, aplique la política de bucket que desee para el bucket de origen. El siguiente ejemplo de política da acceso a todas las entidades principales de AWS (`"AWS": "*"`), pero su acceso puede ser más detallado. Por ejemplo, puede que desee especificar solo un rol de IAM determinado en otra cuenta.

------
#### [ JSON ]

****  

   ```
   { "Version":"2012-10-17",		 	 	  "Statement": [ { "Sid": "Statement1", "Effect": "Allow",
       "Principal": { "AWS": "arn:aws:iam::{{111122223333}}:root" },
       "Action": "s3:*", "Resource": [
           "arn:aws:s3:::{{111122223333}}-{{us-east-1}}-{{amzn-s3-demo-bucket}}",
           "arn:aws:s3:::{{555555555555}}-{{us-east-1}}-{{amzn-s3-demo-bucket}}/*"
       ] } ] }
   ```

------

## Paso 2: crear una política de IAM y adjuntarla a un rol de IAM
<a name="notebooks-spark-requester-pays-create-an-iam-policy-and-attach-it-to-an-iam-role"></a>

Luego, cree una política de IAM que permita el acceso al bucket. A continuación, adjunte la política al rol que se utilizará para acceder al bucket de pagos por solicitante.

**Para crear una política de IAM para el bucket de pagos por solicitante y adjuntar la política a un rol**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En en el panel de navegación de la consola de IAM, elija **Políticas**.

1. Elija **Crear política**.

1. Elija **JSON**.

1. En el **Editor de políticas**, agregue una política como la que sigue:

------
#### [ JSON ]

****  

   ```
   { "Version":"2012-10-17",		 	 	  "Statement": [ { "Action": [ "s3:*" ], "Effect": "Allow",
       "Resource": [
           "arn:aws:s3:::{{111122223333}}-{{us-east-1}}-{{amzn-s3-demo-bucket}}",
           "arn:aws:s3:::{{111122223333}}-{{us-east-1}}-{{amzn-s3-demo-bucket}}/*"
       ] } ] }
   ```

------

1. Elija **Siguiente**.

1. En la página **Revisar y crear**, escriba un nombre y una descripción opcional para la política y, a continuación, elija **Crear política**.

1. Seleccione **Roles** en el panel de navegación.

1. En la página **Roles**, busque el rol que desea usar y, a continuación, elija el enlace del nombre del rol.

1. En la sección **Políticas de permisos**, elija **Agregar permisos**, **Adjuntar políticas**.

1. En la sección **Otras políticas de permisos**, active la casilla de verificación de la política que creó y, a continuación, elija **Agregar permisos**.

## Paso 3: agregar una propiedad de sesión de Athena para Spark
<a name="notebooks-spark-requester-pays-add-a-session-property"></a>

Una vez que haya configurado el bucket de Amazon S3 y los permisos asociados para los pagos por solicitante, podrá habilitar la característica en una sesión de Athena para Spark.

**Para habilitar buckets de pagos por solicitante en una sesión de Athena para Spark**

1. En el editor de cuadernos, en el menú **Session** (Sesión) de la esquina superior derecha, elija **Edit session** (Editar sesión).

1. Amplíe **Propiedades de Spark**. 

1. Seleccione **Editar en JSON**. 

1. En el editor de texto JSON, introduzca lo siguiente:

   ```
   {
     "spark.hadoop.fs.s3.useRequesterPaysHeader":"true"
   }
   ```

1. Seleccione **Save**.