비공개 연결 엔드포인트 관리: Azure

이 항목에서는 외부 서비스에 대한 비공개 연결에 사용할 비공개 연결 엔드포인트를 관리하는 방법에 대한 정보를 제공합니다.

비공개 연결 엔드포인트 프로비저닝

SYSTEM$PROVISION_PRIVATELINK_ENDPOINT 시스템 함수를 호출하여 비공개 연결 엔드포인트를 생성할 수 있습니다. 예를 들어, Microsoft Azure 의 Snowflake 계정의 경우:

Microsoft Azure 의 Snowflake가 Microsoft Azure VNet 의 Microsoft Azure API 관리 서비스에 연결할 수 있도록 비공개 엔드포인트를 프로비저닝합니다.

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.

외부 네트워크 액세스를 사용하여 Microsoft Azure 의 Snowflake가 외부 서비스에 연결할 수 있도록 비공개 엔드포인트를 프로비저닝합니다.

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"

Snowflake가 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"

Snowflake는 Snowflake 계정을 호스팅하는 클라우드 플랫폼의 APIs를 호출하여 엔드포인트를 생성하고 관련 네트워킹 구성을 업데이트합니다.

비공개 연결 엔드포인트 나열

SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO 시스템 함수를 호출하여 생성한 비공개 연결 엔드포인트를 목록으로 만들 수 있습니다. 예를 들어, Microsoft Azure 의 Snowflake 계정의 경우:

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

비공개 연결 엔드포인트 프로비저닝 취소

SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT 시스템 함수를 호출하여 기존 비공개 연결 엔드포인트를 삭제할 수 있습니다. 예를 들어, Microsoft Azure 의 Snowflake 계정의 경우:

비공개 엔드포인트의 프로비저닝을 취소하여 Microsoft Azure의 Snowflake가 Microsoft Azure VNet 의 Microsoft Azure API 관리 서비스에 연결할 수 없도록 합니다.

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.

비공개 엔드포인트의 프로비저닝을 해제하여 Microsoft Azure 의 Snowflake가 외부 네트워크 액세스를 사용하여 외부 서비스에 연결할 수 없도록 합니다.

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"

비공개 엔드포인트를 프로비저닝 취소하여 Microsoft Azure 의 외부 스테이지에 Snowflake가 연결되지 않도록 합니다.

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"

프로비저닝 취소된 비공개 연결 엔드포인트 복원

프로비저닝 취소된 비공개 연결 엔드포인트는 SYSTEM$RESTORE_PRIVATELINK_ENDPOINT 시스템 함수를 호출하여 프로비저닝을 취소한 후 7일 이내에 복원할 수 있습니다. 7일 후에는 엔드포인트를 복구할 수 없으며 새 엔드포인트를 프로비저닝해야 합니다.

Microsoft Azure의 Snowflake가 Azure VNet의 Azure API Management 서비스에 연결할 수 있도록 비공개 엔드포인트를 복원합니다.

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.

문제 해결하기

Microsoft Azure 외부 서비스: 지정된 구독에 액세스할 수 없습니다.

오류

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

원인

외부 서비스에 매핑되는 개인 엔드포인트에 구독에 액세스하는 데 필요한 올바른 정보가 없습니다.

해결책

  1. 외부 서비스의 엔드포인트를 삭제하려면 SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT 시스템 함수를 호출합니다.

  2. SYSTEM$PROVISION_PRIVATELINK_ENDPOINT 시스템 함수를 호출하여 외부 서비스에 대한 엔드포인트를 다시 생성합니다. 올바른 구독, 호스트 이름, 하위 리소스 값을 지정합니다.

  3. 네트워크 규칙을 바꾸고 VALUE_LIST 속성에 올바른 호스트 이름 값을 지정해야 합니다.