إنشاء SAS خدمة لحاوية باستخدام Python

يتيح لك توقيع الوصول المشترك (SAS) منح وصول محدود إلى الحاويات والكائنات الثنائية كبيرة الحجم في حساب التخزين الخاص بك. عند إنشاء توقيع الوصول المشترك، فإنك تحدد قيوده بما في ذلك موارد تخزين Azure التي يُسمح للعميل بالوصول إليها، وما هي الأذونات التي يمتلكها على تلك الموارد، ومدة صلاحية توقيع الوصول المشترك.

يتم عملية توقيع كل SAS بمفتاح. يمكنك توقيع SAS بإحدى طريقتين:

  • باستخدام مفتاح تم إنشاؤه باستخدام بيانات اعتماد Microsoft Entra. SAS الذي تم توقيعه باستخدام بيانات اعتماد Microsoft Entra هو SAS لتفويض المستخدم. يجب أن يتم تعيين دور Azure RBAC للعميل الذي يقوم بإنشاء تحويل مستخدم SAS والذي يتضمن الإجراء Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. لمعرفة المزيد، راجع إنشاء توقيعات الوصول المشترك لتفويض المستخدم.
  • باستخدام مفتاح حساب التخزين. يتم توقيع كل من توقيع الوصول المشترك للخدمة و توقيع الوصول المشترك للحساب باستخدام مفتاح حساب التخزين. يجب أن يكون للعميل الذي ينشئ خدمة SAS حق وصول مباشر إلى مفتاح الحساب أو أن يتم تعيين إذن Microsoft.Storage/storageAccounts/listkeys/action. لمعرفة المزيد، راجع إنشاء SAS خدمة أو إنشاء حساب SAS.

إشعار

يوفر توقيع الوصول المشترك لتفويض المستخدم أماناً فائقاً لتوقيع الوصول المشترك الموقع باستخدام مفتاح حساب التخزين. توصي Microsoft باستخدام توقيع الوصول المشترك لتفويض المستخدم عندما يكون ذلك ممكناً. لمعرفة المزيد من المعلومات حول مفاتيح SAS، راجع منح وصول محدود إلى البيانات باستخدام توقيعات الوصول المشتركة (SAS).

توضح هذه المقالة كيفية استخدام مفتاح حساب التخزين لإنشاء SAS خدمة لحاوية باستخدام مكتبة عميل Blob Storage ل Python.

حول SAS للخدمة

يتم توقيع SAS للخدمة باستخدام مفتاح الوصول إلى حساب التخزين. تفوض خدمة SAS الوصول إلى مورد في خدمة تخزين Azure واحدة، مثل Blob Storage.

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

إنشاء SAS خدمة لحاوية

يمكنك إنشاء SAS خدمة لتفويض وصول محدود إلى مورد حاوية باستخدام الأسلوب التالي:

يتم تمرير مفتاح الوصول إلى حساب التخزين المستخدم لتوقيع SAS إلى الأسلوب كوسيطة account_key . يتم تمرير الأذونات المسموح بها إلى الأسلوب كوسيطة permission ، ويتم تعريفها في فئة ContainerSasPermissions .

يوضح مثال التعليمات البرمجية التالي كيفية إنشاء SAS خدمة مع أذونات القراءة لمورد حاوية:

def create_service_sas_container(self, container_client: ContainerClient, account_key: str):
    # Create a SAS token that's valid for one day, as an example
    start_time = datetime.datetime.now(datetime.timezone.utc)
    expiry_time = start_time + datetime.timedelta(days=1)

    sas_token = generate_container_sas(
        account_name=container_client.account_name,
        container_name=container_client.container_name,
        account_key=account_key,
        permission=ContainerSasPermissions(read=True),
        expiry=expiry_time,
        start=start_time
    )

    return sas_token

استخدام SAS للخدمة لتخويل كائن عميل

يوضح مثال التعليمات البرمجية التالي كيفية استخدام SAS للخدمة التي تم إنشاؤها في المثال السابق لتخويل كائن ContainerClient . يمكن استخدام كائن العميل هذا لتنفيذ العمليات على مورد الحاوية استنادا إلى الأذونات الممنوحة من قبل SAS.

# The SAS token string can be appended to the resource URL with a ? delimiter
# or passed as the credential argument to the client constructor
sas_url = f"{container_client.url}?{sas_token}"

# Create a ContainerClient object with SAS authorization
container_client_sas = ContainerClient.from_container_url(container_url=sas_url)

الموارد

لمعرفة المزيد حول استخدام مكتبة عميل Azure Blob Storage ل Python، راجع الموارد التالية.

نماذج التعليمات البرمجية

موارد مكتبة العميل

(راجع أيضًا )