Erstellen Sie einen AutoML-Job für Zeitreihenprognosen mit dem API - Amazon SageMaker

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.

Erstellen Sie einen AutoML-Job für Zeitreihenprognosen mit dem API

Prognosen beim Machine Learning beziehen sich auf den Prozess der Vorhersage zukünftiger Ergebnisse oder Trends anhand von historischen Daten und Mustern. Durch die Analyse von Zeitreihendaten aus der Vergangenheit und die Erkennung der zugrundeliegenden Muster können Machine-Learning-Algorithmen Vorhersagen treffen und wertvolle Einblicke in zukünftiges Verhalten liefern. Bei Prognosen besteht das Ziel darin, Modelle zu entwickeln, mit denen die Beziehung zwischen Eingabevariablen und Zielvariablen im zeitlichen Verlauf genau erfasst werden kann. Dabei werden verschiedene Faktoren in den Daten untersucht, wie z. B. Trends, Saisonalität und andere relevante Muster. Anhand der so gesammelten Informationen wird dann ein Machine-Learning-Modell trainiert. Das so trainierte Modell kann Vorhersagen erzeugen, indem es neue Eingabedaten verwendet und die erlernten Muster und Beziehungen darauf anwendet. Es kann Prognosen für eine Vielzahl von Anwendungsfällen liefern, z. B. Verkaufsprognosen, Börsentrends, Wettervorhersagen, Nachfrageprognosen u.v.m.

Die folgenden Anweisungen zeigen, wie Sie mithilfe von Reference einen Amazon SageMaker Autopilot-Job als Pilotversuch für Problemtypen bei der Zeitreihenprognose erstellen. SageMaker API

Anmerkung

Aufgaben wie Text- und Bildklassifizierung, Zeitreihenprognosen und Feinabstimmung großer Sprachmodelle sind ausschließlich in der Version 2 von AutoML verfügbar. REST API Wenn Ihre bevorzugte Sprache Python ist, können Sie SDK direkt auf AWS SDK for Python (Boto3)das MLV2Auto-Objekt von Amazon SageMaker Python verweisen.

Benutzer, die den Komfort einer Benutzeroberfläche bevorzugen, können Amazon SageMaker Canvas verwenden, um auf vortrainierte Modelle und generative KI-Grundmodelle zuzugreifen oder benutzerdefinierte Modelle zu erstellen, die auf bestimmte Text-, Bildklassifizierungs-, Prognoseanforderungen oder generative KI zugeschnitten sind.

Sie können programmgesteuert ein Autopilot-Experiment mit Zeitreihenprognosen erstellen, indem Sie das CreateAutoMLJobV2APIin einer beliebigen Sprache aufrufen, die von Amazon Autopilot oder dem unterstützt wird. SageMaker AWS CLI

Informationen darüber, wie aus dieser API Aktion eine Funktion in der Sprache Ihrer Wahl wird, finden Sie im Abschnitt „Siehe auch“ von und wählen Sie eine aus. CreateAutoMLJobV2 SDK Als Beispiel für Python-Benutzer finden Sie die vollständige Anforderungssyntax von create_auto_ml_job_v2 in AWS SDK for Python (Boto3).

Der Autopilot trainiert anhand Ihrer Zielzeitreihe mehrere Modellkandidaten und wählt dann ein optimales Prognosemodell für eine bestimmte Zielkennzahl aus. Wenn Ihre Modellkandidaten einmal trainiert sind, finden Sie die optimalen Kandidatenkennzahlen in der Antwort auf DescribeAutoMLJobV2 unter BestCandidate.

In den folgenden Abschnitten werden die obligatorischen und optionalen Eingabeanforderungsparameter für die CreateAutoMLJobV2 API Verwendung in Zeitreihenprognosen definiert.

Anmerkung

Ein praktisches, praktisches Beispiel für Zeitreihenprognosen finden Sie im Notizbuch Zeitreihenprognosen mit Amazon SageMaker Autopilot. In diesem Notizbuch verwenden Sie Amazon SageMaker Autopilot, um ein Zeitreihenmodell zu trainieren und anhand des trainierten Modells Prognosen zu erstellen. Das Notebook enthält Anweisungen zum Abrufen eines vorgefertigten Datensatzes mit tabellarischen historischen Daten auf Amazon S3.

