Gerenciar pontos de extremidade de conectividade privada: Azure

Este tópico fornece informações sobre como gerenciar pontos de extremidade de conectividade privada para uso com conectividade privada a um serviço externo.

Provisionar pontos de extremidade de conectividade privada

Você pode criar um ponto de extremidade de conectividade privada chamando a função do sistema SYSTEM$PROVISION_PRIVATELINK_ENDPOINT. Por exemplo, para sua conta Snowflake no Microsoft Azure:

Provisione um ponto de extremidade privado para permitir que o Snowflake no Microsoft Azure se conecte ao serviço Microsoft Azure API Management na sua Microsoft Azure VNet:

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.

Provisione um ponto de extremidade privado para permitir que o Snowflake no Microsoft Azure se conecte a um serviço externo usando o acesso de rede externa:

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"

Provisione um ponto de extremidade privado para permitir que o Snowflake se conecte a um estágio externo para o Microsoft Azure:

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"

O Snowflake chama as APIs para a plataforma de nuvem que hospeda sua conta Snowflake a fim de criar o ponto de extremidade e atualizar as configurações de rede relacionadas.

Listar pontos de extremidade de conectividade privada

Você pode listar os pontos de extremidade de conectividade privada que você cria chamando a função do sistema SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO. Por exemplo, para sua conta Snowflake no 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

Desprovisionar pontos de extremidade de conectividade privada

Você pode excluir um ponto de extremidade de conectividade privada existente chamando a função do sistema SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT. Por exemplo, para sua conta Snowflake no Microsoft Azure:

Desprovisione um ponto de extremidade privado para impedir que o Snowflake no Microsoft Azure se conecte ao serviço Microsoft Azure API Management na sua Microsoft Azure VNet:

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.

Desprovisione um ponto de extremidade privado para impedir que o Snowflake no Microsoft Azure se conecte a um serviço externo usando o acesso de rede externa:

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"

Desprovisione um ponto de extremidade privado para impedir que o Snowflake se conecte a um estágio externo para o Microsoft Azure:

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"

Restaurar um ponto de extremidade de conectividade privada desprovisionado

Você pode restaurar um ponto de extremidade de conectividade privada que você desprovisionou em até 7 dias após o desprovisionamento chamando a função do sistema SYSTEM$RESTORE_PRIVATELINK_ENDPOINT. Após 7 dias, o ponto de extremidade não poderá ser restaurado e você precisará provisionar um novo ponto de extremidade.

Restaure um ponto de extremidade privado para permitir que o Snowflake no Microsoft Azure se conecte ao serviço Azure API Management na sua Azure VNet:

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.

Solução de problemas

Serviços externos do Microsoft Azure: você não pode acessar uma assinatura especificada

Erro

(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>'.

Causa

O ponto de extremidade privado que mapeia para o serviço externo não tem as informações corretas para acessar a assinatura.

Solução

  1. Chame a função do sistema SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT para excluir o ponto de extremidade do serviço externo.

  2. Chame a função do sistema SYSTEM$PROVISION_PRIVATELINK_ENDPOINT para recriar o ponto de extremidade para o serviço externo. Certifique-se de especificar os valores corretos de assinatura, nome do host e sub-recurso.

  3. Substitua a regra de rede e certifique-se de especificar o valor correto do nome do host na propriedade VALUE_LIST.