Angeben von AWS Glue Ressourcen-ARN - 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.

Angeben von AWS Glue Ressourcen-ARN

In AWS Glue können Sie den Zugriff auf Ressourcen mithilfe einer AWS Identity and Access Management-Richtlinie (IAM) steuern. In einer Richtlinie identifizieren Sie die Ressource, für welche die Richtlinie gilt, mithilfe eines Amazon-Ressourcennamens (ARN). Nicht alle Ressourcen in AWS Glue unterstützen ARN.

Data-Catalog-ARNs

Data-Catalog-Ressourcen haben eine hierarchische Struktur, mit catalog als Stamm:

arn:aws:glue:region:account-id:catalog

Jedes AWS-Konto hat einen einzigen Data Catalog in einer AWS-Region mit der 12-stelligen Konto-ID als Katalog-ID. Den Ressourcen sind eindeutige ARNs zugeordnet, die in der folgenden Tabelle aufgeführt werden.

Ressourcentyp ARN-Format

Katalog

arn:aws:glue:region:account-id:catalog

Beispiel: arn:aws:glue:us-east-1:123456789012:catalog

Datenbank

arn:aws:glue:region:account-id:database/database name

Beispiel: arn:aws:glue:us-east-1:123456789012:database/db1

Tabelle

arn:aws:glue:region:account-id:table/database name/table name

Beispiel: arn:aws:glue:us-east-1:123456789012:table/db1/tbl1

Benutzerdefinierte Funktion

arn:aws:glue:region:account-id:userDefinedFunction/database name/user-defined function name

Beispiel: arn:aws:glue:us-east-1:123456789012:userDefinedFunction/db1/func1

Verbindung

arn:aws:glue:region:account-id:connection/connection name

Beispiel: arn:aws:glue:us-east-1:123456789012:connection/connection1

Interactive Session

arn:aws:glue:region:account-id:session/interactive session id

Beispiel: arn:aws:glue:us-east-1:123456789012:session/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Um eine fein abgestufte Zugriffskontrolle zu ermöglichen, können Sie diesen ARN in Ihren IAM-Richtlinien und Ressourcenrichtlinien zur Gewährung und Verweigerung des Zugangs zu bestimmten Ressourcen verwenden. Platzhalter sind in den Richtlinien zulässig. Der folgende ARN stimmt beispielsweise mit allen Tabellen in der Datenbank default überein.

