Interaktive Sitzungen mit IAM - AWS Glue

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.

Interaktive Sitzungen mit IAM

In diesen Abschnitten werden Sicherheitsüberlegungen für AWS Glue interaktive Sitzungen.

IAM-Prinzipale, die mit interaktiven Sitzungen verwendet werden

Sie verwenden zwei IAM-Prinzipale, die mit verwendet werden AWS Glue interaktive Sitzungen.

  • Client-Principal: Der Client-Principal (entweder ein Benutzer oder eine Rolle) autorisiert API-Operationen für interaktive Sitzungen von AWS Glue Client, der mit den identitätsbasierten Anmeldeinformationen des Prinzipals konfiguriert ist. Dies könnte beispielsweise eine IAM-Rolle sein, die Sie normalerweise für den Zugriff auf AWS Glue console. Dies könnte auch eine Rolle sein, die einem Benutzer in IAM zugewiesen wird, dessen Anmeldeinformationen für die verwendet werden AWS Command Line Interface, oder eine AWS Glue Client, der von den Jupyter-Kernel der interaktiven Sitzungen verwendet wird.

  • Laufzeitrolle: Die Runtime-Rolle ist eine IAM-Rolle, die der Client-Principal an API-Operationen für interaktive Sitzungen weitergibt. AWS Glue verwendet diese Rolle, um Anweisungen in Ihrer Sitzung auszuführen. Diese Rolle könnte beispielsweise für die Ausführung verwendet werden AWS Glue ETL-Jobs.

    Weitere Informationen finden Sie unter Einrichten einer Laufzeitrolle.

Einrichten eines Client-Prinzipals

Sie müssen eine Identitätsrichtlinie an den Client-Prinzipal anhängen, damit er die Interactive-Sessions-API aufrufen kann. Diese Rolle muss iam:PassRole-Zugriff auf die Ausführungsrolle haben, die Sie an die Interactive-Sessions-API übergeben würden, z. B. CreateSession. Sie können die AWSGlueConsoleFullAccessverwaltete Richtlinie beispielsweise einer IAM-Rolle zuordnen, sodass Benutzer in Ihrem Konto, an die die Richtlinie angehängt ist, auf alle in Ihrem Konto erstellten Sitzungen zugreifen können (z. B. Runtime Statement oder Storno Statement).

Wenn Sie Ihre Sitzung schützen und sie nur für bestimmte IAM-Rollen sperren möchten, z. B. für Rollen, die dem Benutzer zugeordnet sind, der die Sitzung erstellt hat, können Sie Folgendes verwenden AWS Glue Die tagbasierte Autorisierungssteuerung von Interactive Session wurde aufgerufen TagOnCreate. Weitere Informationen finden Sie unter, wie eine Machen Sie Ihre Sitzung privat mit TagOnCreate auf Eigentümertags basierende verwaltete Richtlinie Ihre Sitzung privat machen kann. TagOnCreate Weitere Informationen zu identitätsbasierten Richtlinien finden Sie unter Identitätsbasierte Richtlinien für AWS Glue.

Einrichten einer Laufzeitrolle

Sie müssen eine IAM-Rolle an den CreateSession API-Vorgang übergeben, um Folgendes zuzulassen AWS Glue um Anweisungen in interaktiven Sitzungen anzunehmen und auszuführen. Die Rolle sollte dieselben IAM-Berechtigungen haben wie diejenigen, die für die Ausführung eines typischen AWS Glue Job. Sie können beispielsweise eine Servicerolle mithilfe der AWSGlueServiceRoleRichtlinie erstellen, die Folgendes ermöglicht AWS Glue um in Ihrem Namen AWS Dienste in Anspruch zu nehmen. Wenn Sie das AWS Glue In der Konsole wird automatisch eine Servicerolle in Ihrem Namen erstellt oder eine bestehende verwendet. Sie können auch Ihre eigene IAM-Rolle erstellen und Ihre eigene IAM-Richtlinie anhängen, um ähnliche Berechtigungen zu gewähren.

