Katalogintegration für AWS Glue konfigurieren¶
Erstellen Sie eine Katalogintegration für AWS Glue und gewähren Sie Snowflake eingeschränkten Zugriff auf den AWS Glue-Datenkatalog.
Bemerkung
Um die Anweisungen in diesem Abschnitt auszuführen, müssen Sie in Amazon Web Services (AWS) die Berechtigung zum Erstellen und Verwalten von IAM-Richtlinien und -Rollen haben. Wenn Sie kein AWS-Administrator sind, bitten Sie Ihren AWS-Administrator, diese Aufgaben auszuführen.
Schritt 1: Zugriffsberechtigungen für den AWS Glue-Datenkatalog konfigurieren¶
Als bewährte Methode sollten Sie für den Zugriff auf den AWS Glue-Datenkatalog eine neue IAM-Richtlinie für Snowflake erstellen. Sie können dann die Richtlinie in die IAM-Rolle einbinden und die von AWS für diese Rolle generierten Sicherheitsanmeldeinformationen verwenden, um auf Dateien im Katalog zuzugreifen. Eine Anleitung dazu finden Sie unter Erstellen von IAM-Richtlinien und Ändern von Rollenberechtigungsrichtlinien im AWS-Benutzerhandbuch für die Identitäts- und Zugriffsverwaltung.
Snowflake benötigt mindestens die folgenden Berechtigungen für den AWS Glue-Datenkatalog, um über Tabellen auf Informationen zuzugreifen.
glue:GetTable
glue:GetTables
Die folgende Beispielrichtlinie (im JSON-Format) bietet die erforderlichen Berechtigungen für den Zugriff auf alle Tabellen in einer bestimmten Datenbank.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowGlueCatalogTableAccess",
"Effect": "Allow",
"Action": [
"glue:GetTable",
"glue:GetTables"
],
"Resource": [
"arn:aws:glue:*:<accountid>:table/*/*",
"arn:aws:glue:*:<accountid>:catalog",
"arn:aws:glue:*:<accountid>:database/<database-name>"
]
}
]
}
Bemerkung
Sie können das
Resource
-Element dieser Richtlinie ändern, um die zulässigen Ressourcen weiter einzuschränken (z. B. Katalog, Datenbanken oder Tabellen). Weitere Informationen dazu finden Sie unter Von AWS Glue definierte RessourcentypenWenn Sie die Verschlüsselung für AWS Glue verwenden, müssen Sie die Richtlinie ändern, um AWS-KMS-Berechtigungen (AWS Key Management Service) hinzuzufügen. Weitere Informationen dazu finden Sie unter Einrichten der Verschlüsselung in AWS Glue.
Schritt 2: Katalogintegration in Snowflake erstellen¶
Erstellen Sie mit dem Befehl CREATE CATALOG INTEGRATION (AWS Glue) eine Katalogintegration für den AWS Glue-Datenkatalog.
Im folgenden Beispiel wird eine Katalogintegration erstellt, der einen AWS Glue-Datenkatalog verwendet. Das Beispiel gibt einen Wert für den optionalen Parameter GLUE_REGION
an.
CREATE CATALOG INTEGRATION glueCatalogInt
CATALOG_SOURCE = GLUE
CATALOG_NAMESPACE = 'my.catalogdb'
TABLE_FORMAT = ICEBERG
GLUE_AWS_ROLE_ARN = 'arn:aws:iam::123456789012:role/myGlueRole'
GLUE_CATALOG_ID = '123456789012'
GLUE_REGION = 'us-east-2'
ENABLED = TRUE;
Schritt 3: AWS-IAM-Benutzer und externe ID für Ihr Snowflake-Konto abrufen¶
Um Informationen zu dem AWS-IAM-Benutzer und die externe ID abzurufen, die für Ihr Snowflake-Konto erstellt wurden, als Sie die Katalogintegration erstellt haben, führen Sie den Befehl DESCRIBE CATALOG INTEGRATION aus. Sie geben diese Informationen im nächsten Abschnitt an AWS weiter, um eine Vertrauensstellung einzurichten.
Der folgende Beispielbefehl beschreibt die im vorherigen Schritt erstellte Katalogintegration:
DESCRIBE CATALOG INTEGRATION glueCatalogInt;
Notieren Sie die folgenden Werte:
Wert
Beschreibung
GLUE_AWS_IAM_USER_ARN
Der AWS-IAM-Benutzer, der für Ihr Snowflake-Konto erstellt wurde, in diesem Beispiel
arn:aws:iam::123456789001:user/abc1-b-self1234
. Snowflake stellt genau einen IAM-Benutzer für Ihr gesamtes Snowflake-Konto bereit. Alle Glue-Katalogintegrationen in Ihrem Konto verwenden diesen IAM-Benutzer.
GLUE_AWS_EXTERNAL_ID
Die externe ID, die zum Herstellen einer vertrauenswürdigen Beziehung erforderlich ist.
Diese Werte werden Sie im nächsten Abschnitt angeben.
Schritt 4: IAM-Benutzerberechtigungen für den Zugriff auf den AWS Glue-Datenkatalog erteilen¶
Aktualisieren Sie die Vertrauensrichtlinie für die gleiche IAM-Rolle, die Sie beim Erstellen der Katalogintegration mit dem ARN angegeben haben (GLUE_AWS_ROLE_ARN
). Fügen Sie die Werte, die Sie sich in Schritt 3: AWS-IAM-Benutzer und externe ID für Ihr Snowflake-Konto abrufen notiert haben, der Vertrauensrichtlinie hinzu.
Eine Anleitung dazu finden Sie unter Ändern einer Vertrauensrichtlinie.
Das folgende Beispiel einer Vertrauensrichtlinie zeigt, wo die Werte GLUE_AWS_IAM_USER_ARN
und GLUE_AWS_EXTERNAL_ID
angegeben werden müssen:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "<glue_iam_user_arn>"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "<glue_aws_external_id>"
}
}
}
]
}
Wobei:
glue_iam_user_arn
ist der WertGLUE_IAM_USER_ARN
, den Sie erfasst haben.
glue_aws_external_id
ist der WertGLUE_AWS_EXTERNAL_ID
, den Sie erfasst haben.
Bemerkung
Wenn Sie aus Sicherheitsgründen eine neue Katalogintegration erstellen (oder eine vorhandene Katalogintegration mit der Syntax CREATE OR REPLACE CATALOG INTEGRATION neu erstellen), hat die neue Katalogintegration eine andere externe ID und kann die Vertrauensstellung nicht auflösen, es sei denn, Sie ändern die Vertrauensrichtlinie mit der neuen externen ID.
Um zu überprüfen, ob Ihre Berechtigungen korrekt konfiguriert sind, erstellen Sie eine Iceberg-Tabelle unter Verwendung dieser Katalogintegration. Snowflake prüft erst dann, ob Ihre Berechtigungen korrekt eingestellt sind, wenn Sie eine Iceberg-Tabelle erstellen, die auf diese Katalogintegration verweist.
Nächste Schritte¶
Nachdem Sie eine Katalogintegration für AWS Glue konfiguriert haben, können Sie eine Iceberg-Tabelle erstellen, die AWS Glue als Katalog verwendet.
Um die Tabelle zu aktualisieren und sie mit Änderungen in AWS Glue synchron zu halten, verwenden Sie eine ALTER ICEBERG TABLE … REFRESH-Anweisung. Weitere Informationen dazu finden Sie unter Aktualisieren der Metadaten für eine Tabelle.