Voraussetzungen

Bevor Sie Autopilot verwenden, um ein Experiment mit Zeitreihenprognosen zu erstellen, sollten Sie Folgendes sicherstellen: SageMaker

  • Ihren Zeitreihen-Datensatz vorbereitet haben. Bei der Vorbereitung von Datensätzen werden die relevanten Daten aus verschiedenen Quellen gesammelt, gereinigt und gefiltert, um Störungen und Inkonsistenzen zu entfernen, und sie werden in einem strukturierten Format geordnet. Weitere Informationen zu den Formatanforderungen von Zeitreihen in Autopilot finden Sie unter Format von Zeitreihen-Datensätzen und Methoden zum Auffüllen fehlender Werte. Optional können Sie Ihren Datensatz um den Feiertagskalender des Landes Ihrer Wahl ergänzen, um die damit verbundenen Muster zu erfassen. Weitere Informationen zu Feiertagskalendern finden Sie unter Nationale Feiertagskalender.

    Anmerkung

    Wir empfehlen, für jeden future Datenpunkt, den Sie vorhersagen möchten, mindestens 3-5 historische Datenpunkte anzugeben. Wenn Sie beispielsweise anhand von Tagesdaten eine Prognose von 7 Tagen im Voraus (Horizont von 1 Woche) erstellen möchten, trainieren Sie Ihr Modell mit historischen Daten von mindestens 21 bis 35 Tagen. Stellen Sie sicher, dass Sie genügend Daten bereitstellen, um saisonale und wiederkehrende Muster zu erfassen.

  • Platzieren Sie Ihre Zeitreihendaten in einem Amazon-S3-Bucket.

  • Gewähren Sie vollen Zugriff auf den Amazon S3 S3-Bucket, der Ihre Eingabedaten für die SageMaker Ausführungsrolle enthält, die für die Ausführung Ihres Experiments verwendet wurde. Sobald dies erledigt ist, können Sie diese Ausführungsrolle in Autopilot-Anfragen API verwenden. ARN

    • Informationen zum Abrufen Ihrer SageMaker Ausführungsrolle finden Sie unter. Holen Sie sich Ihre Ausführungsrolle

    • Informationen darüber, wie Sie Ihrer SageMaker Ausführungsrolle Berechtigungen für den Zugriff auf einen oder mehrere bestimmte Buckets in Amazon S3 gewähren, finden Sie unter Zusätzliche Amazon S3 S3-Berechtigungen zu einer SageMaker Ausführungsrolle hinzufügen unter. Erstellen einer Ausführungsrolle

Erforderliche Parameter

