Autoriser l'accès aux EMRFS données dans Amazon S3 - 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.

Autoriser l'accès aux EMRFS données dans Amazon S3

Par défaut, le EMR rôle pour EC2 détermine les autorisations d'accès aux EMRFS données dans Amazon S3. Les IAM politiques associées à ce rôle s'appliquent quel que soit l'utilisateur ou le groupe qui fait la demandeEMRFS. L’argument par défaut est EMR_EC2_DefaultRole. Pour plus d'informations, consultez la section Rôle de service pour les EC2 instances de cluster (profil d'EC2instance).

À partir de la EMR version 5.10.0 d'Amazon, vous pouvez utiliser une configuration de sécurité pour spécifier les IAM rôles pour. EMRFS Cela vous permet de personnaliser les autorisations pour les EMRFS demandes adressées à Amazon S3 pour les clusters comportant plusieurs utilisateurs. Vous pouvez définir différents IAM rôles pour différents utilisateurs et groupes, ainsi que pour différents emplacements de compartiment Amazon S3 en fonction du préfixe dans Amazon S3. Lorsque vous EMRFS envoyez une demande à Amazon S3 qui correspond à des utilisateurs, à des groupes ou à des emplacements que vous spécifiez, le cluster utilise le rôle correspondant que vous spécifiez au lieu du EMR rôle pour lequelEC2. Pour plus d'informations, consultez Configurer IAM les rôles pour les EMRFS demandes adressées à Amazon S3.

Sinon, si les exigences de votre EMR solution Amazon vont au-delà IAM des rôles EMRFS fournis, vous pouvez définir une classe de fournisseur d'informations d'identification personnalisée, qui vous permet de personnaliser l'accès aux EMRFS données dans Amazon S3.

Création d'un fournisseur d'informations d'identification personnalisé pour EMRFS les données dans Amazon S3

Pour créer un fournisseur d'informations d'identification personnalisé, vous implémentez les AWSCredentialsProviderclasses et Hadoop Configurable.

Pour une explication détaillée de cette approche, voir Analyser en toute sécurité les données d'un autre AWS compte EMRFS dans le blog AWS Big Data. Le billet de blog inclut un didacticiel qui vous guide tout au long du processusend-to-end, de la création de IAM rôles au lancement du cluster. Il fournit aussi un exemple de code Java qui implémente la classe fournisseur d'informations d'identification personnalisées.

La procédure de base est la suivante :

Pour spécifier un fournisseur d'informations d'identification personnalisées
  1. Créez une classe de fournisseur d'informations d'identification personnalisée compilée sous forme de JAR fichier.

  2. Exécutez un script sous forme d'action de démarrage pour copier le JAR fichier du fournisseur d'informations d'identification personnalisé à l'/usr/share/aws/emr/emrfs/auxlibemplacement du nœud principal du cluster. Pour plus d'informations sur les actions d'amorçage, consultez (Facultatif) Création d'actions d'amorçage pour installer des logiciels supplémentaires.

  3. Personnalisez la emrfs-site classification pour spécifier la classe que vous implémentez dans le JAR fichier. Pour plus d'informations sur la spécification d'objets de configuration pour personnaliser les applications, consultez la section Configuration des applications dans le Amazon EMR Release Guide.

    L'exemple suivant illustre une commande create-cluster qui lance un cluster Hive avec les paramètres de configuration courants et qui inclut également :

    • Une action d'amorçage qui exécute le script, copy_jar_file.sh, enregistré sur mybucket dans Amazon S3.

    • Une emrfs-site classification qui spécifie un fournisseur d'informations d'identification personnalisé défini dans le JAR fichier comme MyCustomCredentialsProvider

    Note

    Les caractères de continuation de ligne Linux (\) sont inclus pour des raisons de lisibilité. Ils peuvent être supprimés ou utilisés dans les commandes Linux. Pour Windows, supprimez-les ou remplacez-les par un caret (^).

    aws emr create-cluster --applications Name=Hive \ --bootstrap-actions '[{"Path":"s3://mybucket/copy_jar_file.sh","Name":"Custom action"}]' \ --ec2-attributes '{"KeyName":"MyKeyPair","InstanceProfile":"EMR_EC2_DefaultRole",\ "SubnetId":"subnet-xxxxxxxx","EmrManagedSlaveSecurityGroup":"sg-xxxxxxxx",\ "EmrManagedMasterSecurityGroup":"sg-xxxxxxxx"}' \ --service-role EMR_DefaultRole_V2 --enable-debugging --release-label emr-7.2.0 \ --log-uri 's3n://my-emr-log-bucket/' --name 'test-awscredentialsprovider-emrfs' \ --instance-type=m5.xlarge --instance-count 3 \ --configurations '[{"Classification":"emrfs-site",\ "Properties":{"fs.s3.customAWSCredentialsProvider":"MyAWSCredentialsProviderWithUri"},\ "Configurations":[]}]'