Amazon Athena
Guide de l'utilisateur

Chiffrement au repos

Vous pouvez exécuter des requêtes dans Amazon Athena sur les données chiffrées dans Amazon S3 de la même région. Vous pouvez également chiffrer les résultats de la requête dans Amazon S3 et les données dans le AWS Glue Data Catalog.

Vous pouvez chiffrer les ressources suivantes dans Athena :

Options de chiffrement Amazon S3 prises en charge

Athena prend en charge les options de chiffrement Amazon S3 suivantes, à la fois pour les ensembles de données chiffrés dans Amazon S3 de la même région et pour les résultats de requête chiffrés :

  • Chiffrement côté serveur (SSE) avec une clé gérée par Amazon S3 (SSE-S3)

  • Chiffrement côté serveur (SSE) avec une clé gérée par le client AWS Key Management Service (SSE-KMS).

  • Chiffrement côté client (CSE) avec une clé gérée par le client AWS KMS (CSE-KMS)

Note

Avec SSE-KMS, Athena n'exige pas que vous indiquiez que les données sont chiffrées lors de la création d'une table.

Pour plus d'informations sur le chiffrement AWS KMS avec Amazon S3, consultez Présentation d'AWS Key Management Service et Comment Amazon Simple Storage Service (Amazon S3) utilise AWS KMS dans le AWS Key Management Service Developer Guide.

Athena ne prend pas en charge SSE avec les clés fournies par le client (SSE-C), ni le chiffrement côté client à l'aide d'une clé principale côté client. Pour comparer les options de chiffrement Amazon S3, consultez Protection des données à l'aide d'un chiffrement dans le Amazon Simple Storage Service Manuel du développeur.

Athena ne prend pas en charge l'exécution des requêtes à partir d'une région sur des données chiffrées, stockées dans Amazon S3, dans une autre région.

Important

La configuration de l'interrogation d'un ensemble de données chiffré dans Amazon S3 et les options dans Athena pour chiffrer les résultats de requête sont indépendantes. Chaque option est activée et configurée séparément. Vous pouvez utiliser des méthodes ou des clés de chiffrement différentes pour chacune. Cela signifie que la lecture de données chiffrées dans Amazon S3 ne chiffre pas automatiquement les résultats de requête Athena dans Amazon S3. L'inverse est également vrai. Le chiffrement des résultats de requête Athena dans Amazon S3 ne chiffre pas l'ensemble de données sous-jacent dans Amazon S3.

Que vous utilisiez ou non des options pour le chiffrement des données au repos dans Amazon S3, le protocole TLS chiffre les objets en transit entre les ressources Athena et entre Athena et Amazon S3. Les résultats de requête qui diffusent en continu vers les clients JDBC ou ODBC sont chiffrés à l'aide du protocole TLS.

Autorisations sur les données chiffrées dans Amazon S3

Selon le type de chiffrement que vous utilisez dans Amazon S3, vous pouvez être amené à ajouter des autorisations, également appelées actions « Autoriser », aux stratégies utilisées dans Athena :

  • SSE-S3 – Si vous utilisez SSE-S3 pour le chiffrement, les utilisateurs Athena n'ont besoin d'aucune autorisation supplémentaire dans leurs stratégies. Il est suffisant de disposer des autorisations Amazon S3 appropriées pour l'emplacement Amazon S3 approprié et pour les actions Athena. Pour en savoir plus sur les stratégies qui accordent les autorisations Athena et Amazon S3 appropriées, consultez Stratégies IAM pour l'accès utilisateur et Autorisations Amazon S3.

  • AWS KMS – Si vous utilisez AWS KMS pour le chiffrement, les utilisateurs Athena doivent être autorisés à effectuer des actions AWS KMS spécifiques en plus des autorisations Athena et Amazon S3. Vous autorisez ces actions en modifiant la stratégie de clé pour les clés gérées par le client AWS KMS (CMK) qui sont utilisées pour chiffrer les données dans Amazon S3. La manière la plus simple de procéder consiste à utiliser la console IAM pour ajouter des utilisateurs clés aux stratégies de clé AWS KMS appropriées. Pour obtenir des informations sur la manière d'ajouter un utilisateur à une stratégie de clé AWS KMS, consultez Comment modifier une stratégie de clé dans le AWS Key Management Service Developer Guide.

    Note

    Les administrateurs de stratégie de clé avancés peuvent affiner les stratégies de clé. kms:Decrypt est l'action minimale autorisée permettant à un utilisateur Athena d'utiliser un ensemble de données chiffré. Pour utiliser des résultats de requête chiffrés, les actions minimales autorisées sont kms:GenerateDataKey et kms:Decrypt.

    Lorsque vous utilisez Athena pour interroger des ensembles de données dans Amazon S3 avec un grand nombre d'objets chiffrés par AWS KMS, AWS KMS peut limiter les résultats de requête. Ceci est plus probable lorsqu'il y a un grand nombre de petits objets. Athena collecte les demandes de nouvelles tentatives, mais une erreur de limitation peut encore se produire. Dans ce cas, visitez le Centre de support AWS et demandez à augmenter votre limite. Pour plus d'informations sur les limites et les limitations AWS KMS, consultez Limites dans le AWS Key Management Service Developer Guide.

Chiffrement des résultats de requête stockés dans Amazon S3

La configuration du chiffrement des résultats de requête s'effectue à l'aide de la console Athena. Les groupes de travail vous permettent d'appliquer le chiffrement des résultats de la requête.

