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.
Autorisation d'accès aux données EMRFS dans Amazon S3
Par défaut, le rôle EMR pour EC2 détermine les autorisations d'accès aux données EMRFS dans Amazon S3. Les politique IAM qui sont attachées à ce rôle s'appliquent, quel que soit l'utilisateur ou le groupe qui effectuent la demande via le système EMRFS. 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'EC2 instance).
À partir de la version 5.10.0 d'Amazon EMR, vous pouvez utiliser une configuration de sécurité pour spécifier les rôles IAM pour EMRFS. Cela vous permet de personnaliser les autorisations pour les demandes EMRFS à Amazon S3 pour les clusters ayant plusieurs utilisateurs. Vous pouvez spécifier différents rôles IAM pour différents utilisateurs et groupes, et pour différents emplacements de compartiment Amazon S3 en fonction du préfixe dans Amazon S3. Lorsqu'EMRFS envoie une demande à Amazon S3 qui correspond aux utilisateurs, aux groupes ou aux emplacements que vous spécifiez, le cluster utilise le rôle correspondant que vous spécifiez au lieu du rôle EMR pour lequel vous spécifiez. EC2 Pour plus d'informations, consultez Configuration de rôles IAM pour les demandes EMRFS à Amazon S3.
Sinon, si les exigences de votre solution Amazon EMR ne sont pas couvertes par les rôles IAM pour EMRFS, vous pouvez définir une classe de fournisseur d'informations d'identification personnalisées, ce qui vous permet de personnaliser l'accès aux données EMRFS dans Amazon S3.
Création d'un fournisseur d'informations d'identification personnalisées pour les données EMRFS dans Amazon S3
Pour créer un fournisseur d'informations d'identification personnalisé, vous implémentez les classes AWSCredentialsProvider 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 avec EMRFS
La procédure de base est la suivante :
Pour spécifier un fournisseur d'informations d'identification personnalisées
Créez une classe fournisseur d'informations d'identification personnalisées compilée comme fichier JAR.
Exécutez un script comme action d'amorçage pour copier le fichier JAR du fournisseur d'informations d'identification personnalisées sur l'emplacement
/usr/share/aws/emr/emrfs/auxlib
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.-
Personnalisez la classification
emrfs-site
pour spécifier la classe que vous implémentez dans le fichier JAR. Pour plus d'informations sur la spécification d'objets de configuration pour personnaliser les applications, consultez la section Configuration des applications dans le Guide de version Amazon EMR.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,
, enregistré surcopy_jar_file.sh
dans Amazon S3.amzn-s3-demo-bucket
Une classification
emrfs-site
qui spécifie un fournisseur d'informations d'identification personnalisées défini dans le fichier JAR commeMyCustomCredentialsProvider
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://amzn-s3-demo-bucket/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-labelemr-7.6.0
\ --log-uri 's3n://amzn-s3-demo-bucket
/' --name 'test-awscredentialsprovider-emrfs' \ --instance-type=m5.xlarge --instance-count 3 \ --configurations '[{"Classification":"emrfs-site",\ "Properties":{"fs.s3.customAWSCredentialsProvider":"MyAWSCredentialsProviderWithUri"},\ "Configurations":[]}]'