2017-03-27 1 views
0

Ceci est mon scénarioHive sur les utilisateurs S3 multiples et Spark de SSFE

Je suis un passionné d'allumage et aws et je démange de mieux comprendre la technologie.

Cas 1: Mon application spark s'exécute sur un cluster EMR et l'application spark est lue depuis une ruche sur la table s3 et écrit dans une table ruche sur s3. Dans ce cas, les compartiments S3 appartiennent au même utilisateur. J'ai donc ajouté fs.s3.awsAccessKeyId et fs.s3.awsSecretAccessKey à un fichier de configuration. Dans mon cas, je l'ai ajouté au fichier hdfs-site.xml. usera avait les bonnes permissions pour accéder au seau donc pas de problème.

Cas 2: Je lis deux tables de ruche sur s3. table1 et table2. table1 appartient à user1 et table2 appartient à user2.

étant donné que je ne peux pas spécifier plusieurs awsAccessKeyId dans le fichier de configuration pour s3. [Je comprends que s3a a un concept de clés spécifiques au seau mais je n'utilise pas s3a J'utilise s3.]

comment ces scénarios sont-ils supportés dans aws EMR?

Je comprends que l'IAM, le rôle de l'instance EC2 et le rôle de profil peuvent appliquer ici

Répondre

0

Apache Hadoop 2.8 supporte la configuration par seau. AWS EMR ne le fait pas, ce que vous devrez faire avec eux.

Pour contourner le problème, vous pouvez placer des secrets dans l'URI, par ex. s3: // utilisateur: secret @ bucket, se souvenant d'encoder des caractères spéciaux dans le secret. Après cela, l'URL, les journaux et les traces de pile doivent être considérés comme des données sensibles et non partagés.

+0

merci. J'ai quelques problèmes avec votre solution. Comment n'est-ce pas un trou de sécurité et pourriez-vous partager un exemple d'encodage de caractères spéciaux. – JavaPlanet

+0

ouais J'ai vraiment des problèmes de sécurité à propos de l'ajout des informations d'identification étant inclus dans l'URI S3. C'est un gros trou de sécurité. – JavaPlanet

+0

J'ai été un peu surpris de découvrir que les gens le faisaient; J'ai essayé d'arracher les secrets de tous les journaux, mais il est difficile d'arrêter. Hadoop 2.8 dit aux gens de le faire et avertit que cela pourrait être arrêté à l'avenir. C'est juste avant la configuration par perçage, c'était la seule façon d'utiliser plusieurs identifiants –

1

Je crois que la solution à votre problème est cross-account permissions. Ainsi, vous pouvez définir l'autorisation pour user1 d'accéder au compartiment de l'utilisateur2. Vous pouvez également jeter un oeil à this aussi.