Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Autorisieren des Zugriffs auf EMRFS Daten in Amazon S3
Standardmäßig EC2 bestimmt die EMR Rolle für die Berechtigungen für den Zugriff auf EMRFS Daten in Amazon S3. Die mit dieser Rolle verknüpften IAM Richtlinien gelten unabhängig davon, über welchen Benutzer oder welche Gruppe die Anfrage gestellt hatEMRFS. Der Standardwert ist EMR_EC2_DefaultRole
. Weitere Informationen finden Sie unter Servicerolle für EC2 Clusterinstanzen (EC2Instanzprofil).
Ab der EMR Amazon-Release-Version 5.10.0 können Sie eine Sicherheitskonfiguration verwenden, um IAM Rollen für EMRFS festzulegen. Auf diese Weise können Sie die Berechtigungen für EMRFS Anfragen an Amazon S3 für Cluster mit mehreren Benutzern anpassen. Sie können verschiedene IAM Rollen für verschiedene Benutzer und Gruppen sowie für verschiedene Amazon S3-Bucket-Standorte basierend auf dem Präfix in Amazon S3 angeben. Wenn EMRFS eine Anfrage an Amazon S3 gestellt wird, die den von Ihnen angegebenen Benutzern, Gruppen oder Standorten entspricht, verwendet der Cluster die entsprechende Rolle, die Sie angeben, anstelle der EMR Rolle fürEC2. Weitere Informationen finden Sie unter IAM Rollen für EMRFS Anfragen an Amazon S3 konfigurieren.
Wenn Ihre EMR Amazon-Lösung Anforderungen EMRFS stellt, die über die IAM Rollen hinausgehen, können Sie alternativ eine Anbieterklasse für benutzerdefinierte Anmeldeinformationen definieren, mit der Sie den Zugriff auf EMRFS Daten in Amazon S3 anpassen können.
Einen Anbieter für benutzerdefinierte Anmeldeinformationen für EMRFS Daten in Amazon S3 erstellen
Um einen Anbieter für benutzerdefinierte Anmeldeinformationen zu erstellen, implementieren Sie die Klassen AWSCredentialsProviderund Hadoop Configurable
Eine ausführliche Erläuterung dieses Ansatzes finden Sie unter Daten aus einem anderen AWS Konto sicher analysieren mit EMRFS
Die grundlegenden Schritte sind wie folgt:
So definieren Sie einen benutzerdefinierten Anmeldeinformationsanbieter
Erstellen Sie eine benutzerdefinierte Anbieterklasse für Anmeldeinformationen, die als JAR Datei kompiliert wurde.
Führen Sie ein Skript als Bootstrap-Aktion aus, um die JAR Anbieterdatei für benutzerdefinierte Anmeldeinformationen an den
/usr/share/aws/emr/emrfs/auxlib
Speicherort auf dem Master-Knoten des Clusters zu kopieren. Weitere Informationen zu Bootstrap-Aktionen finden Sie unter (Optional) Erstellen von Bootstrap-Aktionen zum Installieren zusätzlicher Software.-
Passen Sie die
emrfs-site
Klassifizierung an, um die Klasse anzugeben, die Sie in der JAR Datei implementieren. Weitere Informationen zur Angabe von Konfigurationsobjekten zur Anpassung von Anwendungen finden Sie unter Konfiguration von Anwendungen im EMRAmazon-Versionshandbuch.Das folgende Beispiel zeigt einen
create-cluster
-Befehl, der einen Hive-Cluster mit üblichen Konfigurationsparametern startet und außerdem Folgendes umfasst:Eine Bootstrap-Aktion, die das Skript
ausführt, das incopy_jar_file.sh
in Amazon S3 gespeichert wird.amzn-s3-demo-bucket
Eine
emrfs-site
Klassifizierung, die einen Anbieter für benutzerdefinierte Anmeldeinformationen spezifiziert, der in der JAR Datei wie folgt definiert istMyCustomCredentialsProvider
Anmerkung
Linux-Zeilenfortsetzungszeichen (\) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).
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.5.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":[]}]'