arn:aws:glue:us-east-1:123456789012:table/default/*
Wichtig

Alle Operationen, die auf einer Data-Catalog-Ressource ausgeführt werden, benötigen die Berechtigung für die Ressource und alle Vorfahren dieser Ressource. Um beispielsweise eine Partition für eine Tabelle zu erstellen, ist eine Berechtigung für die Tabelle, die Datenbank und den Katalog erforderlich, in der bzw. dem sich die Tabelle befindet. Das folgende Beispiel zeigt die Berechtigung, die erforderlich ist, um Partitionen auf der Tabelle PrivateTable in der Datenbank PrivateDatabase im Data Catalog zu erstellen.

{ "Sid": "GrantCreatePartitions", "Effect": "Allow", "Action": [ "glue:BatchCreatePartitions" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:table/PrivateDatabase/PrivateTable", "arn:aws:glue:us-east-1:123456789012:database/PrivateDatabase", "arn:aws:glue:us-east-1:123456789012:catalog" ] }

Zusätzlich zur Berechtigung für die Ressource und alle ihre Vorfahren benötigen alle Löschvorgänge die Berechtigung für alle untergeordneten Elemente dieser Ressource. Zum Beispiel erfordert das Löschen einer Datenbank die Berechtigung für alle Tabellen und benutzerdefinierten Funktionen in der Datenbank sowie für die Datenbank und den Katalog, in dem sich die Datenbank befindet. Das folgende Beispiel zeigt die Berechtigung zum Löschen der Datenbank PrivateDatabase im Data Catalog.

{ "Sid": "GrantDeleteDatabase", "Effect": "Allow", "Action": [ "glue:DeleteDatabase" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:table/PrivateDatabase/*", "arn:aws:glue:us-east-1:123456789012:userDefinedFunction/PrivateDatabase/*", "arn:aws:glue:us-east-1:123456789012:database/PrivateDatabase", "arn:aws:glue:us-east-1:123456789012:catalog" ] }

Zusammenfassend: Aktionen für Data-Catalog-Ressourcen folgen diesen Berechtigungsregeln:

  • Für Katalogaktionen sind nur Berechtigungen für den Katalog erforderlich.

  • Aktionen in einer Datenbank erfordern eine Berechtigung für die Datenbank und den Katalog.

  • Löschaktionen in einer Datenbank erfordern eine Berechtigung für die Datenbank und den Katalog sowie alle Tabellen und benutzerdefinierten Funktionen in der Datenbank.

  • Aktionen in einer Tabelle, Partition oder Tabellenversion erfordern eine Berechtigung für die Tabelle, die Datenbank und den Katalog.

  • Aktionen für eine benutzerdefinierte Funktion erfordern eine Berechtigung für die benutzerdefinierte Funktion, die Datenbank und den Katalog.

  • Aktionen für eine Verbindung erfordern eine Berechtigung für die Verbindung und den Katalog.

ARNs für nicht katalogisierte Objekte in AWS Glue

Einige AWS Glue-Ressourcen ermöglichen Zugriffsrechte auf Ressourcenebene, um den Zugriff über einen ARN zu steuern. Sie können diese ARN in Ihren IAM-Richtlinien verwenden, um eine fein abgestimmte Zugriffskontrolle zu ermöglichen. Die folgende Tabelle listet die Ressourcen auf, die Ressourcen-ARN enthalten können.

Ressourcentyp ARN-Format

Crawler

arn:aws:glue:region:account-id:crawler/crawler-name

Beispiel: arn:aws:glue:us-east-1:123456789012:crawler/mycrawler

Aufgabe

arn:aws:glue:region:account-id:job/job-name

Beispiel: arn:aws:glue:us-east-1:123456789012:job/testjob

Auslöser

arn:aws:glue:region:account-id:trigger/trigger-name

Beispiel: arn:aws:glue:us-east-1:123456789012:trigger/sampletrigger

Entwicklungsendpunkt

arn:aws:glue:region:account-id:devEndpoint/development-endpoint-name

Beispiel: arn:aws:glue:us-east-1:123456789012:devEndpoint/temporarydevendpoint

Machine-Learning-Transformation

arn:aws:glue:region:account-id:mlTransform/transform-id

Beispiel: arn:aws:glue:us-east-1:123456789012:mlTransform/tfm-1234567890

Zugriffskontrolle für nicht katalogisierte singuläre AWS Glue-API-Operationen

Nicht katalogisierte singuläre AWS Glue-API-Operationen wirken auf ein einzelnes Element (Entwicklungsendpunkt). Beispiele sind GetDevEndpoint, CreateUpdateDevEndpoint und UpdateDevEndpoint. Für diese Operationen muss eine Richtlinie den API-Namen in den Block "action" und den Ressourcen-ARN in den Block "resource" setzen.

Angenommen, Sie möchten einem Benutzer erlauben, die Operation GetDevEndpoint aufzurufen. Die folgende Richtlinie gewährt die minimal erforderlichen Berechtigungen für einen Endpunkt namens myDevEndpoint-1.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "MinimumPermissions", "Effect": "Allow", "Action": "glue:GetDevEndpoint", "Resource": "arn:aws:glue:us-east-1:123456789012:devEndpoint/myDevEndpoint-1" } ] }

Die folgende Richtlinie erlaubt UpdateDevEndpoint Zugriff auf Ressourcen, die mit myDevEndpoint- übereinstimmen, mit einem Platzhalter (*).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PermissionWithWildcard", "Effect": "Allow", "Action": "glue:UpdateDevEndpoint", "Resource": "arn:aws:glue:us-east-1:123456789012:devEndpoint/myDevEndpoint-*" } ] }

Sie können die beiden Richtlinien wie im folgenden Beispiel kombinieren. Möglicherweise wird EntityNotFoundException für Entwicklungsendpunkte angezeigt, deren Name mit A beginnt. Allerdings wird ein Zugriffsfehler zurückgegeben, wenn Sie versuchen, auf andere Entwicklungsendpunkte zuzugreifen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CombinedPermissions", "Effect": "Allow", "Action": [ "glue:UpdateDevEndpoint", "glue:GetDevEndpoint" ], "Resource": "arn:aws:glue:us-east-1:123456789012:devEndpoint/A*" } ] }

Zugriffskontrolle für nichtt katalogisierte AWS Glue-API-Operationen, die mehrere Elemente abrufen

Einige AWS Glue-API-Operationen rufen mehrere Elemente ab (z. B. mehrere Entwicklungsendpunkte), z. B. GetDevEndpoints. Für diesen Vorgang können Sie nur eine Platzhalterressource (*) und keine bestimmten ARNs angeben.

Wenn Sie beispielsweise GetDevEndpoints in die Richtlinie aufnehmen, muss die Ressource auf den Platzhalter (*) angewendet werden. Die einzelnen Operationen (GetDevEndpoint, CreateDevEndpoint und DeleteDevendpoint) werden auch auf alle (*) Ressourcen im Beispiel bezogen.

{ "Sid": "PluralAPIIncluded", "Effect": "Allow", "Action": [ "glue:GetDevEndpoints", "glue:GetDevEndpoint", "glue:CreateDevEndpoint", "glue:UpdateDevEndpoint" ], "Resource": [ "*" ] }

Zugriffskontrolle für nicht katalogisierte AWS Glue-Batch-Get-API-Operationen

Einige AWS Glue-API-Operationen rufen mehrere Elemente ab (z. B. mehrere Entwicklungsendpunkte), z. B. BatchGetDevEndpoints. Für diese Operation können Sie einen ARN angeben, um den Umfang der Ressourcen einzuschränken, auf die zugegriffen werden kann.

Um beispielsweise den Zugriff auf einen bestimmten Entwicklungsendpunkt zu gewähren, fügen Sie in die Richtlinie mit dem zugehörigen Ressourcen-ARN BatchGetDevEndpoints ein.

{ "Sid": "BatchGetAPIIncluded", "Effect": "Allow", "Action": [ "glue:BatchGetDevEndpoints" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:devEndpoint/de1" ] }

Mit dieser Richtlinie können Sie erfolgreich auf den Entwicklungsendpunkt mit dem Namen de1 zugreifen. Wenn Sie jedoch versuchen, auf den Entwicklungsendpunkt mit dem Namen de2 zuzugreifen, wird ein Fehler zurückgegeben.

An error occurred (AccessDeniedException) when calling the BatchGetDevEndpoints operation: No access to any requested resource.
Wichtig

Alternative Ansätze zum Einrichten von IAM-Richtlinien, wie z. B. die Verwendung der API-Operationen List und BatchGet, finden Sie unter Beispiele für identitätsbasierte Richtlinien für AWS Glue.