البرنامج التعليمي: الوصول إلى التخزين باستخدام هوية مدارة لخدمات الوسائط

شعار Media Services v3


تحذير

سيتم إيقاف Azure Media Services في 30 يونيو 2024. لمزيد من المعلومات، راجع دليل إيقاف AMS .

ملاحظه

لا تتوفر الهويات المدارة إلا لحسابات خدمات الوسائط التي تم إنشاؤها باستخدام v3 API. إذا كنت تستخدم v2 API وترغب في استخدام الهويات المدارة، فالرجاء الترحيل من v2 إلى v3 الترحيل من Media Services v2 إلى مقدمة v3.

إذا كنت ترغب في الوصول إلى حساب تخزين عند تكوين حساب التخزين لحظر الطلبات من عناوين IP غير معروفة، يجب منح حساب خدمات الوسائط حق الوصول إلى حساب التخزين. اتبع الخطوات أدناه لإنشاء هوية مدارة لحساب خدمات الوسائط ومنح هذه الهوية حق الوصول إلى التخزين باستخدام Media Services CLI.

يستخدم حساب خدمات الوسائط هوية مدارة للوصول إلى التخزين

يستخدم هذا البرنامج التعليمي واجهة برمجة تطبيقات خدمات الوسائط 2020-05-01.

نظره عامه

تحذير

لا يمكنك استخدام JobInputHTTP أو SAS URLs مع حساب تخزين غير مقترن بحساب خدمات الوسائط. تهدف هذه إلى توفير الراحة للعملاء الذين المحتوى الحالي التي يمكن الوصول إليها باستخدام HTTP(S)، على سبيل المثال إذا كان لديك ملفات وسائط على خادم مواجه عام أو مخزنة مع موفر سحابة آخر. إذا كنت تقوم بإنشاء حلول جديدة، فاستخدم Assets لإدخالات الوظائف.

لتأمين الوصول إلى حساب تخزين تستخدمه خدمات الوسائط:

  • تكوين حساب التخزين لرفض جميع عناوين IP (أو السماح فقط بعناوين IP في شبكة العميل)
  • تكوين حساب التخزين للسماح بالوصول إلى "AzureServices"
  • تكوين خدمات الوسائط للوصول إلى حساب التخزين باستخدام الهوية المدارة
  • تحميل محتوى الوسائط إلى أصول خدمات الوسائط
  • إنشاء مهام ترميز تستخدم أصول خدمات الوسائط كإدخال للوظيفة. لا استخدام SAS URLS أو JobInputHTTP.

تسجيل الدخول إلى Azure

لاستخدام أي من الأوامر الواردة في هذه المقالة، يجب أولا تسجيل الدخول إلى الاشتراك الذي تريد استخدامه.

تسجيل الدخول إلى Azure. عند استخدام هذا الأمر، ستتم مطالبتك بالاشتراك الذي تريد استخدامه.

az login

تعيين الاشتراك

استخدم هذا الأمر لتعيين الاشتراك الذي تريد العمل معه.

تعيين اشتراك Azure باستخدام CLI

في الأمر التالي، قم بتوفير معرف اشتراك Azure الذي تريد استخدامه لحساب خدمات الوسائط.

az account set --subscription <subscriptionName>

أسماء الموارد

قبل البدء، حدد أسماء الموارد التي ستقوم بإنشائها. يجب أن يكون من السهل تحديدها كمخطط، خاصة إذا كنت لا تخطط لاستخدامها بعد الانتهاء من الاختبار. تختلف قواعد التسمية للعديد من أنواع الموارد لذلك من الأفضل الالتزام بجميع الأحرف الصغيرة. على سبيل المثال، "mediatest1rg" لاسم مجموعة الموارد و"mediatest1stor" لاسم حساب التخزين الخاص بك. استخدم الأسماء نفسها لكل خطوة في هذه المقالة.

سترى هذه الأسماء المشار إليها في الأوامر أدناه. أسماء الموارد التي ستحتاجها هي:

  • myRG
  • حساب التخزين الخاص بي
  • myAmsAccount
  • مكان

ملاحظه

تستخدم الواصلات أعلاه فقط لفصل كلمات التوجيه. بسبب عدم تناسق تسمية الموارد في خدمات Azure، لا تستخدم الواصلات عند تسمية مواردك. أيضا، لا تقوم بإنشاء اسم المنطقة. يتم تحديد اسم المنطقة بواسطة Azure.

