Private Konnektivitätsendpunkte verwalten: Azure

In diesem Thema finden Sie Informationen zur Verwaltung von privaten Konnektivitätsendpunkten zur Verwendung mit einer privaten Konnektivität zu einem externen Dienst.

Bereitstellung privater Konnektivitätsendpunkte

Sie können einen privaten Konnektivitätsendpunkt erstellen, indem Sie die Systemunktion SYSTEM$PROVISION_PRIVATELINK_ENDPOINT aufrufen. Zum Beispiel für Ihr Snowflake-Konto für Microsoft Azure:

Stellen Sie einen privaten Endpunkt bereit, damit Snowflake auf Microsoft Azure mit dem Microsoft Azure API Management Service in Ihrem Microsoft Azure VNet verbunden werden kann:

SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
  '/subscriptions/f4b00c5f-f6bf-41d6-806b-e1cac4f1f36f/resourceGroups/aztest1-external-function-rg/providers/Microsoft.ApiManagement/service/aztest1-external-function-api',
  'aztest1-external-function-api.azure.net',
  'Gateway'
  );
Copy
Private endpoint with ID "/subscriptions/e48379a7-2fc4-473e-b071-f94858cc83f5/resourcegroups/test_rg/providers/microsoft.network/privateendpoints/32bd3122-bfbd-417d-8620-1a02fd68fcf8" to resource "/subscriptions/f4b00c5f-f6bf-41d6-806b-e1cac4f1f36f/resourceGroups/aztest1-external-function-rg/providers/Microsoft.ApiManagement/service/aztest1-external-function-api" has been provisioned successfully. Please note down the endpoint ID and approve the connection from it on the Azure portal.

Stellen Sie einen privaten Endpunkt bereit, damit Snowflake auf Microsoft Azure eine Verbindung zu einem externen Dienst über einen externen Netzwerkzugang herstellen kann:

SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
  '/subscriptions/11111111-2222-3333-4444-5555555555/resourceGroups/leorg1/providers/Microsoft.Sql/servers/myserver/databases/testdb',
  'testdb.database.windows.net',
  'sqlServer'
  );
Copy
"Resource Endpoint with id "/subscriptions/f0abb333-1b05-47c6-8c31-dd36d2512fd1/resourceGroups/privatelink-test/providers/Microsoft.Network/privateEndpoints/external-network-access-pe" provisioned successfully"

Stellen Sie einen privaten Endpunkt bereit, damit Snowflake eine Verbindung zu einem externen Stagingbereich für Microsoft Azure herstellen kann:

SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
  '/subscriptions/cc2909f2-ed22-4c89-8e5d-bdc40e5eac26/resourceGroups/mystorage/providers/Microsoft.Storage/storageAccounts/storagedemo',
  'storagedemo.blob.core.windows.net',
  'blob'
);
Copy
"Resource Endpoint with id "/subscriptions/57faea9a-20c2-4d35-b283-9c0c1e9593d8/resourceGroups/privatelink-test/providers/Microsoft.Network/privateEndpoints/external-network-access-pe" provisioned successfully"

Snowflake ruft die APIs für die Cloud-Plattform auf, die Ihr Snowflake-Konto hostet, um den Endpunkt zu erstellen und die zugehörigen Netzwerkkonfigurationen zu aktualisieren.

Auflistung privater Konnektivitätsendpunkte

Sie können die privaten Konnektivitätsendpunkte, die Sie erstellen, auflisten, indem Sie die Systemfunktion SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO aufrufen. Zum Beispiel für Ihr Snowflake-Konto für Microsoft Azure:

SELECT SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO();
Copy
[
   {
      "host": "aztest1-external-function-api.azure-api.net",
      "status": "APPROVED",
      "resource_id":  "/subscriptions/fa57a1f0-b4e6-4847-9c00-95f39520f35e/resourceGroups/privatelink-test/providers/Microsoft.Network/privateEndpoints/apim-pe"
   }
]
Copy

Entfernen von privaten Konnektivitätsendpunkten

Sie können einen bestehenden privaten Konnektivitätsendpunkt löschen, indem Sie die Systemfunktion SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT aufrufen. Zum Beispiel für Ihr Snowflake-Konto für Microsoft Azure:

Entfernen Sie einen privaten Endpunkt, um zu verhindern, dass Snowflake auf Microsoft Azure eine Verbindung mit dem Microsoft Azure API Management Service in Ihrem Microsoft Azure VNet herstellt:

