Utilisation des subventions d'accès Amazon S3 avec Amazon EMR - Amazon EMR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation des subventions d'accès Amazon S3 avec Amazon EMR

Présentation des subventions d'accès S3 pour Amazon EMR

Avec les EMR versions 6.15.0 et supérieures d'Amazon, Amazon S3 Access Grants fournit une solution de contrôle d'accès évolutive que vous pouvez utiliser pour augmenter l'accès à vos données Amazon S3 depuis Amazon. EMR Si vous disposez d’une configuration d’autorisations complexe ou importante, vous pouvez utiliser Access Grants pour mettre à l’échelle les autorisations de données S3 pour les utilisateurs, les rôles et les applications de votre cluster.

Utilisez les subventions d'accès S3 pour augmenter l'accès aux données Amazon S3 au-delà des autorisations accordées par le rôle d'exécution ou IAM des rôles attachés aux identités ayant accès à votre EMR cluster. Pour plus d’informations, voir la rubrique Gestion des accès avec S3 Access Grants du Guide de l’utilisateur Amazon S3.

Pour savoir comment utiliser S3 Access Grants avec d'autres EMR déploiements Amazon, consultez la documentation suivante :

Comment Amazon EMR fonctionne avec S3 Access Grants

EMRLes versions 6.15.0 et supérieures d'Amazon fournissent une intégration native avec S3 Access Grants. Vous pouvez activer S3 Access Grants sur Amazon EMR et exécuter des tâches Spark. Lorsqu’une tâche Spark demande à accéder aux données S3, Amazon S3 fournit des informations d’identification temporaires limitées au compartiment, au préfixe ou à l’objet concerné.

Vous trouverez ci-dessous une présentation détaillée de la manière dont Amazon EMR obtient l'accès aux données protégées par S3 Access Grants.

Comment Amazon EMR fonctionne avec S3 Access Grants
  1. Un utilisateur soumet une tâche Amazon EMR Spark qui utilise des données stockées dans Amazon S3.

  2. Amazon EMR fait une demande de subventions d'accès S3 pour autoriser l'accès au compartiment, au préfixe ou à l'objet au nom de cet utilisateur.

  3. Amazon S3 renvoie des informations d'identification temporaires sous la forme d'un jeton AWS Security Token Service (STS) pour l'utilisateur. Le jeton permet uniquement d’accéder au compartiment, au préfixe ou à l’objet S3 concerné.

  4. Amazon EMR utilise le STS jeton pour récupérer les données de S3.

  5. Amazon EMR reçoit les données de S3 et renvoie les résultats à l'utilisateur.

Considérations relatives aux subventions d'accès S3 avec Amazon EMR

Prenez note des comportements et des limites suivants lorsque vous utilisez S3 Access Grants avec AmazonEMR.

Prise en charge des fonctionnalités

  • S3 Access Grants est pris en charge par les EMR versions 6.15.0 et supérieures d'Amazon.

  • Spark est le seul moteur de requête pris en charge lorsque vous utilisez S3 Access Grants avec AmazonEMR.

  • Delta Lake et Hudi sont les seuls formats de table ouverte pris en charge lorsque vous utilisez S3 Access Grants avec Amazon. EMR

  • Les EMR fonctionnalités Amazon suivantes ne sont pas prises en charge pour une utilisation avec S3 Access Grants :

    • Tables Apache Iceberg

    • LDAPauthentification native

    • Authentification native Apache Ranger

    • AWS CLI demandes adressées à Amazon S3 qui utilisent IAM des rôles

    • Accès à S3 via le protocole open source S3A

  • L'fallbackToIAMoption n'est pas prise en charge pour les EMR clusters qui utilisent une propagation d'identité sécurisée avec IAM Identity Center.

  • S3 Access Grants with n' AWS Lake Formation est pris en charge qu'avec les EMR clusters Amazon exécutés sur AmazonEC2.

Considérations comportementales

  • L'intégration native d'Apache Ranger à Amazon EMR contient des fonctionnalités conformes à S3 Access Grants dans le cadre du plugin EMRFS S3 Apache Ranger. Si vous utilisez Apache Ranger pour un contrôle d'accès précis (FGAC), nous vous recommandons d'utiliser ce plugin au lieu de S3 Access Grants.

  • Amazon EMR fournit un cache d'informations d'identification EMRFS pour garantir qu'un utilisateur n'a pas besoin de demander à plusieurs reprises les mêmes informations d'identification dans le cadre d'une tâche Spark. Par conséquent, Amazon demande EMR toujours le privilège de niveau par défaut lorsqu'il demande des informations d'identification. Pour plus d’informations, voir la rubrique Demande d’accès aux données S3 du Guide de l’utilisateur Amazon S3.

  • Dans le cas où un utilisateur exécute une action que S3 Access Grants ne prend pas en charge, Amazon EMR est configuré pour utiliser le IAM rôle spécifié pour l'exécution de la tâche. Pour plus d’informations, consultez Retournez aux IAM rôles.

