

# Habilitar buckets do Amazon S3 de pagamento pelo solicitante no Athena para Spark
<a name="notebooks-spark-requester-pays"></a>

Quando um bucket do Amazon S3 é configurado como pagamento pelo solicitante, a conta do usuário que executa a consulta é cobrada pelas taxas de acesso e transferência de dados associadas à consulta. Para obter mais informações, consulte [Configuração de buckets de Pagamento pelo solicitante para transferências de armazenamento e uso](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) no *Guia do usuário do Amazon S3*.

No Athena para Spark, os buckets de pagamentos pelo solicitante são habilitados por sessão, não por grupo de trabalho. Em um nível alto, habilitar os buckets de pagamentos pelo solicitante inclui as seguintes etapas:

1. No console do Amazon S3, habilite os pagamentos pelo solicitante nas propriedades do bucket e adicione uma política de bucket para especificar o acesso.

1. No console do IAM, crie uma política do IAM para permitir o acesso ao bucket e, em seguida, anexe a política ao perfil do IAM que será usado para acessar o bucket de pagamentos pelo solicitante.

1. No Athena para Spark, adicione uma propriedade de sessão para habilitar o recurso de pagamento pelo solicitante.

## Etapa 1: habilitar pagamento pelo solicitante em um bucket do Amazon S3 e adicionar uma política de bucket
<a name="notebooks-spark-requester-pays-enable-requester-pays-on-an-amazon-s3-bucket"></a>

**Habilitar o pagamento pelo solicitante para um bucket do Amazon S3**

1. Abra o console do Amazon S3, em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Na lista de buckets, escolha o link do bucket para o qual você deseja habilitar o pagamento pelo solicitante.

1. Na página do bucket, escolha a aba **Propriedades**.

1. Role para baixo até a seção **Pagamentos pelo solicitante** e depois escolha **Editar**.

1. Na página **Editar pagamentos pelo solicitante**, escolha **Habilitar** e, em seguida, escolha **Salvar alterações**.

1. Escolha a aba **Permissions** (permissões).

1. Na seção **Política de bucket**, escolha **Editar**.

1. Na página **Editar política de bucket**, aplique a política de bucket que você deseja ao bucket de origem. O exemplo de política a seguir dá acesso a todas as entidades principais da AWS (`"AWS": "*"`), mas seu acesso pode ser mais granular. Por exemplo, talvez você queira especificar somente um perfil do IAM específico em outra conta.

------
#### [ 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}}/*"
       ] } ] }
   ```

------

## Etapa 2: criar uma política do IAM e anexá-la a um perfil do IAM
<a name="notebooks-spark-requester-pays-create-an-iam-policy-and-attach-it-to-an-iam-role"></a>

Depois, você cria uma política do IAM para permitir acesso ao bucket. Em seguida, você anexa a política ao perfil que será usado para acessar o bucket de pagamentos pelo solicitante.

**Criar uma política do IAM para o bucket de pagamentos pelo solicitante e anexá-la a um perfil**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação do console IAM, escolha **Políticas**.

1. Escolha **Create policy**.

1. Escolha **JSON**.

1. No **Editor de política**, adicione uma política como a seguinte:

------
#### [ 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. Escolha **Next** (próximo).

1. Na página **Revisar e criar**, digite um nome e uma descrição opcional para a política e, em seguida, escolha **Criar política**.

1. No painel de navegação, escolha **Perfis**.

1. Na página **Perfis**, localize o perfil que você deseja usar e escolha o link do nome do perfil.

1. Na seção **Políticas de permissões**, escolha **Adicionar permissões**, **Anexar políticas**.

1. Na seção **Outras políticas de permissões**, selecione a caixa de seleção da política que você criou e escolha **Adicionar permissões**.

## Etapa 3: adicionar uma propriedade de sessão do Athena para Spark
<a name="notebooks-spark-requester-pays-add-a-session-property"></a>

Depois de configurar o bucket do Amazon S3 e as permissões associadas para pagamentos pelo solicitante, você pode habilitar o atributo em uma sessão do Athena para Spark.

**Habilitar buckets de pagamentos pelo solicitante em uma sessão do Athena para Spark**

1. No editor do notebook, no menu **Session** (sessão) no canto superior direito, escolha **Edit session** (editar sessão).

1. Expanda as **propriedades do Spark**. 

1. Escolha **Editar em JSON**. 

1. No editor de texto JSON, insira o seguinte:

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

1. Escolha **Salvar**.