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-arnexecution-role-arn
\ --job-driverjob-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-arnexecution-role-arn
\ --job-driverjob-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-arnexecution-role-arn
\ --job-driverjob-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-arnexecution-role-arn
\ --job-driverjob-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-policy
Daspolicy
Feld 'kann eine maximale Länge von 2048 Zeichen haben.Die im
policy
Feldexecution-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" ] } ] }