Lancez un EMR cluster Amazon avec S3 Access Grants

Cette section décrit comment lancer un EMR cluster qui s'exécute sur Amazon EC2 et utilise S3 Access Grants pour gérer l'accès aux données dans Amazon S3. Pour savoir comment utiliser S3 Access Grants avec d'autres EMR déploiements Amazon, consultez la documentation suivante :

Suivez les étapes ci-dessous pour lancer un EMR cluster qui s'exécute sur Amazon EC2 et utilise S3 Access Grants pour gérer l'accès aux données dans Amazon S3.

  1. Configurez un rôle d'exécution des tâches pour votre EMR cluster. Incluez les IAM autorisations requises dont vous avez besoin pour exécuter des tâches Spark, s3:GetDataAccess et s3:GetAccessGrantsInstanceForPrefix :

    { "Effect": "Allow", "Action": [ "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": [ //LIST ALL INSTANCE ARNS THAT THE ROLE IS ALLOWED TO QUERY "arn:aws_partition:s3:Region:account-id1:access-grants/default", "arn:aws_partition:s3:Region:account-id2:access-grants/default" ] }
    Note

    Avec AmazonEMR, les subventions d'accès S3 augmentent les autorisations définies dans les IAM rôles. Si les IAM rôles que vous spécifiez pour l'exécution des tâches contiennent des autorisations permettant d'accéder directement à S3, les utilisateurs pourront peut-être accéder à davantage de données que celles que vous définissez dans S3 Access Grants.

  2. Ensuite, utilisez le AWS CLI pour créer un cluster avec Amazon EMR 6.15 ou version ultérieure et la emrfs-site classification pour activer les subventions d'accès S3, comme dans l'exemple suivant :

    aws emr create-cluster --release-label emr-6.15.0 \ --instance-count 3 \ --instance-type m5.xlarge \ --configurations '[{"Classification":"emrfs-site", "Properties":{"fs.s3.s3AccessGrants.enabled":"true", "fs.s3.s3AccessGrants.fallbackToIAM":"false"}}]'

Subventions d'accès S3 avec AWS Lake Formation

Si vous utilisez Amazon pour EMR l'AWS Lake Formation intégration, vous pouvez utiliser Amazon S3 Access Grants pour un accès direct ou tabulaire aux données d'Amazon S3.

Note

S3 Access Grants with n' AWS Lake Formation est pris en charge qu'avec les EMR clusters Amazon exécutés sur AmazonEC2.

Accès direct

L'accès direct implique tous les appels pour accéder aux données S3 qui n'invoquent pas le service API for the AWS Glue que Lake Formation utilise comme métastore avec AmazonEMR, par exemple pour appeler : spark.read

spark.read.csv("s3://...")

Lorsque vous utilisez S3 Access Grants AWS Lake Formation sur AmazonEMR, tous les modèles d'accès direct passent par S3 Access Grants pour obtenir des informations d'identification S3 temporaires.

Accès tabulaire

L'accès tabulaire se produit lorsque Lake Formation invoque le métastore API pour accéder à votre position S3, par exemple, pour interroger les données d'une table :

spark.sql("select * from test_tbl")

Lorsque vous utilisez S3 Access Grants AWS Lake Formation sur AmazonEMR, tous les modèles d'accès tabulaires passent par Lake Formation.

Retournez aux IAM rôles

Si un utilisateur tente d'effectuer une action que S3 Access Grants ne prend pas en charge, Amazon EMR utilise par défaut le IAM rôle qui a été spécifié pour l'exécution de la tâche lors de la fallbackToIAM configuration. true Cela permet aux utilisateurs de basculer vers leur rôle d’exécution des tâches pour fournir des informations d’identification pour accéder à S3 dans les scénarios non couverts par S3 Access Grants.

Lorsque le paramètre fallbackToIAM est activé, les utilisateurs peuvent accéder aux données autorisées par Access Grants. S'il n'existe pas de jeton S3 Access Grants pour les données cibles, Amazon EMR vérifie l'autorisation associée à son rôle d'exécution des tâches.

Note

Nous vous recommandons de tester vos autorisations d’accès avec le paramètre fallbackToIAM activé, même si vous prévoyez de le désactiver pour les charges de travail de production. Avec les tâches Spark, les utilisateurs peuvent accéder à tous les ensembles d'autorisations par d'autres moyens à l'aide de leurs IAM informations d'identification. Lorsqu'elles sont activées sur EMR des clusters, les subventions de S3 permettent aux jobs Spark d'accéder aux emplacements S3. Vous devez vous assurer de protéger ces emplacements S3 contre tout accès en dehors deEMRFS. Veillez par exemple à protéger les emplacements S3 contre tout accès par des clients S3 utilisés dans les blocs-notes ou par des applications non prises en charge par S3 Access Grants comme Hive ou Presto.