Wenn Sie CreateAutoMLJobV2 aufrufen, um ein Autopilot-Experiment für Zeitreihenprognosen zu erstellen, müssen Sie die folgenden Werte angeben:

  • Einen AutoMLJobName, um den Namen Ihres Auftrags anzugeben. Der Name sollte vom Typ string sein und mindestens 1 Zeichen und höchstens 32 Zeichen lang sein.

  • Mindestens eine AutoMLJobChannel in AutoMLJobInputDataConfig in der Sie den Namen des Amazon-S3-Buckets angeben, der Ihre Daten enthält. Optional können Sie die Typen Inhalt (CSVoder Parquet-Dateien) und Komprimierung () angeben. GZip

  • Ein AutoMLProblemTypeConfig vom Typ TimeSeriesForecastingJobConfig zur Konfiguration der Einstellungen Ihres Prognoseauftrags für Zeitreihen. Sie müssen insbesondere angeben:

    • Die Häufigkeit von Prognosen. Die bezieht sich auf die gewünschte Auflösung Ihrer Prognose (stündlich, täglich, monatlich usw.).

      Gültige Intervalle sind durch eine Ganzzahl gegeben, gefolgt von Y (Jahr), M (Monat), W (Woche), D (Tag), H (Stunde) und min (Minute). 1D steht z. B. für jeden Tag, und 15min für „Alle 15 Minuten“. Der Wert einer Frequenz darf sich nicht mit der nächsthöheren Frequenz überlappen. Anstelle von 60min müssen Sie z. B. eine Frequenz von 1H verwenden.

      Die folgenden Werte sind gültige Werte für die Häufigkeit:

      • Minute (1–59)

      • Stunde (1–23)

      • Tag (1–6)

      • Woche (1–4)

      • Monat (1–11)

      • Jahr (1)

    • Der Horizont der Vorhersagen in Ihrer Prognose, der sich auf die Anzahl der Zeitschritte bezieht, die das Modell vorhersagt. Der Prognosehorizont wird auch als Prognoselänge bezeichnet. Der maximale Prognosehorizont ist der kleinere von 500 Zeitschritten oder 1/4 der Zeitschritte im Datensatz.

    • A, TimeSeriesConfigin dem Sie das Schema Ihres Datensatzes definieren, um die Spaltenüberschriften Ihrer Prognose zuzuordnen, indem Sie Folgendes angeben:

      • ATargetAttributeName: Die Spalte, die historische Daten des Zielfeldes für die Prognose enthält.

      • ATimestampAttributeName: Die Spalte, die einen Zeitpunkt enthält, zu dem der Zielwert eines bestimmten Artikels aufgezeichnet wird.

      • AItemIdentifierAttributeName: Die Spalte, die die Artikelkennungen enthält, für die Sie den Zielwert vorhersagen möchten.

    Es folgt ein Beispiel für diese Anfrageparameter. In diesem Beispiel richten Sie eine tägliche Prognose für die erwartete Menge oder Nachfrage bestimmter Artikel über einen Zeitraum von 20 Tagen ein.

    "AutoMLProblemTypeConfig": { "ForecastFrequency": "D", "ForecastHorizon": 20, "TimeSeriesConfig": { "TargetAttributeName": "demand", "TimestampAttributeName": "timestamp", "ItemIdentifierAttributeName": "item_id" },
  • Einen OutputDataConfig, um den Amazon S3-Ausgabepfad zum Speichern der Artefakte Ihres AutoML-Jobs anzugeben.

  • A RoleArn zur Angabe ARN der Rolle, die für den Zugriff auf Ihre Daten verwendet wird. Sie können die Ausführungsrolle verwenden, ARN der Sie Zugriff auf Ihre Daten gewährt haben.

Alle anderen Parameter sind optional. Sie können z. B. bestimmte Prognosequantile festlegen, eine Auffüllmethode für fehlende Werte im Datensatz wählen oder definieren, wie Daten aggregiert werden sollen, die nicht mit der Prognosefrequenz übereinstimmen. Wie diese zusätzlichen Parameter eingestellt werden erfahren Sie unter Optionale Parameter.

Optionale Parameter

Die folgenden Abschnitte enthalten Einzelheiten zu optionalen Parametern, die Sie an Ihren AutoML-Job für Zeitreihenprognosen übergeben können.

Standardmäßig trainiert Ihr Autopilot-Job eine vordefinierte Liste von Algorithmen auf Ihrem Datensatz. Sie können jedoch einen Teil der Standardauswahl an Algorithmen angeben.

Für Zeitreihenprognosen müssen Sie TimeSeriesForecastingJobConfig als Typ wählen. AutoMLProblemTypeConfig

Anschließend können Sie im AlgorithmsConfig Attribut von eine Reihe von ausgewählten AutoMLAlgorithms Elementen angeben. CandidateGenerationConfig

Das Folgende ist ein Beispiel für ein AlgorithmsConfig Attribut, das genau drei Algorithmen („cnn-qr“, „prophet“, „arima“) in seinem Feld auflistet. AutoMLAlgorithms

{ "AutoMLProblemTypeConfig": { "TimeSeriesForecastingJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig":[ {"AutoMLAlgorithms":["cnn-qr", "prophet", "arima"]} ] }, }, }, }

Eine Liste der verfügbaren Algorithmen für Zeitreihenprognosen finden Sie unter. AutoMLAlgorithms Einzelheiten zu den einzelnen Algorithmen finden Sie unter Unterstützung von Zeitreihenprognosen mit Algorithmen.

