Resultados de consultas gerenciadas
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
eGetQueryResultsStream
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
-
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
eGetQueryResultsStream
do IAM no grupo de trabalho específico. A açãoGetQueryResults
determina quem pode recuperar os resultados de uma consulta concluída em um formato paginado, enquanto a açãoGetQueryResultsStream
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.
-
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
Para criar um grupo de trabalho ou atualizar um grupo de trabalho existente com resultados de consultas gerenciadas no console:
-
Abra o console do Athena em https://console.aws.amazon.com/athena/
. No menu à esquerda, escolha Workgroups.
Escolha Create Workgroup para criar um novo grupo de trabalho ou editar um grupo de trabalho existente na lista.
-
Em Query result configuration, escolha Athena managed.
-
Em Encrypt query results, escolha a opção de criptografia desejada. Para obter mais informações, consulte Escolha a criptografia do resultado da consulta.
-
Preencha todos os outros detalhes necessários e escolha Save changes.
Escolha a criptografia do resultado da consulta
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. 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 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. 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.
Para obter mais informações sobre a criptografia de resultados de consultas gerenciadas, consulte Criptografar resultados de consultas gerenciadas.