سرد مناطق Azure

إذا لم تكن متأكدا من اسم المنطقة الفعلي الذي يجب استخدامه، فاستخدم هذا الأمر للحصول على قائمة:

استخدم هذا الأمر لسرد المناطق المتوفرة لحسابك.

az account list-locations --query "[].{DisplayName:displayName, Name:name}" -o table

تسلسل

يتم إجراء كل خطوة من الخطوات أدناه بترتيب معين لأنه يتم استخدام قيمة واحدة أو أكثر من استجابات JSON في الخطوة التالية في التسلسل.

إنشاء حساب تخزين

يجب أن يكون لحساب خدمات الوسائط الذي ستقوم بإنشائه حساب تخزين مقترن به. إنشاء حساب التخزين لحساب خدمات الوسائط أولا. ستستخدم اسم حساب التخزين الذي يحل محل myStorageAccount للخطوات اللاحقة.

إنشاء حساب Azure Storage باستخدام CLI

استخدم الأوامر التالية لإنشاء حساب Azure Storage.

لإنشاء حساب تخزين، يجب أولا إنشاء مجموعة موارد داخل موقع.

لسرد المواقع المتوفرة، استخدم الأمر التالي:

سرد المواقع المتوفرة باستخدام CLI

لسرد المواقع المتوفرة، استخدم الأمر التالي:

az account list-locations

إنشاء مجموعة موارد باستخدام CLI

لإنشاء مجموعة موارد، استخدم الأمر التالي:

az group create -n <resourceGroupName> --location chooseLocation

اختيار SKU

تحتاج أيضا إلى اختيار SKU لحساب التخزين الخاص بك. يمكنك سرد حسابات التخزين.

اختر SKU من القائمة التالية: Standard_LRS، Standard_GRS، Standard_RAGRS، Standard_ZRS، Premium_LRS، Premium_ZRS، Standard_GZRS، Standard_RAGZRS.

  • غير myStorageAccount إلى اسم فريد بطول أقل من 24 حرفا.
  • غير chooseLocation إلى المنطقة التي تريد العمل فيها.
  • قم بتغيير chooseSKU إلى SKU المفضل لديك.
az storage account create -n <myStorageAccount> -g <resourceGroup>  --location <chooseLocation> --sku <chooseSKU>

إنشاء حساب خدمات الوسائط باستخدام كيان الخدمة (الهوية المدارة)

الآن قم بإنشاء حساب خدمات الوسائط باستخدام كيان الخدمة، والمعروف باسم الهوية المدارة.

مهم

من المهم أن تتذكر استخدام علامة --mi في الأمر . وإلا فلن تتمكن من العثور على principalId لخطوة لاحقة.

يقوم أمر Azure CLI التالي بإنشاء حساب خدمات وسائط جديد. استبدل القيم التالية: your-media-services-account-nameyour-storage-account-name، your-resource-group-name بالأسماء التي تريد استخدامها. يفترض الأمر أنك قمت بالفعل بإنشاء مجموعة موارد وحساب تخزين.

يمنح حساب خدمات الوسائط هوية مدارة معينة من قبل النظام مع علامة --mi-system-assigned.


az ams account create --name <your-media-services-account-name> --resource-group <your-resource-group-name> --mi-system-assigned --storage-account <your-storage-account-name>

مثال على استجابة JSON:

