IAMRollen für EMRFS Anfragen an Amazon S3 konfigurieren - Amazon EMR

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.

IAMRollen für EMRFS Anfragen an Amazon S3 konfigurieren

Anmerkung

Die auf dieser Seite beschriebene Funktion zur EMRFS Rollenzuweisung wurde mit der Einführung von Amazon S3 Access Grants in Amazon EMR 6.15.0 verbessert. Für eine skalierbare Zugriffskontrolllösung für Ihre Daten in Amazon S3 empfehlen wir, S3 Access Grants mit Amazon zu verwendenEMR.

Wenn eine Anwendung, die auf einem Cluster ausgeführt wird, Daten im s3://mydata Format referenziert, EMR verwendet Amazon, EMRFS um die Anfrage zu stellen. Für die Interaktion mit Amazon S3 werden die Berechtigungsrichtlinien EMRFS vorausgesetzt, die mit Ihrem EC2Amazon-Instance-Profil verknüpft sind. Es wird dasselbe EC2 Amazon-Instance-Profil verwendet, unabhängig davon, welcher Benutzer oder welche Gruppe die Anwendung ausführt, oder vom Speicherort der Daten in Amazon S3.

Wenn Sie einen Cluster mit mehreren Benutzern haben, die unterschiedliche Zugriffsebenen auf Daten in Amazon S3 benötigenEMRFS, können Sie eine Sicherheitskonfiguration mit IAM Rollen für einrichtenEMRFS. EMRFSkann je nach Benutzer oder Gruppe, die die Anfrage stellt, oder basierend auf dem Speicherort der Daten in Amazon S3 eine andere Servicerolle für EC2 Cluster-Instances annehmen. Jede IAM Rolle für EMRFS kann unterschiedliche Berechtigungen für den Datenzugriff in Amazon S3 haben. Weitere Informationen zur Servicerolle für EC2 Cluster-Instances finden Sie unterServicerolle für EC2 Cluster-Instances (EC2Instance-Profil).

Die Verwendung von benutzerdefinierten IAM Rollen für EMRFS wird in EMR Amazon-Versionen 5.10.0 und höher unterstützt. Wenn Sie eine frühere Version verwenden oder Anforderungen haben, die über die EMRFS Bereitstellung von IAM Rollen hinausgehen, können Sie stattdessen einen Anbieter für benutzerdefinierte Anmeldeinformationen erstellen. Weitere Informationen finden Sie unter Autorisieren des Zugriffs auf EMRFS Daten in Amazon S3.

Wenn Sie eine Sicherheitskonfiguration verwenden, um IAM Rollen für anzugebenEMRFS, richten Sie Rollenzuordnungen ein. Jede Rollenzuordnung spezifiziert eine IAM Rolle, die Identifikatoren entspricht. Diese Kennungen bestimmen die Grundlage für den Zugriff auf Amazon S3 überEMRFS. Die Kennungen können Benutzer, Gruppen oder Amazon-S3-Präfixe sein, die einen Datenspeicherort angeben. Wenn eine Anfrage an Amazon S3 gestellt wird und die Anfrage mit der Grundlage für den Zugriff übereinstimmt, EMRFS EMRFS lässt EC2 Cluster-Instances die entsprechende IAM Rolle für die Anfrage übernehmen. Die mit dieser Rolle verknüpften IAM Berechtigungen gelten anstelle der IAM Berechtigungen, die der Servicerolle für EC2 Cluster-Instances zugewiesen sind.

