IAM-Richtlinie für die Ausführung - 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.

IAM-Richtlinie für die Ausführung

Sie können zusätzlich zu einer Ausführungsrolle eine Ausführungs-IAM-Richtlinie angeben, wenn das Senden von Jobs auf EMR Serverless ausgeführt wird. Die sich daraus ergebenden Berechtigungen, die bei der Ausführung des Jobs angenommen werden, stellen die Schnittmenge der Berechtigungen in der Ausführungsrolle und der angegebenen Ausführungs-IAM-Richtlinie dar.

Erste Schritte

Schritte zur Verwendung der Ausführungs-IAM-Richtlinie:

Erstellen Sie eine emr-serverless Anwendung oder verwenden Sie eine vorhandene und führen Sie dann die folgende AWS-CLI aus, um eine Jobausführung mit einer Inline-IAM-Richtlinie zu starten:

aws emr-serverless start-job-run --region us-west-2 \ --application-id application-id \ --execution-role-arn execution-role-arn \ --job-driver job-driver-options \ --execution-iam-policy '{"policy": "inline-policy"}'

Beispiele für CLI-Befehle

Wenn wir die folgende Richtlinie in der policy.json Datei auf dem Computer gespeichert haben:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-test-bucket", "arn:aws:s3:::my-test-bucket/*" ] } ] }

Dann können wir mit dem folgenden AWS CLI Befehl einen Job mit dieser Richtlinie starten:

aws emr-serverless start-job-run --region us-west-2 \ --application-id application-id \ --execution-role-arn execution-role-arn \ --job-driver job-driver-options --execution-iam-policy '{ "policy": "'"$(sed 's/"/\"/g' policy.json | tr -d '[:space:]')"'" }'

Sie können auch beide AWS und vom Kunden verwaltete Richtlinien verwenden und diese anhand der folgenden Optionen spezifizieren ARNs:

aws emr-serverless start-job-run --region us-west-2 \ --application-id application-id \ --execution-role-arn execution-role-arn \ --job-driver job-driver-options --execution-iam-policy '{ "policyArns": [ "arn:aws:iam::aws:policy/AmazonS3FullAccess", "arn:aws:iam::aws:policy/CloudWatchLogsFullAccess" ] }'

Es ist auch möglich, ARNs in derselben Anfrage sowohl eine Inline-IAM-Richtlinie als auch eine verwaltete Richtlinie anzugeben:

aws emr-serverless start-job-run --region us-west-2 \ --application-id application-id \ --execution-role-arn execution-role-arn \ --job-driver job-driver-options --execution-iam-policy '{ "policy": "'"$(sed 's/"/\"/g' policy.json | tr -d '[:space:]')"'", "policyArns": [ "arn:aws:iam::aws:policy/AmazonS3FullAccess", "arn:aws:iam::aws:policy/CloudWatchLogsFullAccess" ] }'

Wichtige Hinweise

  • execution-role-policyDas policy Feld 'kann eine maximale Länge von 2048 Zeichen haben.

  • Die im policy Feld execution-iam-policy's angegebene Inline-IAM-Richtlinienzeichenfolge muss dem JSON-Zeichenfolgenstandard entsprechen, ohne dass Zeilenumbrüche und Anführungszeichen maskiert werden, wie im obigen Beispiel.

  • Eine Liste mit bis zu 10 verwalteten Richtlinien ARNs kann als Wert für das execution-iam-policy Feld s angegeben werden. policyArns

  • Bei der verwalteten Richtlinie ARNs muss es sich um eine Liste gültiger AWS oder vom Kunden verwalteter Policy-ARN handeln. Wenn ein vom Kunden verwalteter Policy-ARN angegeben wird, muss die Richtlinie zu demselben AWS Konto des EMR-S JobRun gehören.

  • Wenn sowohl die Inline-IAM-Richtlinie als auch die verwalteten Richtlinien verwendet werden, darf der Klartext, den Sie sowohl für die Inline-Richtlinien als auch für die verwalteten Richtlinien zusammen verwenden, 2.048 Zeichen nicht überschreiten.

  • Die resultierenden Berechtigungen, von denen angenommen JobRun wird, sind die Schnittmenge der Berechtigungen in der Ausführungsrolle und der angegebenen Ausführungs-IAM-Richtlinie.

Überschneidung der Richtlinien

Die sich daraus ergebenden Berechtigungen, die von der Auftragsausführung angenommen werden, stellen die Schnittmenge der Berechtigungen in der Ausführungsrolle und der angegebenen Ausführungs-IAM-Richtlinie dar. Das bedeutet, dass alle erforderlichen Berechtigungen an beiden Stellen angegeben werden müssen, JobRun damit sie funktionieren. Es ist jedoch möglich, in der Inline-Richtlinie eine zusätzliche pauschale Zulassungsanweisung für alle Berechtigungen anzugeben, die Sie nicht aktualisieren oder überschreiben möchten.

Beispiel

Angesichts der folgenden IAM-Rollenrichtlinie für die Ausführung:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action":[ "logs:DescribeLogGroups" ], "Resource":[ "arn:aws:logs:us-west-2:12345678910:log-group::log-stream" ] }, { "Effect": "Allow", "Action": [ "dynamodb:DescribeTable" ], "Resource": [ "arn:aws:dynamodb:*:*:table/MyCompany1table" ] } ] }

Und die folgende Inline-IAM-Richtlinie:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-test-bucket/tenant1", "arn:aws:s3:::my-test-bucket/tenant1/*" ] }, { "Effect": "Allow", "Action":[ "logs:*", "dynamodb:*", ], "Resource":[ "*" ] } ] }

Die daraus resultierenden Berechtigungen, die von angenommen werden, lauten wie JobRun folgt:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-test-bucket/tenant1", "arn:aws:s3:::my-test-bucket/tenant1/*" ] }, { "Effect": "Allow", "Action":[ "logs:DescribeLogGroups" ], "Resource":[ "arn:aws:logs:us-west-2:12345678910:log-group::log-stream" ] }, { "Effect": "Allow", "Action": [ "dynamodb:DescribeTable" ], "Resource": [ "arn:aws:dynamodb:*:*:table/MyCompany1table" ] } ] }