{
  "encryption": {
    "keyVaultProperties": null,
    "type": "SystemKey"
  },
  "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/your-resource-group/providers/Microsoft.Media/mediaservices/your-media-services-account-name",
  "identity": {
    "principalId": "00000000-0000-0000-0000-00000000",
    "tenantId": "00000000-0000-0000-0000-00000000",
    "type": "SystemAssigned"
  },
  "location": "your-region",
  "mediaServiceId": "00000000-0000-0000-0000-00000000",
  "name": "your-media-services-account-name",
  "resourceGroup": "your-resource-group",
  "storageAccounts": [
    {
      "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/mediatest1rg/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
      "resourceGroup": "your-resource-group",
      "type": "Primary"
    }
  ],
  "storageAuthentication": "System",
  "systemData": {
    "createdAt": "2021-05-14T21:25:12.3492071Z",
    "createdBy": "you@example.com",
    "createdByType": "User",
    "lastModifiedAt": "2021-05-14T21:25:12.3492071Z",
    "lastModifiedBy": "you@example.com",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.Media/mediaservices"
}

منح الوصول إلى الهوية المدارة لخدمات الوسائط إلى حساب التخزين

امنح الوصول إلى الهوية المدارة لخدمات الوسائط إلى حساب التخزين. هناك ثلاثة أوامر:

الحصول على (إظهار) الهوية المدارة لحساب خدمات الوسائط

يعرض الأمر الأول أدناه الهوية المدارة لحساب خدمات الوسائط وهو principalId المدرجة في JSON الذي تم إرجاعه بواسطة الأمر .

يعرض هذا الأمر كافة خصائص حساب خدمات الوسائط.

az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>

ملاحظه

إذا قمت بتعيين أدوار الوصول إلى حساب خدمات الوسائط، فسيرجع هذا السطر "storageAuthentication": "ManagedIdentity".

مثال على استجابة JSON:

{
  "encryption": {
    "keyVaultProperties": null,
    "type": "SystemKey"
  },
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Media/mediaservices/your-media-services-account",
  "identity": {
    "principalId": "00000000-0000-0000-0000-000000000000",
    "tenantId": "00000000-0000-0000-0000-000000000000",
    "type": "SystemAssigned"  //Type will show "Managed Identity" if you have assigned a role to the Media Services account.
  },
  "location": "your-region",
  "mediaServiceId": "00000000-0000-0000-0000-000000000000",
  "name": "your-media-services-account",
  "resourceGroup": "your-resource-group-name",
  "storageAccounts": [
    {
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
      "resourceGroup": "your-resource-group-name",
      "type": "Primary"
    }
  ],
  "storageAuthentication": "System", //If you have assigned access roles to the account, this line will return storageAuthentication": "ManagedIdentity"
  "systemData": {
    "createdAt": "2021-05-14T21:25:12.3492071Z",
    "createdBy": "you@example.com",
    "createdByType": "User",
    "lastModifiedAt": "2021-05-14T21:25:12.3492071Z",
    "lastModifiedBy": "you@example.com",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.Media/mediaservices"
}

إنشاء تعيين دور Storage Blob Contributor

ينشئ الأمر التالي دور Storage Blob Contributor.

غير assignee إلى principalId. يفترض الأمر أنك قمت بالفعل بإنشاء مجموعة موارد وحساب تخزين. استخدم your-resource-group-nameyour-storage-account-name كجزء من قيمة scope كما هو موضح في الأمر أدناه:

az role assignment create --assignee 00000000-0000-0000-000000000000 --role "Storage Blob Data Contributor" --scope "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/<your-resource-group-name>/providers/Microsoft.Storage/storageAccounts/<your-storage-account-name>"

مثال على استجابة JSON:

{
  "canDelegate": null,
  "condition": null,
  "conditionVersion": null,
  "description": null,
  "id": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-000000000000",
  "name": "00000000-0000-0000-000000000000",
  "principalId": "00000000-0000-0000-000000000000",
  "principalType": "ServicePrincipal",
  "resourceGroup": "your-resource-group-name",
  "roleDefinitionId": "/subscriptions/00000000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-000000000000",
  "scope": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
  "type": "Microsoft.Authorization/roleAssignments"
}

إنشاء تعيين دور القارئ

ينشئ الأمر التالي دور Reader.

غير assignee إلى principalId. يفترض الأمر أنك قمت بالفعل بإنشاء مجموعة موارد وحساب تخزين. استخدم your-resource-group-nameyour-storage-account-name كجزء من قيمة scope كما هو موضح في الأمر أدناه:

az role assignment create --assignee 00000000-0000-0000-000000000000 --role "Reader" --scope "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name"

مثال على استجابة JSON:

{
  "canDelegate": null,
  "condition": null,
  "conditionVersion": null,
  "description": null,
  "id": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-000000000000",
  "name": "00000000-0000-0000-000000000000",
  "principalId": "00000000-0000-0000-000000000000",
  "principalType": "Reader",
  "resourceGroup": "your-resource-group-name",
  "roleDefinitionId": "/subscriptions/00000000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-000000000000",
  "scope": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
  "type": "Microsoft.Authorization/roleAssignments"
}

استخدام الهوية المدارة للوصول إلى حساب التخزين

يمنح الأمر التالي الوصول إلى الهوية المدارة لخدمات الوسائط إلى حساب تخزين.

في الأمر أدناه، قم بتغيير your-resource-group-name إلى اسم مجموعة الموارد، your-media-services-account-nameإلى اسم حساب خدمات الوسائط الذي تريد العمل معه:

az ams account storage set-authentication --storage-auth ManagedIdentity --resource-group <your-resource-group_name> --account-name <your-media-services-account-name>

مثال على استجابة JSON:

{
  "encryption": {
    "keyVaultProperties": null,
    "type": "SystemKey"
  },
  "id": "/subscriptions/00000000-0000-0000-00000000/resourceGroups/your-resource-group-name/providers/Microsoft.Media/mediaservices/your-storage-account-name",
  "identity": null,
  "location": "West US 2",
  "mediaServiceId": "00000000-0000-0000-00000000",
  "name": "your-media-services-account",
  "resourceGroup": "your-resource-group-name",
  "storageAccounts": [
    {
      "id": "/subscriptions/2b461b25-f7b4-4a22-90cc-d640a14b5471/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
      "resourceGroup": "your-resource-group-name",
      "type": "Primary"
    }
  ],
  "storageAuthentication": "ManagedIdentity",
  "systemData": {
    "createdAt": "2021-05-17T19:15:00.8850297Z",
    "createdBy": "you@example.com",
    "createdByType": "User",
    "lastModifiedAt": "2021-05-17T21:23:11.3863627Z",
    "lastModifiedBy": "you@example.com",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.Media/mediaservices"
}

التحقق

للتحقق من تشفير الحساب باستخدام مفتاح مدار من قبل العميل، اعرض خصائص تشفير الحساب:

يعرض هذا الأمر كافة خصائص حساب خدمات الوسائط.

az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>

ملاحظه

إذا قمت بتعيين أدوار الوصول إلى حساب خدمات الوسائط، فسيرجع هذا السطر "storageAuthentication": "ManagedIdentity".

مثال على استجابة JSON:

{
  "encryption": {
    "keyVaultProperties": null,
    "type": "SystemKey"
  },
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Media/mediaservices/your-media-services-account",
  "identity": {
    "principalId": "00000000-0000-0000-0000-000000000000",
    "tenantId": "00000000-0000-0000-0000-000000000000",
    "type": "SystemAssigned"  //Type will show "Managed Identity" if you have assigned a role to the Media Services account.
  },
  "location": "your-region",
  "mediaServiceId": "00000000-0000-0000-0000-000000000000",
  "name": "your-media-services-account",
  "resourceGroup": "your-resource-group-name",
  "storageAccounts": [
    {
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
      "resourceGroup": "your-resource-group-name",
      "type": "Primary"
    }
  ],
  "storageAuthentication": "System", //If you have assigned access roles to the account, this line will return storageAuthentication": "ManagedIdentity"
  "systemData": {
    "createdAt": "2021-05-14T21:25:12.3492071Z",
    "createdBy": "you@example.com",
    "createdByType": "User",
    "lastModifiedAt": "2021-05-14T21:25:12.3492071Z",
    "lastModifiedBy": "you@example.com",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.Media/mediaservices"
}

يجب أن تظهر الخاصية storageAuthentication "ManagedIdentity".

للتحقق الإضافي، يمكنك التحقق من سجلات Azure Storage لمعرفة أسلوب المصادقة المستخدم لكل طلب.

تنظيف الموارد

إذا كنت لا تخطط لاستخدام الموارد التي قمت بإنشائها، فاحذف مجموعة الموارد.

حذف مجموعة موارد باستخدام CLI

az group delete --name <your-resource-group-name>

الحصول على المساعدة والدعم

يمكنك الاتصال بخدمات الوسائط بأسئلة أو متابعة تحديثاتنا بإحدى الطرق التالية:

  • Q & A
  • تجاوز مكدس الذاكرة المؤقتة . ضع علامة على الأسئلة باستخدام azure-media-services.
  • @MSFTAzureMedia أو استخدم @AzureSupport لطلب الدعم.
  • افتح تذكرة دعم من خلال مدخل Microsoft Azure.