Wenn Sie Ihre Sitzung schützen und sie nur dem Benutzer zugänglich machen möchten, der die Sitzung erstellt hat, können Sie Folgendes verwenden AWS Glue Die tagbasierte Autorisierungssteuerung von Interactive Session wurde aufgerufen TagOnCreate. Weitere Informationen finden Sie unter, wie eine Machen Sie Ihre Sitzung privat mit TagOnCreate auf Eigentümertags basierende verwaltete Richtlinie Ihre Sitzung privat machen kann. TagOnCreate Weitere Informationen zu identitätsbasierten Richtlinien finden Sie unter Identitätsbasierte Richtlinien für Glue AWS. Wenn Sie die Ausführungsrolle selbst von der IAM-Konsole aus erstellen und Ihren Service mit dieser TagOnCreate Funktion als privat kennzeichnen möchten, gehen Sie wie folgt vor.

  1. Erstellen Sie eine IAM-Rolle und legen Sie Glue als Rollentyp fest.

  2. Hängen Sie das an AWS Glue verwaltete Richtlinie: AwsGlueSessionUserRestrictedServiceRole

  3. Stellen Sie dem Rollennamen den Richtliniennamen voran AwsGlueSessionUserRestrictedServiceRole. Sie können beispielsweise eine Rolle mit dem Namen AwsGlueSessionUserRestrictedServiceRole-myrole erstellen und sie anhängen AWS Glue verwaltete Richtlinie. AwsGlueSessionUserRestrictedServiceRole

  4. Fügen Sie eine Vertrauensrichtlinie wie die folgende hinzu, um dies zuzulassen AWS Glue um die Rolle zu übernehmen:

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

Für einen Jupyter-Kernel für interaktive Sitzungen können Sie den iam_role Schlüssel in Ihrem Profil angeben. AWS Command Line Interface Weitere Informationen finden Sie unter Konfigurieren von Sitzungen mit ~/.aws/config . Wenn Sie mit interaktiven Sitzungen interagieren, indem Sie ein AWS Glue Notizbuch, dann können Sie die Ausführungsrolle im %iam_role Magic in der ersten Zelle, die Sie ausführen, übergeben.

Machen Sie Ihre Sitzung privat mit TagOnCreate

AWS Glue interaktive Sitzungen unterstützen Tagging und Tag-Based Authorization (TBAC) für interaktive Sitzungen als benannte Ressource. Zusätzlich zur Verwendung von TBAC und TagResource UntagResource APIs AWS Glue interaktive Sitzungen unterstützen die TagOnCreate Funktion, eine Sitzung mit einem bestimmten Tag zu „taggen“, nur während der Sitzungserstellung mit CreateSession Operation. Das bedeutet auch, dass diese Tags am entfernt werden DeleteSession, aka UntagOnDelete.

TagOnCreate bietet einen leistungsstarken Sicherheitsmechanismus, um Ihre Sitzung für den Ersteller der Sitzung privat zu machen. Sie können beispielsweise eine IAM-Richtlinie mit „owner“ RequestTag und dem Wert $ {aws:UserId} an einen Client-Principal (z. B. einen Benutzer) anhängen, um das Erstellen einer Sitzung nur zu ermöglichen, wenn auf Anfrage ein „owner“ -Tag mit dem entsprechenden Wert der userId des Anrufers als userID-Tag bereitgestellt wird. CreateSession Diese Richtlinie ermöglicht AWS Glue interaktive Sitzungen, um eine Sitzungsressource zu erstellen und die Sitzung nur während der Sitzungserstellung mit dem UserID-Tag zu kennzeichnen. Darüber hinaus können Sie den Zugriff (wie das Ausführen von Anweisungen) auf Ihre Sitzung nur auf den Ersteller (auch bekannt als Eigentümer-Tag mit dem Wert $ {aws:UserId}) beschränken, indem Sie der Ausführungsrolle, die Sie während der Ausführung übergeben haben, eine IAM-Richtlinie mit dem Namen „owner“ ResourceTag anhängen. CreateSession