SELECT SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT(
  '/subscriptions/f4b00c5f-f6bf-41d6-806b-e1cac4f1f36f/resourceGroups/aztest1-external-function-rg/providers/Microsoft.ApiManagement/service/aztest1-external-function-api',
  'Gateway'
  );
Copy
Private endpoint with id "/subscriptions/e48379a7-2fc4-473e-b071-f94858cc83f5/resourcegroups/test_rg/providers/microsoft.network/privateendpoints/5ef8fd34-07db-4583-b0dd-0e2360398ed3" successfully marked for deletion. Before it is fully deleted in 7-8 days, it can be restored.

Entfernen Sie einen privaten Endpunkt, um zu verhindern, dass Snowflake auf Microsoft Azure eine Verbindung zu einem externen Dienst über einen externen Netzwerkzugang herstellt:

SELECT SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT(
  '/subscriptions/11111111-2222-3333-4444-5555555555/resourceGroups/leorg1/providers/Microsoft.Sql/servers/myserver/databases/testdb',
  'sqlServer'
  );
Copy
"Resource Endpoint with id "/subscriptions/f0abb333-1b05-47c6-8c31-dd36d2512fd1/resourceGroups/privatelink-test/providers/Microsoft.Network/privateEndpoints/external-network-access-pe" deprovisioned successfully"

Entfernen Sie einen privaten Endpunkt, um zu verhindern, dass Snowflake eine Verbindung zu einem externen Stagingbereich für Microsoft Azure herstellt:

SELECT SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT(
  'storagedemo.blob.core.windows.net',
  'blob'
);
Copy
"Resource Endpoint with id "/subscriptions/57faea9a-20c2-4d35-b283-9c0c1e9593d8/resourceGroups/privatelink-test/providers/Microsoft.Network/privateEndpoints/external-network-access-pe" deprovisioned successfully"

Wiederherstellung eines entfernten privaten Konnektivitätsendpunkts

Sie können einen privaten Konnektivitätsendpunkte innerhalb von 7 Tagen, nachdem Sie ihn entfernt haben, wiederherstellen, indem Sie die Systemfunktion SYSTEM$RESTORE_PRIVATELINK_ENDPOINT aufrufen. Nach Ablauf von 7 Tagen kann der Endpunkt nicht mehr wiederhergestellt werden und Sie müssen einen neuen Endpunkt bereitstellen.

Stellen Sie einen privaten Endpunkt wieder her, damit Snowflake auf Microsoft Azure eine Verbindung mit dem Azure API Management Service in Ihrem Azure VNet herstellen kann:

SELECT SYSTEM$RESTORE_PRIVATELINK_ENDPOINT(
  '/subscriptions/11111111-2222-3333-4444-5555555555/resourceGroups/my_rg/providers/Microsoft.Sql/servers/my_db_server',
  'sqlServer'
);
Copy
Private endpoint with id ''/subscriptions/66666666-7777-8888-9999-0000000000/resourcegroups/rg/providers/microsoft.network/privateendpoints/00000000-1111-2222-3333-4444444444'' restored successfully.

Problembehandlung

Externe Microsoft Azure-Services: Sie können nicht auf ein bestimmtes Abonnement zugreifen

Fehler

(LinkedAuthorizationFailed) The client has permission to perform action '<action_name>' on scope '<service_name>', however the current tenant '<tenant_id>' is not authorized to access linked subscription '<subscription_id'.

Code: LinkedAuthorizationFailed

Message: The client has permission to perform action '<action_name>' on scope '<service_name>', however the current tenant '<tenant_id>' is not authorized to access linked subscription '<subscription_id>'.

Ursache

Der private Endpunkt, der dem externen Service zugeordnet ist, verfügt nicht über die richtigen Informationen für den Zugriff auf das Abonnement.

Lösung

  1. Rufen Sie die Systemfunktion SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT auf, um den Endpunkt für den externen Dienst zu löschen.

  2. Rufen Sie die Systemfunktion SYSTEM$PROVISION_PRIVATELINK_ENDPOINT auf, um den Endpunkt für den externen Dienst neu zu erstellen. Achten Sie darauf, dass Sie die richtigen Werte für Abonnement, Hostname und Subressource angeben.

  3. Ersetzen Sie die Netzwerkregel und stellen Sie sicher, dass Sie den richtigen Wert für den Hostnamen in der Eigenschaft VALUE_LIST angeben.