Si vous vous connectez à l'aide du pilote JDBC ou ODBC, vous configurez les options du pilote pour spécifier le type de chiffrement à utiliser et l'emplacement du répertoire Amazon S3 intermédiaire. Pour configurer le pilote JDBC pour chiffrer vos résultats de requête en utilisant l'un des protocoles de chiffrement qu'Athena prend en charge, consultez Connexion à Amazon Athena avec des pilotes ODBC et JDBC.

Vous pouvez configurer le paramètre pour le chiffrement des résultats de requête de deux manières :

  • Client-side settings – Lorsque vous utilisez Settings (Paramètres) dans la console ou les opérations d'API pour indiquer que vous souhaitez chiffrer les résultats de requête, on parle de paramètres côté client. Les paramètres côté client incluent l'emplacement des résultats de requête et le chiffrement. Si vous les spécifiez, ils sont utilisés, sauf s'ils sont remplacés par les paramètres du groupe de travail.

  • Paramètres de groupe de travail – Lorsque vous créez ou modifiez un groupe de travail et sélectionnez le champ Override client-side settings (Remplacer les paramètres côté client), toutes les requêtes s'exécutant dans ce groupe de travail utilisent les paramètres du groupe de travail. Pour plus d'informations, consultez Les paramètres du groupe de travail remplacent les paramètres côté client. Les paramètres du groupe de travail incluent l'emplacement des résultats de requête et le chiffrement.

Pour chiffrer les résultats de requête stockés dans Amazon S3 à l'aide de la console

Important

Si votre groupe de travail a sélectionné le champ Override Client-Side Setting (Remplacer les paramètres côté client), les requêtes utilisent alors les paramètres du groupe de travail. La configuration du chiffrement et l'emplacement des résultats de requête définis dans Settings (Paramètres), les opérations d'API et les pilotes ne sont pas utilisés. Pour plus d'informations, consultez Les paramètres du groupe de travail remplacent les paramètres côté client.

  1. Dans la console Athena, choisissez Settings.

  2. Pour Query result location, entrez une valeur personnalisée ou conservez la valeur par défaut. Il s'agit du répertoire intermédiaire Amazon S3 dans lequel les résultats de requête sont stockés.

  3. Choisissez Encrypt query results.

  4. Pour Encryption type, choisissez CSE, KMS, SSE-KMS ou SSE-S3.

  5. Si vous choisissez SSE-KMS ou CSE-KMS, spécifiez la Clé de chiffrement.

    • Si votre compte a accès à une clé gérée par le client AWS KMS (CMK) existante, choisissez son alias ou Entrez un ARN de clé KMS, puis entrez un ARN.

    • Si votre compte n'a pas accès à une clé gérée par le client AWS KMS (CMK) existante, choisissez Créer une clé KMS, puis ouvrez la console AWS KMS. Dans le volet de navigation, choisissez AWS managed keys (Clés gérées par AWS). Pour plus d'informations, consultez Création de clés dans le AWS Key Management Service Developer Guide.

  6. Revenez à la console Athena pour spécifier la clé par alias ou ARN, comme décrit à l'étape précédente.

  7. Choisissez Save.

Création de tables basées sur des ensembles de données chiffrés dans Amazon S3

Lorsque vous créez une table, indiquez à Athena qu'un ensemble de données est chiffré dans Amazon S3. Ceci n'est pas nécessaire lors de l'utilisation de SSE-KMS. Pour le chiffrement SSE-S3 et AWS KMS, Athena détermine les bons éléments à utiliser pour déchiffrer l'ensemble de données et créer la table. Vous n'avez donc pas besoin de fournir d'informations de clé.

Les utilisateurs qui exécutent des requêtes, y compris l'utilisateur qui crée la table, doivent avoir les autorisations appropriées comme décrit précédemment dans cette rubrique.

Important

Si vous utilisez Amazon EMR avec EMRFS pour charger des fichiers Parquet chiffrés, vous devez désactiver les chargements partitionnés en définissant fs.s3n.multipart.uploads.enabled sur false. Sinon, Athena n'est pas en mesure de déterminer la longueur des fichiers Parquet et une erreur HIVE_CANNOT_OPEN_SPLIT et une se produit. Pour plus d'informations, consultez Configuration d'un chargement partitionné pour Amazon S3 dans le Amazon EMR Guide de gestion.

Indiquez que l'ensemble de données est chiffré dans Amazon S3 de l'une des manières suivantes. Cette étape n'est pas nécessaire si SSE-KMS est utilisé.

  • Utilisez l'instruction CREATE TABLE avec une clause TBLPROPERTIES qui spécifie 'has_encrypted_data'='true'.

  • Utilisez le pilote JDBC et définissez la valeur TBLPROPERTIES comme illustré dans l'exemple précédent lorsque vous exécutez CREATE TABLE en utilisant statement.executeQuery().

  • Utilisez l'assistant Add table dans la console Athena, puis choisissez Encrypted data set lorsque vous spécifiez une valeur pour Location of input data set.

Les tables basées sur des données chiffrées dans Amazon S3 apparaissent dans la liste Base de données avec une icône de chiffrement.

Autorisations sur les métadonnées chiffrées du catalogue de données AWS Glue.

Si vous chiffrez les métadonnées dans le catalogue de données AWS Glue, vous devez ajouter des actions "kms:GenerateDataKey", "kms:Decrypt" et "kms:Encrypt" aux stratégies utilisées pour accéder à Athena. Pour obtenir des informations, consultez Accès aux métadonnées chiffrées du catalogue de données AWS Glue.