Um es Ihnen leichter zu machen, die TagOnCreate Funktion zu verwenden, um eine Sitzung für den Sitzungsersteller privat zu machen, AWS Glue bietet spezielle verwaltete Richtlinien und Servicerollen.

Wenn Sie eine erstellen möchten AWS Glue Interaktive Sitzung mit einem AssumeRole IAM-Prinzipal (d. h. mit Anmeldeinformationen, die durch die Übernahme einer IAM-Rolle vergeben wurden) und Sie die Sitzung für den Ersteller privat machen möchten, dann verwenden Sie Richtlinien, die den bzw. entsprechen. AWSGlueSessionUserRestrictedNotebookPolicyAWSGlueSessionUserRestrictedNotebookServiceRole Diese Richtlinien ermöglichen AWS Glue $ {aws:PrincipalTag} zu verwenden, um den Besitzer-Tag-Wert zu extrahieren. Dazu müssen Sie ein UserID-Tag mit dem Wert $ {aws:UserId} übergeben, wie SessionTag in den Anmeldeinformationen für die Übernahme der Rolle. Siehe ID-Sitzungs-Tags. Wenn Sie eine EC2 Amazon-Instance mit einem Instance-Profil verwenden, das die Anmeldeinformationen verkauft, und Sie eine Sitzung erstellen oder mit der Sitzung von der EC2 Amazon-Instance aus interagieren möchten, müssen Sie ein UserID-Tag mit dem Wert $ {aws:UserId} übergeben, wie in den Anmeldeinformationen für die Rolle annehmen. SessionTag

Wenn Sie beispielsweise eine Sitzung mit einem AssumeRole IAM-Prinzipalnachweis erstellen und Ihren Service mit dieser Funktion als privat kennzeichnen möchten, gehen Sie wie folgt vor. TagOnCreate

  1. Erstellen Sie eine Laufzeitrolle in der IAM-Konsole. Bitte fügen Sie dies bei AWS Glue verwaltete Richtlinie AwsGlueSessionUserRestrictedNotebookServiceRoleund stellen Sie dem Rollennamen den Richtliniennamen als Präfix voran AwsGlueSessionUserRestrictedNotebookServiceRole. Sie können beispielsweise eine Rolle mit dem Namen AwsGlueSessionUserRestrictedNotebookServiceRole-myrole erstellen und anhängen AWS Glue verwaltete Richtlinie. AwsGlueSessionUserRestrictedNotebookServiceRole

  2. Hängen Sie eine Vertrauensrichtlinie wie unten beschrieben an, um dies zuzulassen AWS Glue um die oben genannte Rolle zu übernehmen.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }
  3. Erstellen Sie eine weitere Rolle mit einem Präfix AwsGlueSessionUserRestrictedNotebookPolicyund hängen Sie das an AWS Glue verwaltete Richtlinie AwsGlueSessionUserRestrictedNotebookPolicy, um die Sitzung privat zu machen. Fügen Sie der Rolle, die Sie in Schritt 1 erstellt haben, zusätzlich zur verwalteten Richtlinie die folgende Inline-Richtlinie hinzuPassRole , um iam zuzulassen.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/AwsGlueSessionUserRestrictedNotebookServiceRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "glue.amazonaws.com" ] } } } ] }
  4. Fügen Sie dem obigen IAM eine Vertrauensrichtlinie wie die folgende hinzu AWS Glue um die Rolle zu übernehmen.

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

    Optional können Sie eine einzelne Rolle (z. B. die Notebook-Rolle) verwenden und die beiden oben genannten verwalteten Richtlinien AwsGlueSessionUserRestrictedNotebookServiceRoleund anhängen AwsGlueSessionUserRestrictedNotebookPolicy. Fügen Sie außerdem die zusätzliche Inline-Richtlinie hinzu, um Ihre Rolle zuzulassen iam:passrole AWS Glue. Und fügen Sie abschließend die oben genannte Vertrauensrichtlinie hinzu, um sts:AssumeRole und zuzulassensts:TagSession.

