> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Azure Private Link

> طريقة إعداد Azure Private Link

export const ScalePlanFeatureBadge = ({feature = 'هذه الميزة', linking_verb_are = false}) => {
  return <div className="scalePlanFeatureContainer">
            <div className="scalePlanFeatureBadge">
                ميزة باقة Scale
            </div>
            <div>
                <p>{feature} {linking_verb_are ? 'متوفرة' : 'متوفرة'} في باقتَي Scale وEnterprise. للترقية، انتقل إلى صفحة الخطط في Cloud Console.</p>
            </div>
        </div>;
};

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

<ScalePlanFeatureBadge feature="Azure Private Link" />

يوضح هذا الدليل كيفية استخدام Azure Private Link لتوفير اتصال خاص عبر شبكة افتراضية بين Azure (بما في ذلك الخدمات المملوكة للعملاء وخدمات Microsoft Partner) وClickHouse Cloud. ويُبسّط Azure Private Link بنية الشبكة ويؤمّن الاتصال بين نقاط النهاية في Azure من خلال منع تعرّض البيانات للإنترنت العام.

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-pe.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=dc77d27afd6dd25a67c8a73341fe7a6c" size="lg" alt="نظرة عامة على PrivateLink" background="white" width="906" height="414" data-path="images/cloud/security/azure-pe.webp" />

<Warning>
  يدعم Azure Private Link فقط الاتصالات التي تبدأ من Azure VNet لديك إلى ClickHouse Cloud. ولا يمكن استخدامه للاتصالات التي تبدأ من ClickHouse Cloud إلى الخدمات الموجودة في VNet لديك، مثل قاعدة بيانات خاصة.
</Warning>

تدعم Azure الاتصال عبر المناطق المختلفة من خلال Private Link. يتيح لك ذلك إنشاء اتصالات بين شبكات VNet الموجودة في مناطق مختلفة نُشرت فيها خدمات ClickHouse لديك.

<Note>
  قد تُفرض رسوم إضافية على حركة المرور بين المناطق. يُرجى مراجعة أحدث وثائق Azure.
</Note>

**يُرجى إكمال الخطوات التالية لتمكين Azure Private Link:**

1. احصل على الاسم المستعار لاتصال Azure في Private Link
2. أنشئ Private Endpoint في Azure
3. أضف معرّف مورد Private Endpoint إلى المؤسسة في ClickHouse Cloud
4. أضف معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بخدماتك
5. الوصول إلى خدمة ClickHouse Cloud الخاصة بك باستخدام Private Link

<Note>
  انتقلت ClickHouse Cloud Azure PrivateLink من استخدام عوامل تصفية resourceGUID إلى عوامل تصفية Resource ID. ولا يزال بإمكانك استخدام resourceGUID لأنه متوافق مع الإصدارات السابقة، لكننا نوصي بالانتقال إلى عوامل تصفية Resource ID. للترحيل، ما عليك سوى إنشاء endpoint جديد باستخدام Resource ID، وربطه بالخدمة، ثم إزالة endpoint القديم المستند إلى resourceGUID.
</Note>

<div id="attention">
  ## تنبيه
</div>

