Auftragausführungsrollen mit Amazon EMR in EKS verwenden - 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.

Auftragausführungsrollen mit Amazon EMR in EKS verwenden

Um den StartJobRun Befehl zum Senden eines auf einem EKS-Cluster ausgeführten Auftrags zu verwenden, müssen Sie zunächst eine Auftragausführungsrolle integrieren, die mit einem virtuellen Cluster verwendet werden soll. Weitere Informationen finden Sie unter Erstellen einer Aufgabenausführungsrolle in Amazon einrichten EMR auf EKS. Sie können auch den Anweisungen im Abschnitt IAM-Rolle für die Auftragsausführung erstellen des Amazon EMR in EKS-Workshops folgen.

Die folgenden Berechtigungen müssen in der Vertrauensrichtlinie für die Rolle „Auftragsausführung“ enthalten sein.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::AWS_ACCOUNT_ID:oidc-provider/OIDC_PROVIDER" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "OIDC_PROVIDER:sub": "system:serviceaccount:NAMESPACE:emr-containers-sa-*-*-AWS_ACCOUNT_ID-BASE36_ENCODED_ROLE_NAME" } } } ] }

Die Vertrauensrichtlinie im vorherigen Beispiel gewährt Berechtigungen nur für ein von Amazon EMR verwaltetes Kubernetes-Servicekonto mit einem Namen, der dem Muster emr-containers-sa-*-*-AWS_ACCOUNT_ID-BASE36_ENCODED_ROLE_NAME entspricht. Servicekonten mit diesem Muster werden bei der Auftragsübermittlung automatisch erstellt und auf den Namespace beschränkt, in dem Sie den Auftrag einreichen. Diese Vertrauensrichtlinie ermöglicht es diesen Servicekonten, die Ausführungsrolle zu übernehmen und die temporären Anmeldeinformationen der Ausführungsrolle abzurufen. Servicekonten aus einem anderen Amazon-EKS-Cluster oder aus einem anderen Namespace innerhalb desselben EKS-Clusters dürfen die Ausführungsrolle nicht übernehmen.

Sie können den folgenden Befehl ausführen, um die Vertrauensrichtlinie im oben angegebenen Format automatisch zu aktualisieren.

aws emr-containers update-role-trust-policy \ --cluster-name cluster \ --namespace namespace \ --role-name iam_role_name_for_job_execution

Steuern des Zugriffs auf die Ausführungsrolle

Ein Administrator für Ihren Amazon-EKS-Cluster kann einen virtuellen Amazon-EMR-in-EKS-Cluster mit mehreren Mandanten erstellen, dem ein IAM-Administrator mehrere Ausführungsrollen hinzufügen kann. Da nicht vertrauenswürdige Mandanten diese Ausführungsrollen verwenden können, um Aufträge einzureichen, die beliebigen Code ausführen, sollten Sie diese Mandanten möglicherweise einschränken, sodass sie keinen Code ausführen können, der die Berechtigungen erhält, die einer oder mehreren dieser Ausführungsrollen zugewiesen wurden. Um die mit einer IAM-Identität verknüpfte IAM-Richtlinie einzuschränken, kann der IAM-Administrator den optionalen Bedingungsschlüssel emr-containers:ExecutionRoleArn des Amazon-Ressourcennamen (ARN) verwenden. Diese Bedingung akzeptiert eine Liste von ARNs für Ausführungsrollen, die über Berechtigungen für den virtuellen Cluster verfügen, wie die folgende Berechtigungsrichtlinie zeigt.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "emr-containers:StartJobRun", "Resource": "arn:aws:emr-containers:REGION:AWS_ACCOUNT_ID:/virtualclusters/VIRTUAL_CLUSTER_ID", "Condition": { "ArnEquals": { "emr-containers:ExecutionRoleArn": [ "execution_role_arn_1", "execution_role_arn_2", ... ] } } } ] }

Wenn Sie alle Ausführungsrollen zulassen möchten, die mit einem bestimmten Präfix beginnen, z. B. MyRole, können Sie den Bedingungsoperator ArnEquals durch den ArnLike-Operator ersetzen, und Sie können den execution_role_arn-Wert in der Bedingung durch ein Platzhalterzeichen * ersetzen. Zum Beispiel arn:aws:iam::AWS_ACCOUNT_ID:role/MyRole*. Alle anderen ARN-Bedingungsschlüssel werden ebenfalls unterstützt.

Anmerkung

Mit Amazon EMR in EKS können Sie Ausführungsrollen keine Berechtigungen auf der Grundlage von Tags oder Attributen gewähren. Amazon EMR in EKS unterstützt keine tagbasierte Zugriffskontrolle (TBAC) oder attributbasierte Zugriffskontrolle (ABAC) für Ausführungsrollen.