Der Autopilot trainiert anhand Ihrer Zielzeitreihe 6 Modellkandidaten und kombiniert diese Modelle dann mithilfe einer Stacking-Ensemble-Methode, um ein optimales Prognosemodell für eine bestimmte Zielkennzahl zu erstellen. Jedes Autopilot-Prognosemodell erzeugt eine probabilistische Prognose, indem es Prognosen mit Quantilen zwischen P1 und P99 erstellt. Mit Hilfe dieser Quantile wird der Prognoseunsicherheit Rechnung getragen. Standardmäßig werden Prognosen für 0,1 (p10), 0,5 (p50) und 0,9 (p90) erzeugt. Sie können wahlweise auch Ihre eigenen Quantile angeben.

In Autopilot können Sie bis zu fünf Prognosequantile zwischen 0,01 (p1) und 0,99 (p99) angeben, und zwar in Schritten von 0,01 oder höher im Attribut von. ForecastQuantiles TimeSeriesForecastingJobConfig

Im folgenden Beispiel richten Sie eine tägliche Prognose für das 10., 25., 50., 75. und 90. Perzentil für die erwartete Menge oder Nachfrage nach bestimmten Artikeln über einen Zeitraum von 20 Tagen ein.

"AutoMLProblemTypeConfig": { "ForecastFrequency": "D", "ForecastHorizon": 20, "ForecastQuantiles": ["p10", "p25", "p50", "p75", "p90"], "TimeSeriesConfig": { "TargetAttributeName": "demand", "TimestampAttributeName": "timestamp", "ItemIdentifierAttributeName": "item_id" },

Um ein Prognosemodell zu erstellen (das auch als bester Modellkandidat aus Ihrem Experiment bezeichnet wird), müssen Sie eine Prognosefrequenz angeben. Die Prognosefrequenz bestimmt die Häufigkeit der Vorhersagen in Ihren Prognosen. z. B. monatliche Verkaufsprognosen. Das beste Autopilot-Modell kann Prognosen für Datenfrequenzen erzeugen, die höher sind als die Frequenz, mit der Ihre Daten aufgezeichnet werden.

Während des Trainings aggregiert der Autopilot alle Daten, die nicht zu der von Ihnen angegebenen Prognosefrequenz passen. Sie könnten z. B. über tägliche Daten verfügen, aber eine wöchentliche Prognosefrequenz angeben. Der Autopilot richtet die Tagesdaten anhand der Woche aus, in die sie gehören. Der Autopilot kombiniert dann diese Daten zu einem einzigen Datensatz für jede Woche.

Während der Aggregation besteht die Standardtransformationsmethode darin, die Daten zu summieren. Sie können die Aggregation konfigurieren, wenn Sie Ihren AutoML-Job im Transformations Attribut von erstellen. TimeSeriesForecastingJobConfig Die unterstützten Aggregationsmethoden sind (sumStandard),avg, first, min, max. Die Aggregation wird nur für die Zielspalte unterstützt.

Im folgenden Beispiel konfigurieren Sie die Aggregation so, dass der Durchschnitt der einzelnen Werbeprognosen berechnet wird, um die endgültigen aggregierten Prognosewerte zu erhalten.

"Transformations": { "Aggregation": { "promo": "avg" } }

Autopilot bietet eine Reihe von Auffüllmethoden für den Umgang mit fehlenden Werten in den Zielspalten und sonstigen numerischen Spalten Ihrer Zeitreihen-Datensätze. Informationen zur Liste der unterstützten Auffüllmethoden und ihrer verfügbaren Auffülllogik finden Sie unter Fehlende Werte behandeln.

Sie konfigurieren Ihre Füllstrategie im Transformations Attribut von, TimeSeriesForecastingJobConfigwenn Sie Ihren AutoML-Job erstellen.

Um eine Auffüllmethode festzulegen, müssen Sie ein Schlüsselwertepaar angeben:

  • Der Schlüssel ist der Name der Spalte, für die Sie die Auffüllmethode angeben möchten.

  • Der mit dem Schlüssel verbundene Wert ist ein Objekt, das die Auffüllstrategie für die betreffende Spalte definiert.

Sie können für eine einzelne Spalte mehrere Auffüllmethoden angeben.

Um einen bestimmten Wert für die Auffüllmethode festzulegen, sollten Sie den Auffüllparameter auf den gewünschten Wert für die Auffüllmethode setzen (z. B. "backfill" : "value") und den tatsächlichen Auffüllwert in einem zusätzlichen Parameter mit dem Suffix „_value“ definieren. Um z. B. für backfill den Wert 2 festzulegen, müssen Sie zwei Parameter angeben: "backfill": "value" und "backfill_value":"2".

Im folgenden Beispiel geben Sie die Auffüllstrategie für die unvollständige Datenspalte „Preis“ wie folgt an: Alle fehlenden Werte zwischen dem ersten und dem letzten Datenpunkt eines Artikels werden auf 0 gesetzt. Danach werden dem alle fehlenden Werte bis zum Enddatum des Datensatzes mit dem Wert 2 aufgefüllt.

"Transformations": { "Filling": { "price": { "middlefill" : "zero", "backfill" : "value", "backfill_value": "2" } } }

Der Autopilot erstellt Genauigkeitskennzahlen zur Bewertung der Modellkandidaten und hilft Ihnen bei der Auswahl der Modelle, die Sie zur Erstellung von Prognosen verwenden können. Wenn Sie ein Experiment mit Zeitreihenprognosen durchführen, können Sie entweder AutoML wählen, damit Autopilot den Prognoseparameter für Sie optimiert, oder Sie können einen Algorithmus für Ihren Prognoseparameter manuell auswählen.

Der Autopilot verwendet standardmäßig den durchschnittlichen gewichteten Quantilverlust. Sie können die Zielmetrik jedoch konfigurieren, wenn Sie Ihren AutoML-Job im MetricName Attribut A utoMLJob Objective erstellen.

Eine Liste der verfügbaren Algorithmen finden Sie unter Unterstützung von Zeitreihenprognosen mit Algorithmen.

In Autopilot können Sie einen anhand von Features erstellten Datensatz mit Informationen zu den nationalen Feiertagen in Ihre Zeitreihe integrieren. Autopilot bietet native Unterstützung für die Feiertagskalender von über 250 Ländern. Sobald Sie ein Land ausgewählt haben, wendet Autopilot während des Trainings den Feiertagskalender des jeweiligen Landes auf jedes Element in Ihrem Datensatz an. Auf diese Weise kann das Modell Muster erkennen, die mit bestimmten Feiertagen verknüpft sind.

Sie können die Feiertagsfunktion aktivieren, wenn Sie Ihren AutoML-Job erstellen, indem Sie ein HolidayConfigAttributesObjekt an das Attribut von übergeben. HolidayConfig TimeSeriesForecastingJobConfig Das HolidayConfigAttributes Objekt enthält das CountryCode-Attribut mit zwei Buchstaben, das das zu dem Kalender mit den gesetzlichen nationalen Feiertagen gehörige Land festlegt, der zur Erweiterung Ihres Zeitreihen-Datensatzes verwendet wird.

Eine Liste der unterstützten Kalender und der entsprechenden Länder-Codes finden Sie unter Ländercodes.

Mit Autopilot können Sie Ihr Prognosemodell automatisch auf einem Endpunkt bereitstellen. Um die automatische Bereitstellung für den besten Modellkandidaten eines AutoML-Jobs zu aktivieren, fügen Sie in der AutoML-Jobanfrage einen ModelDeployConfig hinzu. Dies ermöglicht die Bereitstellung des besten Modells auf einem SageMaker Endpunkt. Im Folgenden finden Sie die verfügbaren Konfigurationen für die individuelle Anpassung.

Sie können Ihren AutoML-Job V2 so konfigurieren, dass er automatisch einen Remote-Job auf Amazon EMR Serverless initiiert, wenn zusätzliche Rechenressourcen für die Verarbeitung großer Datensätze benötigt werden. Durch die nahtlose Umstellung auf EMR Serverless bei Bedarf kann der AutoML-Job Datensätze verarbeiten, die andernfalls die ursprünglich bereitgestellten Ressourcen überschreiten würden, ohne dass Sie manuell eingreifen müssen. EMRServerless ist für die Problemtypen tabellarisch und zeitreihenförmig verfügbar. Wir empfehlen, diese Option für Zeitreihendatensätze einzurichten, die größer als 30 GB sind.

Damit Ihr AutoML-Job V2 für große Datenmengen automatisch auf EMR Serverless umgestellt werden kann, müssen Sie ein EmrServerlessComputeConfig Objekt, das ein ExecutionRoleARN Feld enthält, für die AutoMLComputeConfig AutoML-Job V2-Eingabeanforderung bereitstellen.

Dies ExecutionRoleARN ist die ARN IAM Rolle, die dem AutoML-Job V2 die erforderlichen Berechtigungen zum Ausführen EMR serverloser Jobs gewährt.

Diese Rolle sollte die folgende Vertrauensstellung haben:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Und gewähren Sie die Berechtigungen für:

  • EMRServerlose Anwendungen erstellen, auflisten und aktualisieren.

  • Auftragsausführungen in einer EMR serverlosen Anwendung starten, auflisten, abrufen oder abbrechen

  • Taggen Sie EMR serverlose Ressourcen.

  • Übergeben Sie eine IAM Rolle zur Ausführung an den EMR Serverless-Dienst.

    Durch Erteilung der iam:PassRole Berechtigung kann der AutoML-Job V2 vorübergehend die EMRServerlessRuntimeRole-* Rolle übernehmen und sie an den EMR Serverless-Dienst übergeben. Dies sind die IAM Rollen, die von den EMR serverlosen Jobausführungsumgebungen für den Zugriff auf andere AWS Dienste und Ressourcen verwendet werden, die während der Laufzeit benötigt werden, z. B. Amazon S3 für den Datenzugriff, CloudWatch für die Protokollierung, den Zugriff auf den AWS Glue Datenkatalog oder andere Dienste, die Ihren Workload-Anforderungen entsprechen.

    Einzelheiten zu diesen Rollenberechtigungen finden Sie unter Job Runtime Roles for Amazon EMR Serverless.

Die im bereitgestellten JSON Dokument definierte IAM Richtlinie gewährt diese Berechtigungen:

{ "Version": "2012-10-17", "Statement": [{ "Sid": "EMRServerlessCreateApplicationOperation", "Effect": "Allow", "Action": "emr-serverless:CreateApplication", "Resource": "arn:aws:emr-serverless:*:*:/*", "Condition": { "StringEquals": { "aws:RequestTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessListApplicationOperation", "Effect": "Allow", "Action": "emr-serverless:ListApplications", "Resource": "arn:aws:emr-serverless:*:*:/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessApplicationOperations", "Effect": "Allow", "Action": [ "emr-serverless:UpdateApplication", "emr-serverless:GetApplication" ], "Resource": "arn:aws:emr-serverless:*:*:/applications/*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessStartJobRunOperation", "Effect": "Allow", "Action": "emr-serverless:StartJobRun", "Resource": "arn:aws:emr-serverless:*:*:/applications/*", "Condition": { "StringEquals": { "aws:RequestTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessListJobRunOperation", "Effect": "Allow", "Action": "emr-serverless:ListJobRuns", "Resource": "arn:aws:emr-serverless:*:*:/applications/*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessJobRunOperations", "Effect": "Allow", "Action": [ "emr-serverless:GetJobRun", "emr-serverless:CancelJobRun" ], "Resource": "arn:aws:emr-serverless:*:*:/applications/*/jobruns/*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessTagResourceOperation", "Effect": "Allow", "Action": "emr-serverless:TagResource", "Resource": "arn:aws:emr-serverless:*:*:/*", "Condition": { "StringEquals": { "aws:RequestTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "IAMPassOperationForEMRServerless", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/EMRServerlessRuntimeRole-*", "Condition": { "StringEquals": { "iam:PassedToService": "emr-serverless.amazonaws.com", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } } ] }