AWSGlueSessionUserRestrictedNotebookPolicy

Das AWSGlue SessionUserRestrictedNotebookPolicy bietet Zugriff zum Erstellen eines AWS Glue Interaktive Sitzung nur von einem Notizbuch aus, wenn ein Tag-Schlüssel „Besitzer“ und ein Wert mit der AWS Benutzer-ID des Prinzipals (Benutzer oder Rolle) übereinstimmen. Weitere Informationen finden Sie unter Wo Richtlinienvariablen verwendet werden können. Diese Richtlinie ist dem Prinzipal (Benutzer oder Rolle) zugeordnet, der Folgendes erstellt AWS Glue Notizbücher für interaktive Sitzungen von AWS Glue Studio. Diese Richtlinie ermöglicht auch einen ausreichenden Zugang zu AWS Glue Studio Notizbuch zur Interaktion mit AWS Glue Studio Ressourcen für interaktive Sitzungen, die mit dem Tag-Wert „owner“ erstellt wurden, der der AWS Benutzer-ID des Prinzipals entspricht. Diese Richtlinie verweigert die Erlaubnis, das Tag „Besitzer“ aus einem zu ändern oder zu entfernen AWS Glue Sitzungsressource, nachdem die Sitzung erstellt wurde.

AWSGlueSessionUserRestrictedNotebookServiceRole

Das AWSGlueSessionUserRestrictedNotebookServiceRolebietet ausreichenden Zugriff auf AWS Glue Studio Notizbuch zur Interaktion mit dem AWS Glue Ressourcen für interaktive Sitzungen, bei deren Erstellung der Tagwert „owner“ mit der AWS Benutzer-ID des Prinzipals (Benutzer oder Rolle) des Notizbuch-Erstellers übereinstimmt. Weitere Informationen finden Sie unter Wo Richtlinienvariablen verwendet werden können. Diese Servicerollenrichtlinie ist der Rolle zugeordnet, die als magische Rolle an ein Notizbuch oder als Ausführungsrolle an die CreateSession API übergeben wird. Diese Richtlinie ermöglicht auch die Erstellung eines AWS Glue Interaktive Sitzung nur von einem Notizbuch aus, wenn ein Tag-Schlüssel „Besitzer“ und ein Wert mit der AWS Benutzer-ID des Prinzipals übereinstimmen. Diese Richtlinie verweigert die Erlaubnis, das Tag „Besitzer“ zu ändern oder zu entfernen AWS Glue Sitzungsressource, nachdem die Sitzung erstellt wurde. Diese Richtlinie umfasst auch Berechtigungen zum Schreiben und Lesen aus Amazon S3 S3-Buckets, zum Schreiben von CloudWatch Protokollen sowie zum Erstellen und Löschen von Tags für EC2 Amazon-Ressourcen, die von verwendet werden AWS Glue.

Ihre Sitzung mit Benutzer-Richtlinien privat stellen

Sie können die IAM-Rollen AWSGlueSessionUserRestrictedPolicy, die den einzelnen Benutzern in Ihrem Konto zugewiesen sind, zuordnen, um sie daran zu hindern, eine Sitzung nur mit einem Besitzer-Tag zu erstellen, dessen Wert ihrem eigenen $ {aws:UserId} entspricht. Anstatt das AWSGlueSessionUserRestrictedNotebookPolicyund zu verwenden, müssen AWSGlueSessionUserRestrictedNotebookServiceRoleSie ähnliche Richtlinien wie das und verwenden. AWSGlueSessionUserRestrictedPolicyAWSGlueSessionUserRestrictedServiceRole Weitere Informationen finden Sie unter Verwendung identitätsbasierter Richtlinien. Diese Richtlinie beschränkt den Zugriff auf eine Sitzung nur auf den Ersteller, die ${aws:userId} des Benutzers, der die Sitzung erstellt hat, mit einem Besitzer-Tag, der seine eigene ${aws:userId} trägt. Wenn Sie die Ausführungsrolle mithilfe der IAM-Konsole selbst erstellt haben, indem Sie die Schritte unter befolgenEinrichten einer Laufzeitrolle, fügen Sie zusätzlich zur AwsGlueSessionUserRestrictedPolicyverwalteten Richtlinie auch jedem Benutzer in Ihrem Konto die folgende Inline-Richtlinie hinzu, um die zuvor erstellte Ausführungsrolle zu ermöglicheniam:PassRole.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/AwsGlueSessionUserRestrictedServiceRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "glue.amazonaws.com" ] } } }] }