يحاول ClickHouse تجميع خدماتك لإعادة استخدام [خدمة Private Link](https://learn.microsoft.com/en-us/azure/private-link/private-link-service-overview) المنشورة نفسها داخل منطقة Azure. ومع ذلك، لا يضمن هذا التجميع دائمًا، خصوصًا إذا كانت خدماتك موزعة على عدة مؤسسات في ClickHouse.
إذا كان Private Link مُعدًّا بالفعل لخدمات أخرى في مؤسسة ClickHouse الخاصة بك، فغالبًا يمكنك تخطي معظم الخطوات بفضل هذا التجميع والانتقال مباشرةً إلى الخطوة الأخيرة: [إضافة معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بخدماتك](#add-private-endpoint-id-to-services-allow-list).

يمكنك العثور على أمثلة Terraform في [مستودع Terraform Provider الخاص بـ ClickHouse](https://github.com/ClickHouse/terraform-provider-clickhouse/tree/main/examples/).

<div id="obtain-azure-connection-alias-for-private-link">
  ## الحصول على الاسم المستعار لاتصال Azure الخاص بـ Private Link
</div>

<div id="option-1-clickhouse-cloud-console">
  ### الخيار 1: وحدة تحكم ClickHouse Cloud
</div>

في وحدة تحكم ClickHouse Cloud، افتح الخدمة التي تريد الاتصال بها عبر PrivateLink، ثم افتح قائمة **Settings**. انقر على زر **إعداد Private Endpoint**. دوّن `Service name` و`DNS name`، إذ سيُستخدمان عند إعداد Private Link.

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-privatelink-pe-create.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=731b46648c85879bd271b3c9fa4a8f44" size="lg" alt="نقاط النهاية الخاصة" border width="1898" height="918" data-path="images/cloud/security/azure-privatelink-pe-create.webp" />

دوّن `Service name` و`DNS name`، فستحتاج إليهما في الخطوات التالية.

<div id="option-2-api">
  ### الخيار 2: API
</div>

قبل البدء، ستحتاج إلى مفتاح API لـ ClickHouse Cloud. يمكنك [إنشاء مفتاح جديد](/docs/ar/products/cloud/features/admin-features/api/openapi) أو استخدام مفتاح حالي.

بمجرد حصولك على مفتاح API، عيّن متغيرات البيئة التالية قبل تشغيل أي أوامر:

```bash theme={null}
REGION=<region code, use Azure format, for example: westus3>
PROVIDER=azure
KEY_ID=<Key ID>
KEY_SECRET=<Key secret>
ORG_ID=<set ClickHouse organization ID>
SERVICE_NAME=<Your ClickHouse service name>
```

احصل على `INSTANCE_ID` الخاص بمثيل ClickHouse من خلال التصفية حسب المنطقة والمزوّد واسم الخدمة:

```shell theme={null}
INSTANCE_ID=$(curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" \
"https://api.clickhouse.cloud/v1/organizations/${ORG_ID:?}/services" | \
jq ".result[] | select (.region==\"${REGION:?}\" and .provider==\"${PROVIDER:?}\" and .name==\"${SERVICE_NAME:?}\") | .id " -r)
```

احصل على الاسم المستعار لاتصال Azure واسم مضيف DNS الخاص بـ Private Link:

```bash theme={null}
curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" "https://api.clickhouse.cloud/v1/organizations/${ORG_ID:?}/services/${INSTANCE_ID:?}/privateEndpointConfig" | jq  .result
{
  "endpointServiceId": "production-westus3-0-0.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.westus3.azure.privatelinkservice",
  "privateDnsHostname": "xxxxxxxxxx.westus3.privatelink.azure.clickhouse.cloud"
}
```

دوّن قيمة `endpointServiceId`. ستستخدمها في الخطوة التالية.

<div id="create-private-endpoint-in-azure">
  ## إنشاء Private Endpoint في Azure
</div>

<Warning>
  يغطي هذا القسم التفاصيل الخاصة بـ ClickHouse لإعداد ClickHouse عبر Azure Private Link. تُقدَّم الخطوات الخاصة بـ Azure كمرجع لإرشادك إلى المواضع التي ينبغي الرجوع إليها، لكنها قد تتغير بمرور الوقت دون إشعار من موفّر الخدمة السحابية Azure. يُرجى ضبط إعدادات Azure بما يتناسب مع حالة الاستخدام الخاصة بك.

  يرجى ملاحظة أن ClickHouse غير مسؤول عن إعداد Azure private endpoints المطلوبة وسجلات DNS.

  إذا واجهت أي مشكلات تتعلق بمهام إعداد Azure، فتواصل مباشرةً مع Azure Support.
</Warning>

في هذا القسم، سننشئ Private Endpoint في Azure. يمكنك استخدام Azure Portal أو Terraform.

<div id="option-1-using-azure-portal-to-create-a-private-endpoint-in-azure">
  ### الخيار 1: استخدام Azure Portal لإنشاء نقطة نهاية خاصة في Azure
</div>

في Azure Portal، افتح **Private Link Center → Private Endpoints**.

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-private-link-center.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=d9c347f124b516d3948912a75f2ccd68" size="lg" alt="افتح Azure Private Center" border width="1485" height="693" data-path="images/cloud/security/azure-private-link-center.webp" />

افتح مربع حوار إنشاء **Private Endpoint** بالنقر على الزر **Create**.

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-private-link-center.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=d9c347f124b516d3948912a75f2ccd68" size="lg" alt="افتح Azure Private Center" border width="1485" height="693" data-path="images/cloud/security/azure-private-link-center.webp" />

***

في الشاشة التالية، حدِّد الخيارات التالية:

* **Subscription** / **Resource Group**: يُرجى اختيار اشتراك Azure ومجموعة الموارد الخاصة بـ **Private Endpoint**.
* **Name**: عيّن اسمًا لـ **Private Endpoint**.
* **Region**: اختر المنطقة التي توجد فيها شبكة VNet المنشورة والتي ستتصل بـ ClickHouse Cloud عبر Private Link.

بعد إكمال الخطوات أعلاه، انقر على الزر **Next: Resource**.

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-pe-create-basic.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=24f19464e799ac2bde676abfb623c770" size="md" alt="إنشاء أساسيات Private Endpoint" border width="784" height="923" data-path="images/cloud/security/azure-pe-create-basic.webp" />

***

حدِّد الخيار **Connect to an Azure resource by resource ID or alias**.

بالنسبة إلى **Resource ID or alias**، استخدم `endpointServiceId` الذي حصلت عليه من خطوة [الحصول على الاسم المستعار لاتصال Azure لـ Private Link](#obtain-azure-connection-alias-for-private-link).

انقر على الزر **Next: Virtual Network**.

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-pe-resource.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=5df4afb2267c72c4ef7d7ad009190be6" size="md" alt="تحديد مورد Private Endpoint" border width="1122" height="911" data-path="images/cloud/security/azure-pe-resource.webp" />

***

* **Virtual network**: اختر شبكة VNet التي تريد ربطها بـ ClickHouse Cloud باستخدام Private Link
* **Subnet**: اختر الشبكة الفرعية التي سيتم فيها إنشاء **Private Endpoint**

اختياري:

* **Application security group**: يمكنك إرفاق ASG بـ **Private Endpoint** واستخدامه في **Network Security Groups** لتصفية حركة مرور الشبكة من وإلى **Private Endpoint**.

انقر على الزر **Next: DNS**.

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-pe-create-vnet.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=0499d536c732468d4fa538221af4edfd" size="md" alt="تحديد الشبكة الظاهرية لـ Private Endpoint" border width="1056" height="917" data-path="images/cloud/security/azure-pe-create-vnet.webp" />

انقر على الزر **Next: Tags**.

***

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-pe-create-dns.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=68da549d1d866baae8e2fbe58784e8df" size="md" alt="إعداد DNS لـ Private Endpoint" border width="818" height="921" data-path="images/cloud/security/azure-pe-create-dns.webp" />

اختياريًا، يمكنك إرفاق tags بـ **Private Endpoint**.

انقر على الزر **Next: Review + create**.

***

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-pe-create-tags.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=b643c83fde1656d9ceb909489a4ca221" size="md" alt="علامات Private Endpoint" border width="912" height="919" data-path="images/cloud/security/azure-pe-create-tags.webp" />

أخيرًا، انقر على الزر **Create**.

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-pe-create-review.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=a622720b6a4c59e7076c45289fb12bbd" size="md" alt="مراجعة Private Endpoint" border width="911" height="919" data-path="images/cloud/security/azure-pe-create-review.webp" />

ستكون **Connection status** الخاصة بـ **Private Endpoint** التي تم إنشاؤها في حالة **Pending**. وستتغير إلى حالة **Approved** بمجرد إضافة **Private Endpoint** هذه إلى allow list الخاصة بالخدمة.

افتح **network interface** المرتبطة بـ **Private Endpoint** وانسخ **Private IPv4 address** ‏(10.0.0.4 في هذا المثال)، إذ ستحتاج إلى هذه المعلومة في الخطوات التالية.

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-pe-ip.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=9c0fccdb2a70bfc48e1f89e15ffb1a5b" size="lg" alt="عنوان IP لـ Private Endpoint" border width="1155" height="621" data-path="images/cloud/security/azure-pe-ip.webp" />

<div id="option-2-using-terraform-to-create-a-private-endpoint-in-azure">
  ### الخيار 2: استخدام Terraform لإنشاء Private Endpoint في Azure
</div>

استخدم القالب أدناه لإنشاء Private Endpoint باستخدام Terraform:

```json theme={null}
resource "azurerm_private_endpoint" "example_clickhouse_cloud" {
  name                = var.pe_name
  location            = var.pe_location
  resource_group_name = var.pe_resource_group_name
  subnet_id           = var.pe_subnet_id

  private_service_connection {
    name                              = "test-pl"
    private_connection_resource_alias = "<data from 'Obtain Azure connection alias for Private Link' step>"
    is_manual_connection              = true
  }
}
```

<div id="obtaining-private-endpoint-resourceid">
  ### الحصول على معرّف مورد Private Endpoint
</div>

لاستخدام Private Link، تحتاج إلى إضافة Resource ID لاتصال Private Endpoint إلى قائمة السماح الخاصة بالـ service.

يظهر معرّف مورد Private Endpoint في Azure Portal. افتح Private Endpoint الذي تم إنشاؤه في الخطوة السابقة وانقر على **JSON View**:

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-pe-view.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=c1842eaec4c17cdfa0a4b5af45c746ef" size="lg" alt="عرض Private Endpoint" border width="1329" height="839" data-path="images/cloud/security/azure-pe-view.webp" />

ضمن properties، ابحث عن الحقل `id` وانسخ هذه القيمة:

**الطريقة المفضلة: استخدام Resource ID**

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-pe-resource-id.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=9105d9076d60599e23ee2c9dbb72c1ff" size="lg" alt="معرّف مورد Private Endpoint" border width="1704" height="1824" data-path="images/cloud/security/azure-pe-resource-id.webp" />

**الطريقة القديمة: استخدام resourceGUID**
لا يزال بإمكانك استخدام resourceGUID للحفاظ على backward compatibility. ابحث عن الحقل `resourceGuid` وانسخ هذه القيمة:

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-pe-resource-guid.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=35e544bfa40019510161104a43ab52f2" size="lg" alt="معرّف GUID لمورد Private Endpoint" border width="1702" height="1830" data-path="images/cloud/security/azure-pe-resource-guid.webp" />

<div id="setting-up-dns-for-private-link">
  ## إعداد DNS لـ Private Link
</div>

ستحتاج إلى إنشاء منطقة Private DNS (`${location_code}.privatelink.azure.clickhouse.cloud`) وربطها بـ VNet للوصول إلى الموارد عبر Private Link.

<div id="create-private-dns-zone">
  ### إنشاء منطقة Private DNS
</div>

**الخيار 1: باستخدام Azure Portal**

يُرجى اتباع هذا الدليل [لإنشاء منطقة Azure private DNS باستخدام Azure Portal](https://learn.microsoft.com/en-us/azure/dns/private-dns-getstarted-portal).

**الخيار 2: باستخدام Terraform**

استخدم قالب Terraform التالي لإنشاء منطقة Private DNS:

```json theme={null}
resource "azurerm_private_dns_zone" "clickhouse_cloud_private_link_zone" {
  name                = "${var.location}.privatelink.azure.clickhouse.cloud"
  resource_group_name = var.resource_group_name
}
```

<div id="create-a-wildcard-dns-record">
  ### إنشاء سجل DNS من نوع wildcard
</div>

أنشئ سجل wildcard ووجّهه إلى Private Endpoint الخاص بك:

**الخيار 1: باستخدام Azure Portal**

1. افتح مجموعة الموارد `MyAzureResourceGroup` وحدد منطقة Private DNS `${region_code}.privatelink.azure.clickhouse.cloud`.
2. حدد + Record set.
3. في Name، اكتب `*`.
4. في IP Address، اكتب عنوان IP الظاهر لـ Private Endpoint.
5. حدد **OK**.

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-pl-dns-wildcard.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=11288ed1cf32f85fbc26bb8d6a11e9d4" size="lg" alt="إعداد سجل DNS wildcard لـ Private Link" border width="1804" height="138" data-path="images/cloud/security/azure-pl-dns-wildcard.webp" />

**الخيار 2: باستخدام Terraform**

استخدم قالب Terraform التالي لإنشاء سجل DNS من نوع wildcard:

```json theme={null}
resource "azurerm_private_dns_a_record" "example" {
  name                = "*"
  zone_name           = var.zone_name
  resource_group_name = var.resource_group_name
  ttl                 = 300
  records             = ["10.0.0.4"]
}
```

<div id="create-a-virtual-network-link">
  ### إنشاء رابط شبكة افتراضية
</div>

لربط منطقة Private DNS بشبكة افتراضية، ستحتاج إلى إنشاء رابط شبكة افتراضية.

**الخيار 1: باستخدام Azure Portal**

يُرجى اتباع هذا الدليل [لربط الشبكة الافتراضية بـ منطقة Private DNS الخاصة بك](https://learn.microsoft.com/en-us/azure/dns/private-dns-getstarted-portal#link-the-virtual-network).

**الخيار 2: باستخدام Terraform**

<Note>
  توجد عدة طرق لتهيئة DNS. يُرجى إعداد DNS وفقًا لحالة الاستخدام الخاصة بك.
</Note>

تحتاج إلى توجيه "DNS name"، المأخوذ من خطوة [الحصول على الاسم المستعار لاتصال Azure لـ Private Link](#obtain-azure-connection-alias-for-private-link)، إلى عنوان IP الخاص بـ Private Endpoint. ويضمن ذلك أن تتمكن الخدمات/المكونات داخل VPC/الشبكة لديك من حلّه بشكل صحيح.

<div id="verify-dns-setup">
  ### تحقّق من إعداد DNS
</div>

يجب توجيه النطاق `xxxxxxxxxx.westus3.privatelink.azure.clickhouse.cloud` إلى عنوان IP الخاص بـ Private Endpoint. (`10.0.0.4` في هذا المثال).

```bash theme={null}
nslookup xxxxxxxxxx.westus3.privatelink.azure.clickhouse.cloud.
Server: 127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
Name: xxxxxxxxxx.westus3.privatelink.azure.clickhouse.cloud
Address: 10.0.0.4
```

<div id="add-the-private-endpoint-id-to-your-clickhouse-cloud-organization">
  ## أضِف معرّف مورد Private Endpoint إلى المؤسسة الخاصة بك في ClickHouse Cloud
</div>

<div id="option-1-clickhouse-cloud-console">
  ### الخيار 1: وحدة تحكم ClickHouse Cloud
</div>

لإضافة نقطة نهاية إلى المؤسسة، انتقل إلى خطوة [إضافة معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بخدماتك](#add-private-endpoint-id-to-services-allow-list). تؤدي إضافة معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بالخدمات باستخدام وحدة تحكم ClickHouse Cloud إلى إضافته تلقائيًا إلى المؤسسة.

لإزالة نقطة نهاية، افتح **Organization details -> Private Endpoints** وانقر على زر الحذف لإزالة نقطة النهاية.

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-pe-remove-private-endpoint.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=3f978e218a917c70b4db6d90a263fbbe" size="lg" alt="إزالة Private Endpoint" border width="1478" height="807" data-path="images/cloud/security/azure-pe-remove-private-endpoint.webp" />

<div id="option-2-api">
  ### الخيار 2: API
</div>

عيّن متغيرات البيئة التالية قبل تنفيذ أي أوامر:

```bash theme={null}
PROVIDER=azure
KEY_ID=<Key ID>
KEY_SECRET=<Key secret>
ORG_ID=<set ClickHouse organization ID>
ENDPOINT_ID=<Private Endpoint Resource ID>
REGION=<region code, use Azure format>
```

عيّن متغير البيئة `ENDPOINT_ID` باستخدام البيانات الواردة في خطوة [الحصول على معرّف مورد نقطة النهاية الخاصة](#obtaining-private-endpoint-resourceid).

شغّل الأمر التالي لإضافة Private Endpoint:

```bash theme={null}
cat <<EOF | tee pl_config_org.json
{
  "privateEndpoints": {
    "add": [
      {
        "cloudProvider": "azure",
        "id": "${ENDPOINT_ID:?}",
        "description": "Azure private endpoint",
        "region": "${REGION:?}"
      }
    ]
  }
}
EOF
```

يمكنك أيضًا تشغيل الأمر التالي لإزالة Private Endpoint:

```bash theme={null}
cat <<EOF | tee pl_config_org.json
{
  "privateEndpoints": {
    "remove": [
      {
        "cloudProvider": "azure",
        "id": "${ENDPOINT_ID:?}",
        "region": "${REGION:?}"
      }
    ]
  }
}
EOF
```

بعد إضافة Private Endpoint أو إزالته، نفِّذ الأمر التالي لتطبيق التغيير على مؤسستك:

```bash theme={null}
curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" -X PATCH -H "Content-Type: application/json" "https://api.clickhouse.cloud/v1/organizations/${ORG_ID:?}" -d @pl_config_org.json
```

<div id="add-private-endpoint-id-to-services-allow-list">
  ## أضِف معرّف مورد Private Endpoint إلى قائمة السماح لخدماتك
</div>

افتراضيًا، لا تكون خدمة ClickHouse Cloud متاحة عبر اتصال Private Link حتى إذا تمت الموافقة على اتصال Private Link وإنشاؤه. يجب عليك إضافة معرّف مورد Private Endpoint صراحةً لكل خدمة تريد إتاحتها باستخدام Private Link.

<div id="option-1-clickhouse-cloud-console">
  ### الخيار 1: وحدة تحكم ClickHouse Cloud
</div>

في وحدة تحكم ClickHouse Cloud، افتح الخدمة التي تريد الاتصال بها عبر PrivateLink، ثم انتقل إلى **الإعدادات**. أدخل `Resource ID` الذي حصلت عليه من الخطوة [السابقة](#obtaining-private-endpoint-resourceid).

<Note>
  إذا كنت تريد السماح بالوصول من اتصال PrivateLink موجود، فاستخدم القائمة المنسدلة الخاصة بنقطة النهاية الموجودة.
</Note>

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-privatelink-pe-filter.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=b1b219fc307883f226a591d3d20e11b4" size="lg" alt="تصفية نقاط النهاية الخاصة" border width="1898" height="918" data-path="images/cloud/security/azure-privatelink-pe-filter.webp" />

<div id="option-2-api">
  ### الخيار 2: API
</div>

عيّن متغيرات البيئة التالية قبل تنفيذ أي أوامر:

```bash theme={null}
PROVIDER=azure
KEY_ID=<Key ID>
KEY_SECRET=<Key secret>
ORG_ID=<set ClickHouse organization ID>
ENDPOINT_ID=<Private Endpoint Resource ID>
INSTANCE_ID=<Instance ID>
```

نفّذ هذا لكل خدمة يجب أن تكون متاحة عبر Private Link.

شغّل الأمر التالي لإضافة Private Endpoint إلى قائمة السماح الخاصة بالخدمات:

```bash theme={null}
cat <<EOF | tee pl_config.json
{
  "privateEndpointIds": {
    "add": [
      "${ENDPOINT_ID:?}"
    ]
  }
}
EOF
```

يمكنك أيضًا تنفيذ الأمر التالي لإزالة Private Endpoint من قائمة السماح الخاصة بالخدمات:

```bash theme={null}
cat <<EOF | tee pl_config.json
{
  "privateEndpointIds": {
    "remove": [
      "${ENDPOINT_ID:?}"
    ]
  }
}
EOF
```

بعد إضافة Private Endpoint إلى قائمة السماح للخدمات أو إزالته منها، شغّل الأمر التالي لتطبيق هذا التغيير على مؤسستك:

```bash theme={null}
curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" -X PATCH -H "Content-Type: application/json" "https://api.clickhouse.cloud/v1/organizations/${ORG_ID:?}/services/${INSTANCE_ID:?}" -d @pl_config.json | jq
```

<div id="access-your-clickhouse-cloud-service-using-private-link">
  ## الوصول إلى خدمة ClickHouse Cloud الخاصة بك باستخدام Private Link
</div>

تتضمن كل خدمة مفعَّل لها Private Link نقطة نهاية عامة وأخرى خاصة. وللاتصال باستخدام Private Link، تحتاج إلى استخدام نقطة نهاية خاصة، وستكون هذه هي `privateDnsHostname`<sup>API</sup> أو `اسم DNS`<sup>console</sup> المأخوذ من [الحصول على الاسم المستعار لاتصال Azure لـ Private Link](#obtain-azure-connection-alias-for-private-link).

<div id="obtaining-the-private-dns-hostname">
  ### الحصول على اسم مضيف DNS الخاص
</div>

<div id="option-1-clickhouse-cloud-console-3">
  #### الخيار 1: وحدة تحكم ClickHouse Cloud
</div>

في وحدة تحكم ClickHouse Cloud، انتقل إلى **الإعدادات**. انقر على الزر **إعداد Private Endpoint**. في اللوحة الجانبية التي تفتح، انسخ **اسم DNS**.

<Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/security/azure-privatelink-pe-dns.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=1b058b2bbb6dc5a9cc68ec8511492f22" size="lg" alt="اسم DNS لـ Private Endpoint" border width="1898" height="918" data-path="images/cloud/security/azure-privatelink-pe-dns.webp" />

<div id="option-2-api-3">
  #### الخيار 2: API
</div>

عيّن متغيرات البيئة التالية قبل تشغيل أي أوامر:

```bash theme={null}
KEY_ID=<Key ID>
KEY_SECRET=<Key secret>
ORG_ID=<set ClickHouse organization ID>
INSTANCE_ID=<Instance ID>
```

نفّذ الأمر التالي:

```bash theme={null}
curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" "https://api.clickhouse.cloud/v1/organizations/${ORG_ID:?}/services/${INSTANCE_ID:?}/privateEndpointConfig" | jq  .result
```

من المفترض أن تتلقى استجابةً مشابهة لما يلي:

```response theme={null}
{
  ...
  "privateDnsHostname": "xxxxxxx.<region code>.privatelink.azure.clickhouse.cloud"
}
```

في هذا المثال، سيُوجَّه الاتصال باسم المضيف `xxxxxxx.region_code.privatelink.azure.clickhouse.cloud` عبر Private Link. في المقابل، سيُوجَّه `xxxxxxx.region_code.azure.clickhouse.cloud` عبر الإنترنت.

استخدم `privateDnsHostname` للاتصال بخدمة ClickHouse Cloud الخاصة بك عبر Private Link.

<div id="troubleshooting">
  ## استكشاف الأخطاء وإصلاحها
</div>

<div id="test-dns-setup">
  ### اختبار إعدادات DNS
</div>

شغّل الأمر التالي:

```bash theme={null}
nslookup <dns name>
```

حيث يشير "اسم DNS" إلى `privateDnsHostname`<sup>API</sup> أو `DNS name`<sup>console</sup> من [الحصول على الاسم المستعار لاتصال Azure لـ Private Link](#obtain-azure-connection-alias-for-private-link)

يُفترض أن تتلقى الاستجابة التالية:

```response theme={null}
Non-authoritative answer:
Name: <dns name>
Address: 10.0.0.4
```

<div id="connection-reset-by-peer">
  ### أعاد النظير تعيين الاتصال
</div>

على الأرجح، لم تتم إضافة معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بالخدمة. راجع خطوة [*إضافة معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بخدماتك*](#add-private-endpoint-id-to-services-allow-list).

<div id="private-endpoint-is-in-pending-state">
  ### Private Endpoint في حالة انتظار
</div>

على الأرجح، لم تتم إضافة معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بالخدمة. ارجع إلى خطوة [*إضافة معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بخدماتك*](#add-private-endpoint-id-to-services-allow-list).

<div id="test-connectivity">
  ### اختبار الاتصال
</div>

إذا واجهت مشكلات عند الاتصال باستخدام Private Link، فتحقّق من إمكانية الاتصال باستخدام `openssl`. تأكّد من أن حالة نقطة نهاية Private Link هي `Accepted`.

يُفترض أن يتمكّن OpenSSL من الاتصال (ابحث عن CONNECTED في المخرجات). ومن المتوقع ظهور `errno=104`.

```bash theme={null}
openssl s_client -connect abcd.westus3.privatelink.azure.clickhouse.cloud:9440
```

```response highlight={1} theme={null}
CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 335 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
```

<div id="checking-private-endpoint-filters">
  ### التحقق من عوامل تصفية نقطة النهاية الخاصة
</div>

عيّن متغيرات البيئة التالية قبل تشغيل أي أوامر:

```bash theme={null}
KEY_ID=<Key ID>
KEY_SECRET=<Key secret>
ORG_ID=<please set ClickHouse organization ID>
INSTANCE_ID=<Instance ID>
```

شغّل الأمر التالي للتحقق من مرشحات Private Endpoint:

```bash theme={null}
curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" -X GET -H "Content-Type: application/json" "https://api.clickhouse.cloud/v1/organizations/${ORG_ID:?}/services/${INSTANCE_ID:?}" | jq .result.privateEndpointIds
```

<div id="more-information">
  ## مزيد من المعلومات
</div>

لمزيد من المعلومات حول Azure Private Link، يُرجى زيارة [azure.microsoft.com/en-us/products/private-link](https://azure.microsoft.com/en-us/products/private-link).