Die Benutzer und Gruppen in einer Rollenzuordnung sind Hadoop-Benutzer und -gruppen, die auf dem Cluster definiert sind. Benutzer und Gruppen werden EMRFS im Kontext der Anwendung, die sie verwendet, weitergegeben (z. B. YARN durch Identitätswechsel). Das Amazon-S3-Präfix kann ein Bucket-Spezifizierer beliebiger Tiefe sein (z. B. s3://mybucket oder s3://mybucket/myproject/mydata). Sie können mehrere Kennungen in einer einzigen Rollenzuordnung angeben, die jedoch alle vom selben Typ sein müssen.

Wichtig

IAMRollen EMRFS sorgen für die Isolierung der Benutzer der Anwendung auf Anwendungsebene. Sie bieten keine Isolierung auf Host-Ebene zwischen Benutzern auf dem Host. Jeder Benutzer mit Zugriff auf das Cluster kann die Isolation umgehen, um eine Rolle zu übernehmen.

Wenn eine Cluster-Anwendung eine Anfrage an Amazon S3 stelltEMRFS, EMRFS bewertet sie die Rollenzuordnungen in der Reihenfolge von oben nach unten, in der sie in der Sicherheitskonfiguration erscheinen. Wenn eine Anfrage, die über EMRFS gestellt wurde, keiner Kennung entspricht, EMRFS wird auf die Verwendung der Servicerolle für Cluster-Instances zurückgegriffen. EC2 Aus diesem Grund empfehlen wir, dass Sie die Richtlinien, die dieser Rolle zugeordnet werden, auf Berechtigungen in Amazon S3 begrenzen. Weitere Informationen finden Sie unter Servicerolle für EC2 Cluster-Instances (EC2Instance-Profil).

Konfigurieren von -Rollen

Bevor Sie eine Sicherheitskonfiguration mit IAM Rollen für einrichtenEMRFS, planen und erstellen Sie die Rollen und Berechtigungsrichtlinien, die den Rollen zugewiesen werden sollen. Weitere Informationen finden Sie unter Wie funktionieren Rollen für EC2 Instanzen? im IAMBenutzerhandbuch. Wir empfehlen Ihnen, bei der Erstellung von Berechtigungsrichtlinien mit der verwalteten Richtlinie zu beginnen, die der EMR Amazon-Standardrolle für zugeordnet istEC2, und diese Richtlinie dann Ihren Anforderungen entsprechend zu bearbeiten. Der standardmäßige Rollename ist EMR_EC2_DefaultRole, und die zu bearbeitende verwaltete Standardrichtlinie ist AmazonElasticMapReduceforEC2Role. Weitere Informationen finden Sie unter Servicerolle für EC2 Cluster-Instances (EC2Instance-Profil).

Aktualisieren von Vertrauensrichtlinien, um Rollenberechtigungen zu übernehmen

Jede Rolle, die EMRFS verwendet wird, muss über eine Vertrauensrichtlinie verfügen, die es der EMR Amazon-Rolle des Clusters ermöglicht, diese EC2 zu übernehmen. Ebenso EC2 muss die EMR Amazon-Rolle für des Clusters über eine Vertrauensrichtlinie verfügen, die es EMRFS Rollen ermöglicht, sie zu übernehmen.

Das folgende Beispiel für eine Vertrauensrichtlinie ist Rollen für zugeordnetEMRFS. Die Anweisung ermöglicht es der EMR Amazon-Standardrolle fürEC2, die Rolle zu übernehmen. Wenn Sie beispielsweise zwei fiktive EMRFS Rollen haben EMRFSRole_First und EMRFSRole_Second diese Richtlinienerklärung zu den Vertrauensrichtlinien für jede dieser Rollen hinzugefügt wird.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::AWSAcctID:role/EMR_EC2_DefaultRole" }, "Action":"sts:AssumeRole" } ] }

Darüber hinaus wird das folgende Beispiel für eine Vertrauensrichtlinien-Erklärung EMR_EC2_DefaultRole zu der hinzugefügt, damit die beiden fiktiven EMRFS Rollen sie übernehmen können.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS": ["arn:aws:iam::AWSAcctID:role/EMRFSRole_First", "arn:aws:iam::AWSAcctID:role/EMRFSRole_Second"] }, "Action":"sts:AssumeRole" } ] }
Um die Vertrauensrichtlinie einer Rolle zu aktualisieren IAM

Öffnen Sie die IAM Konsole unter https://console.aws.amazon.com/iam/.

  1. Wählen Sie Roles (Rollen), geben Sie den Namen der Rolle unter Search (Suche) ein und wählen Sie dann Role name (Rollenname) aus.

  2. Wählen Sie auf der Registerkarte Trust Relationships (Vertrauensbeziehungen) Edit Trust Relationship (Vertrauensbeziehung bearbeiten) aus.

  3. Fügen Sie eine Vertrauensanweisung gemäß dem Richtliniendokument und den Richtlinien oben hinzu und wählen Sie dann Vertrauensrichtlinie updaten.

Angeben einer Rolle als Schlüsselbenutzer

Wenn eine Rolle den Zugriff auf einen Speicherort in Amazon S3 zulässt, der mit einem AWS KMS key verschlüsselt ist, muss die Rolle als Schlüsselbenutzer angegeben werden. Dadurch erhält die Rolle die Erlaubnis, den KMS Schlüssel zu verwenden. Weitere Informationen finden Sie unter Schlüsselrichtlinien in AWS KMS im Entwicklerhandbuch für AWS Key Management Service .

Richten Sie eine Sicherheitskonfiguration mit IAM Rollen für ein EMRFS

Wichtig

Wenn keine der von Ihnen angegebenen IAM Rollen zutrifft, EMRFS greifen Sie auf die EMR Amazon-Rolle für zurückEC2. EMRFS Sie sollten die Berechtigungen dieser Rolle auf Amazon S3 einschränken wie für Ihre Anwendung erforderlich, und dann diese benutzerdefinierte Rolle anstelle von EMR_EC2_DefaultRole angeben, wenn Sie einen Cluster erstellen. Weitere Informationen erhalten Sie unter Passen Sie IAM Rollen an und Geben Sie beim Erstellen eines Clusters benutzerdefinierte IAM Rollen an.

So geben Sie IAM Rollen für EMRFS Anfragen an Amazon S3 mithilfe der Konsole an
  1. Erstellen Sie eine Sicherheitskonfiguration, die Rollenzuordnungen spezifiziert:

    1. Wählen Sie in der EMR Amazon-Konsole Sicherheitskonfigurationen, Erstellen aus.

    2. Geben Sie in Name (Name) einen Namen für die Sicherheitskonfiguration ein. Verwenden Sie diesen Namen zum Angeben der Sicherheitskonfiguration, wenn Sie einen Cluster erstellen.

    3. Wählen Sie IAM Rollen für EMRFS Anfragen an Amazon S3 verwenden.

    4. Wählen Sie eine IAMRolle aus, die Sie beantragen möchten, und wählen Sie unter Basis für den Zugriff einen Identifikationstyp (Benutzer, Gruppen oder S3-Präfixe) aus der Liste aus und geben Sie die entsprechenden Kennungen ein. Wenn Sie mehrere Kennungen verwenden, trennen Sie diese durch Komma (ohne Leerzeichen dazwischen) voneinander ab. Weitere Informationen zu den einzelnen ID-Typen finden Sie unten in der JSON configuration reference.

    5. Wählen Sie Add role (Rolle hinzufügen) aus, um zusätzliche Rollenzuordnungen einzurichten wie im vorherigen Schritt beschrieben.

    6. Richten Sie weitere Sicherheitskonfigurationsoptionen ein wie erforderlich. Wählen Sie Create (Erstellen) aus. Weitere Informationen finden Sie unter Eine Sicherheitskonfiguration erstellen.

  2. Geben Sie die Sicherheitskonfiguration an, die Sie oben erstellt haben, wenn Sie einen Cluster erstellen. Weitere Informationen finden Sie unter Angabe einer Sicherheitskonfiguration für einen Cluster.

Um IAM Rollen für EMRFS Anfragen an Amazon S3 anzugeben, verwenden Sie den AWS CLI
  1. Verwenden Sie den aws emr create-security-configuration Befehl und geben Sie einen Namen für die Sicherheitskonfiguration und die Sicherheitskonfigurationsdetails im JSON Format an.

    Der unten gezeigte Beispielbefehl erstellt eine Sicherheitskonfiguration namens EMRFS_Roles_Security_Configuration. Er basiert auf einer JSON Struktur in der DateiMyEmrfsSecConfig.json, die in demselben Verzeichnis gespeichert ist, in dem der Befehl ausgeführt wird.

    aws emr create-security-configuration --name EMRFS_Roles_Security_Configuration --security-configuration file://MyEmrFsSecConfig.json.

    Verwenden Sie die folgenden Richtlinien für die Struktur der Datei MyEmrFsSecConfig.json. Sie können diese Struktur zusammen mit Strukturen für andere Sicherheitskonfigurationsoptionen angeben. Weitere Informationen finden Sie unter Eine Sicherheitskonfiguration erstellen.

    Im Folgenden finden Sie einen JSON Beispielausschnitt für die Angabe benutzerdefinierter IAM Rollen EMRFS innerhalb einer Sicherheitskonfiguration. Es zeigt Rollenzuordnungen für die drei verschiedenen Identifier-Typen, gefolgt von einer Parameterreferenz.

    { "AuthorizationConfiguration": { "EmrFsConfiguration": { "RoleMappings": [{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_user1", "IdentifierType": "User", "Identifiers": [ "user1" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_to_MyBuckets", "IdentifierType": "Prefix", "Identifiers": [ "s3://MyBucket/","s3://MyOtherBucket/" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup", "IdentifierType": "Group", "Identifiers": [ "AdminGroup" ] }] } } }
    Parameter Beschreibung

    "AuthorizationConfiguration":

    Erforderlich

    "EmrFsConfiguration":

    Erforderlich Enthält Rollenzuordnungen.

      "RoleMappings":

    Erforderlich Enthält eine oder mehrere Rollenzuordnungsdefinitionen. Rollenzuordnungen werden in der Reihenfolge bewertet, in der sie von oben nach unten angezeigt werden. Wenn eine Rollenzuweisung für einen EMRFS Datenaufruf in Amazon S3 als wahr bewertet wird, werden keine weiteren Rollenzuordnungen ausgewertet und die angegebene IAM Rolle wird für die Anfrage EMRFS verwendet. Rollenzuordnungen bestehen aus den folgenden erforderlichen Parametern:

       "Role":

    Gibt den ARN Bezeichner einer IAM Rolle im Format an. arn:aws:iam::account-id:role/role-name Dies ist die IAM Rolle, die Amazon EMR übernimmt, wenn die EMRFS Anfrage an Amazon S3 mit einer der Identifiers angegebenen Anforderungen übereinstimmt.

       "IdentifierType":

    Kann einer der folgenden sein:

    • "User" gibt an, dass es sich bei den Kennungen um einen oder mehrere Hadoop-Benutzer handelt, bei denen es sich um Linux-Kontobenutzer oder Kerberos-Prinzipale handeln kann. Wenn die EMRFS Anfrage von dem oder den angegebenen Benutzern stammt, wird die IAM Rolle übernommen.

    • "Prefix" gibt an, dass der Identifier ein Amazon-S3-Speicherort ist. Die IAM Rolle wird für Anrufe an den Standort oder die Standorte mit den angegebenen Präfixen übernommen. Das Präfix s3://mybucket/ entspricht beispielsweise s3://mybucket/mydir und s3://mybucket/yetanotherdir.

    • "Group" gibt an, dass es sich bei den Identifikatoren um eine oder mehrere Hadoop-Gruppen handelt. Die IAM Rolle wird übernommen, wenn die Anfrage von einem Benutzer in der oder den angegebenen Gruppen stammt.

       "Identifiers":

    Gibt einen oder mehrere Kennungen des entsprechenden Kennungstyps an. Trennen Sie mehrere Bezeichner durch Kommas ohne Leerzeichen.

  2. Verwenden Sie den Befehl aws emr create-cluster, um einen Cluster einzurichten, und geben Sie die Sicherheitskonfiguration an, die Sie im vorherigen Schritt erstellt haben.

    Im folgenden Beispiel wird ein Cluster erstellt, bei dem Standard-Core-Hadoop-Anwendungen installiert sind. Der Cluster verwendet die oben erstellte Sicherheitskonfiguration als EMRFS_Roles_Security_Configuration und verwendet auch eine benutzerdefinierte EMR Amazon-Rolle für EC2EC2_Role_EMR_Restrict_S3,, die mit dem InstanceProfile Argument des --ec2-attributes Parameters angegeben wird.

    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 --name MyEmrFsS3RolesCluster \ --release-label emr-7.2.0 --ec2-attributes InstanceProfile=EC2_Role_EMR_Restrict_S3,KeyName=MyKey \ --instance-type m5.xlarge --instance-count 3 \ --security-configuration EMRFS_Roles_Security_Configuration