AWSGlueSessionUserRestrictedPolicy

Das AWSGlueSessionUserRestrictedPolicybietet Zugriff auf die Erstellung eines AWS Glue Interaktive Sitzung, die die CreateSession API nur verwendet, wenn ein Tag-Schlüssel „Besitzer“ und ein Wert angegeben werden, der der AWS Benutzer-ID entspricht. Diese Identitätsrichtlinie ist an den Benutzer angehängt, der die CreateSession API aufruft. Diese Richtlinie ermöglicht auch die Interaktion mit AWS Glue Ressourcen für interaktive Sitzungen, die mit einem „Besitzer“ -Tag und einem Wert erstellt wurden, der ihrer AWS Benutzer-ID entspricht. Diese Richtlinie verweigert die Erlaubnis, das Tag „Besitzer“ zu ändern oder zu entfernen AWS Glue Sitzungsressource, nachdem die Sitzung erstellt wurde.

AWSGlueSessionUserRestrictedServiceRole

Das AWSGlueSessionUserRestrictedServiceRolebietet vollen Zugriff auf alle AWS Glue Ressourcen mit Ausnahme von Sitzungen und ermöglicht es Benutzern, nur die interaktiven Sitzungen zu erstellen und zu verwenden, die dem Benutzer zugeordnet sind. Diese Richtlinie umfasst auch andere Berechtigungen, die benötigt werden von AWS Glue um Glue-Ressourcen in anderen AWS Diensten zu verwalten. Die Richtlinie ermöglicht auch das Hinzufügen von Tags zu AWS Glue Ressourcen in anderen AWS Diensten.

Überlegungen zur IAM-Richtlinie

Interaktive Sitzungen sind IAM-Ressourcen in AWS Glue. Da es sich um IAM-Ressourcen handelt, werden der Zugriff und die Interaktion mit einer Sitzung durch IAM-Richtlinien geregelt. Basierend auf den IAM-Richtlinien, die an einen Client-Prinzipal oder eine von einem Administrator konfigurierte Ausführungsrolle angehängt sind, kann ein Client-Prinzipal (Benutzer oder Rolle) neue Sitzungen erstellen und mit eigenen Sitzungen und anderen Sitzungen interagieren.

Wenn ein Administrator eine IAM-Richtlinie angehängt hat, z. B. AWSGlue ConsoleFullAccess oder AWSGlueServiceRole , die den Zugriff auf alle ermöglicht AWS Glue Mit den Ressourcen in diesem Konto kann ein Kunde als Principal zusammenarbeiten. Beispielsweise kann ein Benutzer mit Sitzungen interagieren, die von anderen Benutzern erstellt wurden, wenn Richtlinien dies zulassen.

Wenn Sie eine Richtlinie konfigurieren möchten, die auf Ihre spezifischen Bedürfnisse zugeschnitten ist, finden Sie in der IAM-Dokumentation zur Konfiguration von Ressourcen für eine Richtlinie. Um beispielsweise Sitzungen zu isolieren, die einem Benutzer gehören, können Sie die TagOnCreate Funktion verwenden, die unterstützt wird von AWS Glue Interaktive Sitzungen. Siehe Machen Sie Ihre Sitzung privat mit TagOnCreate .

Interaktive Sitzungen unterstützen die Einschränkung der Sitzungserstellung basierend auf bestimmten VPC-Bedingungen. Siehe Steuern von Richtlinien, die Einstellungen über Bedingungsschlüssel steuern.