Automatische Erzeugung von Anmeldeinformationen für einen externen Katalog aktivieren¶
Mit der automatischen Erzeugung von Anmeldeinformationen können Sie Snowflake Open Catalog verwenden, um die Zugriffssteuerung für einen Katalog und den zugrunde liegenden Cloud-Speicher an einem einzigen Ort zu konfigurieren und zu verwalten. Für interne Kataloge ist die automatische Erzeugung von Anmeldeinformationen standardmäßig aktiviert. Für externe Kataloge können Sie die automatische Erzeugung von Anmeldeinformationen mit einer der folgenden Optionen aktivieren:
Wichtig
Bevor Sie die automatische Erzeugung von Anmeldeinformationen für einen externen Katalog aktivieren, vergewissern Sie sich, dass Ihre Tabellen im Katalog keine überschneidenden Speicherverzeichnisse besitzen. Andernfalls könnten Benutzer auf Tabellen zugreifen, für die sie keine Zugriffsrechte besitzen dürften. Weitere Informationen finden Sie unter Automatische Erzeugung von Anmeldeinformationen für externe Kataloge.
Open Catalog verwenden¶
Melden Sie sich an, um den Katalog zu öffnen.
Wählen Sie im Menü auf der linken Seite Kataloge.
Wählen Sie in der Liste der Kataloge den Katalog aus, für den Sie die automatische Erzeugung von Anmeldeinformationen aktivieren möchten.
Wählen Sie auf der Registerkarte Katalogdetails unter Speicherdetails unter Automatische Erzeugung von Anmeldeinformationen das Symbol Bearbeiten.
Wählen Sie in dem daraufhin angezeigten Popup-Fenster Aktivieren.
Apache Polaris™ (incubating)-CLI¶
In diesem Abschnitt wird beschrieben, wie Sie die automatische Erzeugung von Anmeldeinformationen für einen externen Katalog mithilfe des Polaris-CLI aktivieren. Das Apache Polaris (incubating)-CLI ist eine Befehlszeilenschnittstelle, über die Kunden die Einstellungen programmatisch aktualisieren können. Weitere Informationen finden Sie unter Apache Polaris (incubating)-CLI.
Um die Automatische Erzeugung von Anmeldeinformationen für einen externen Katalog zu aktivieren, verwenden Sie eine Dienstverbindung mit dem Polaris-CLI.
Schritt 1: Bereiten Sie eine Dienstverbindung mit den erforderlichen Berechtigungen vor¶
Erstellen Sie eine Prinzipalrolle, um sie der neuen Dienstverbindung zuweisen. Überspringen Sie diesen Schritt, wenn Sie bereits eine Prinzipalrolle haben, die Sie der Dienstverbindung zuweisen können.
Konfigurieren Sie eine Dienstverbindung und speichern Sie die Client-ID und das Client-Geheimnis, um sie später mit dem Polaris-CLI zu verwenden. Überspringen Sie diesen Schritt, wenn Sie bereits über eine Dienstverbindung zur Nutzung des Polaris-CLI verfügen.
Erstellen Sie eine Katalogrolle in den Zielkatalogen, um ihr die Berechtigungen zu erteilen, die für die automatische Erzeugung von Anmeldeinformationen erforderlich sind. Überspringen Sie diesen Schritt, wenn Sie bereits eine Katalogrolle haben, die Sie für die Aktivierung der automatischen Erzeugung von Anmeldeinformationen verwenden können.
Sichern Sie den Zielkatalog. Stellen Sie bei der Sicherung sicher, dass der Katalogrolle mindestens eine der folgenden Berechtigungen zugewiesen ist:
CATALOG_MANAGE_CONTENT
CATALOG_MANAGE_METADATA
CATALOG_WRITE_PROPERTIES
Um die automatische Erzeugung von Anmeldeinformationen zu aktivieren, muss dem Dienstprinzipal, der diesen Vorgang durchführt, eine dieser Berechtigungen gewährt werden.
Schritt 2: Führen Sie den CLI-Befehl aus¶
Um den CLI-Befehl auszuführen, lesen Sie die entsprechenden Schritte für Ihre Umgebung:
Führen Sie den CLI-Befehl als Linux- oder Mac-Benutzer aus¶
Voraussetzungen¶
Bevor Sie den CLI-Befehl ausführen, sollten Sie die folgenden Voraussetzungen für Ihre Umgebung erfüllen:
Um den CLI-Befehl unter Linux oder Mac auszuführen, gehen Sie wie folgt vor:
Klonen Sie das Apache Polaris™ GitHub-Repository, indem Sie den folgenden Befehl ausführen:
git clone https://github.com/apache/polaris.git
Anweisungen zum Klonen eines GitHub-Repositorys finden Sie unter Klonen eines Repositorys.
Definieren Sie die folgenden Umgebungsvariablen für den CLI-Befehl:
export CLIENT_ID=<client-id> export CLIENT_SECRET=<client-secret> export sfAccountUrl=https://<open_catalog_account_identifier>.snowflakecomputing.com export catalogName=<my-catalog>
Wobei:
sfAccountUrl
die folgende URL ist:https://<open_catalog_account_identifier>.snowflakecomputing.com
. Für<open_catalog_account_identifier>
geben Sie den Kontobezeichner für Ihr Open Catalog-Konto an. Je nach Region und Cloud-Plattform für das Konto kann dieser Bezeichner der Konto-Locator selbst sein (zum Beispielxy12345
) oder zusätzliche Segmente enthalten. Weitere Informationen finden Sie unter Einen Konto-Locator als Bezeichner verwenden.CLIENT_ID
ist die client_id für Ihre Dienstverbindung, die Sie gespeichert haben.CLIENT_SECRET
ist das client_secret für Ihre Serviceverbindung, das Sie gespeichert haben.catalogName
ist der Name des externen Katalogs, für den Sie die automatische Erzeugung von Anmeldeinformationen aktivieren möchten.
Führen Sie in dem Verzeichnis, in das Sie das Apache Polaris-Repository geklont haben, das Polaris-CLI aus:
./polaris \ --base-url "${sfAccountUrl}/polaris" \ --client-id ${CLIENT_ID} \ --client-secret ${CLIENT_SECRET} \ catalogs \ update "${catalogName}" \ --set-property "enable.credential.vending"="true"
Führen Sie den CLI-Befehl als Windows-Benutzer aus¶
Voraussetzungen¶
Um den folgenden Code auszuführen, müssen Sie Docker auf dem Windows-Computer installieren.
Erstellen Sie eine Dockerdatei anhand des folgenden Codebeispiels:
FROM python:3.11 # install git RUN apt-get update && apt-get install -y git # get polaris RUN git clone https://github.com/apache/polaris.git WORKDIR /polaris RUN pip install --upgrade pip # install polaris cli RUN ./polaris --help
Erstellen Sie in dem Ordner, in dem sich die Dockerdatei befindet, das Docker-Image für Polaris-CLI mit dem folgenden Befehl:
% docker build -t polaris-cli . 0.0s
Starten Sie den Docker-Container und das Bash-Terminal mit dem folgenden Befehl:
% docker run --rm -it polaris-cli /bin/bash root@ae4c8353b45f:/polaris#
Führen Sie den folgenden Code aus, um den Katalog zu aktualisieren und die Eigenschaft
enable.credential.vending
auftrue
zu setzen:% docker run --rm -it polaris-cli /bin/bash root@ae4c8353b45f:/polaris# export CLIENT_ID=<client-id> export CLIENT_SECRET=<client-secret> export sfAccountUrl=https://<open_catalog_account_identifier>.snowflakecomputing.com export catalogName=<my-catalog> root@ae4c8353b45f:/polaris# ./polaris \ --base-url "${sfAccountUrl}/polaris" \ --client-id ${CLIENT_ID} \ --client-secret ${CLIENT_SECRET} \ catalogs \ update "${catalogName}" \ --set-property "enable.credential.vending"="true"
Führen Sie den folgenden Code aus, um zu überprüfen, ob der Parameter
enable.credential.vending
korrekt konfiguriert wurde:root@ae4c8353b45f:/polaris# ./polaris \ --base-url "${sfAccountUrl}/polaris" \ --client-id ${CLIENT_ID} \ --client-secret ${CLIENT_SECRET} \ catalogs \ get "${catalogName}" {"type": "EXTERNAL", "name": "<my-catalog>", "properties": {"default-base-location": "s3://<bucket-name>/polaris/my-catalog-v2-storage/", "enable.credential.vending": "true"}, "createTimestamp": 1722547448827, "lastUpdateTimestamp": 1730906335286, "entityVersion": 3, "storageConfigInfo": {"storageType": "S3", "allowedLocations": ["s3://<bucket-name>/polaris/my-catalog-v2-storage/"], "roleArn": "arn:aws:iam::<aws-account-id>:role/<polaris-aws-role>"}}