

# Resultados de consultas gerenciadas
<a name="managed-results"></a>

Com os resultados de consultas gerenciadas, você pode executar consultas SQL sem fornecer um bucket do Amazon S3 para armazenamento de resultados de consultas. Isso evita que você precise provisionar, gerenciar, controlar o acesso e limpar seus próprios buckets do S3. Para começar, crie um novo grupo de trabalho ou edite um grupo de trabalho existente. Em **Query result configuration**, selecione **Athena managed**. 

**Atributos principais**
+ Simplifica seu fluxo de trabalho removendo a necessidade de escolher um local de bucket do S3 antes de executar as consultas.
+ Sem custos adicionais para usar resultados de consultas gerenciadas e com a exclusão automática dos resultados da consulta, a sobrecarga administrativa e a necessidade de processos separados de limpeza de buckets do S3 são reduzidas.
+ Fácil de começar: grupos de trabalho novos e preexistentes podem ser facilmente configurados para usar resultados de consultas gerenciadas. Você pode ter uma combinação de resultados de consultas gerenciadas pelo Athena e gerenciados pelo cliente em sua conta da AWS.
+ Permissões simplificadas do IAM com acesso aos resultados de leitura através de `GetQueryResults` e `GetQueryResultsStream` vinculados a grupos de trabalho individuais.
+ Os resultados da consulta são criptografados automaticamente com sua escolha de chaves de propriedade da AWS ou chaves de propriedade do cliente.

## Considerações e limitações
<a name="managed-results-considerations"></a>

****
+ O acesso aos resultados da consulta é gerenciado no nível do grupo de trabalho no Athena. Para isso, você precisa de permissões explícitas para ações `GetQueryResults` e `GetQueryResultsStream` do IAM no grupo de trabalho específico. A ação `GetQueryResults` determina quem pode recuperar os resultados de uma consulta concluída em um formato paginado, enquanto a ação `GetQueryResultsStream` determina quem pode transmitir os resultados de uma consulta concluída (comumente usada pelos drivers do Athena).
+ Você não pode baixar arquivos de resultados de consultas maiores que 200 MB do console. Use a instrução `UNLOAD` para gravar resultados maiores que 200 MB em um local para o qual você possa baixar separadamente.
+ O atributo de resultados de consultas gerenciadas não oferece suporte à [reutilização dos resultados da consulta](reusing-query-results.md).
+ Os resultados da consulta ficam disponíveis por 24 horas. Os resultados da consulta são armazenados sem nenhum custo para você durante esse período. Após esse período, os resultados da consulta são excluídos automaticamente.

## Criar ou editar um grupo de trabalho com resultados de consultas gerenciadas
<a name="using-managed-query-results"></a>

Para criar um grupo de trabalho ou atualizar um grupo de trabalho existente com resultados de consultas gerenciadas no console:

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

1. No menu à esquerda, escolha **Workgroups**.

1. Escolha **Create Workgroup** para criar um novo grupo de trabalho ou editar um grupo de trabalho existente na lista.

1. Em **Query result configuration**, escolha **Athena managed**.   
![O menu Query result configuration.](http://docs.aws.amazon.com/pt_br/athena/latest/ug/images/athena-managed.png)

1. Em **Encrypt query results**, escolha a opção de criptografia desejada. Para obter mais informações, consulte [Escolha a criptografia do resultado da consulta](#managed-query-results-encryption-at-rest).

1. Preencha todos os outros detalhes necessários e escolha **Save changes**. 

## Escolha a criptografia do resultado da consulta
<a name="managed-query-results-encryption-at-rest"></a>

Há duas opções para essa configuração de criptografia:
+ **Criptografar usando uma chave da AWS própria**: esta é a opção padrão quando você usa resultados de consultas gerenciadas. Escolha essa opção se quiser que os resultados da consulta sejam criptografados por uma chave própria da AWS.
+ **Criptografar usando a chave gerenciada pelo cliente**: escolha esta opção se quiser criptografar e descriptografar os resultados da consulta com uma chave gerenciada pelo cliente. Para usar uma chave gerenciada pelo cliente, adicione o serviço Athena no elemento da entidade principal da seção de política de chaves. Para obter mais informações, consulte [Configurar uma política de chave do AWS KMS para resultados de consultas gerenciadas](#managed-query-results-set-up). Para executar consultas com sucesso, o usuário que executa as consultas precisa de permissão para acessar a chave do AWS KMS.

## Configurar uma política de chave do AWS KMS para resultados de consultas gerenciadas
<a name="managed-query-results-set-up"></a>

A seção `Principal` na política de chaves especifica quem pode usar essa chave. O atributo de resultados de consultas gerenciadas apresenta a entidade principal `encryption.athena.amazonaws.com` que você deve especificar na seção `Principal`. Essa entidade principal de serviço serve especificamente para acessar chaves que não são de propriedade do Athena. Você também deve adicionar as ações `kms:Decrypt`, `kms:GenerateDataKey` e `kms:DescribeKey` à política de chave que você usa para acessar os resultados gerenciados. Essas três ações são as ações mínimas permitidas.

Os resultados de consultas gerenciadas usam o ARN do seu grupo de trabalho para o [contexto de criptografia](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context). Como a seção `Principal` é um serviço da AWS, você também precisa adicionar `aws:sourceArn` e `aws:sourceAccount` as condições da política de chave. O exemplo a seguir mostra uma política de chave do AWS KMS que tem permissões mínimas em um único grupo de trabalho.

```
 {
    "Sid": "Allow athena service principal to use the key",
    "Effect": "Allow",
    "Principal": {
        "Service": "encryption.athena.amazonaws.com"
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:DescribeKey"
      ],
    "Resource": "arn:aws:kms:us-east-1:{{{account-id}}}:key/{{{key-id}}}",
    "Condition": {
    "ArnLike": {
        "kms:EncryptionContext:aws:athena:arn": "arn:aws:athena:us-east-1:{{{account-id}}}:workgroup/{{{workgroup-name}}}",
        "aws:SourceArn": "arn:aws:athena:us-east-1:{{{account-id}}}:workgroup/{{{workgroup-name}}}"
    },
    "StringEquals": {
        "aws:SourceAccount": "{{{account-id}}}"
    }
}
```

O exemplo de política de chave do AWS KMS a seguir permite que todos os grupos de trabalho dentro da mesma {{account-id}} usem a mesma chave do AWS KMS.

```
{
    "Sid": "Allow athena service principal to use the key",
    "Effect": "Allow",
    "Principal": {
        "Service": "encryption.athena.amazonaws.com"
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:DescribeKey"
    ],
    "Resource": "arn:aws:kms:us-east-1:{{account-id}}:key/{{{key-id}}}",
    "Condition": {
        "ArnLike": {
          "kms:EncryptionContext:aws:athena:arn": "arn:aws:athena:us-east-1:{{account-id}}:workgroup/*",
          "aws:SourceArn": "arn:aws:athena:us-east-1:{{account-id}}:workgroup/*"
        },
        "StringEquals": {
          "aws:SourceAccount": "{{account-id}}"
        }
    }
}
```

Além das permissões do Athena e do Amazon S3, você também deve obter permissões para realizar ações `kms:GenerateDataKey` e `kms:Decrypt`. Para obter mais informações, consulte [Permissões para dados criptografados no Amazon S3](encryption.md#permissions-for-encrypting-and-decrypting-data). 

Para obter mais informações sobre a criptografia de resultados de consultas gerenciadas, consulte [Criptografar resultados de consultas gerenciadas](encrypting-managed-results.md).