Вопросы по созданию делегирования пользователей sas

Я пытаюсь создать пользовательское делегирование sas для большого двоичного объекта учетной записи хранения в Azure и нашел этот документ.

https://learn.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas

Просматривая документ, я обнаружил, что SAS делегирования пользователей предоставляет доступ к ресурсам хранилища BLOB-объектов Azure с использованием учетных данных Microsoft Entra. Нам необходимо создать «Ключ делегирования пользователя», который будет использоваться для подписи SAS делегирования пользователя (подпись общего доступа).

В нем также упоминается, что мы можем указать срок действия ключа делегирования пользователя до семи дней и создать токен SAS в течение срока действия ключа.

Мне нужно, чтобы токен SAS был длиннее. Токен sas должен быть статическим и будет безопасно передан внешнему клиенту в течение как минимум одного месяца.

Альтернативой было бы создание сервиса SAS.

https://learn.microsoft.com/en-us/rest/api/storageservices/create-service-sas

Поскольку Microsoft рекомендует использовать Microsoft Entra ID с управляемыми удостоверениями, не могли бы вы сообщить мне, есть ли какой-либо другой метод, с помощью которого я могу использовать Microsoft Entra ID с управляемыми удостоверениями для создания токена SAS как минимум на один месяц?

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
74
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не могли бы вы сообщить мне, есть ли какие-либо другие методы, с помощью которых я могу использовать Microsoft Entra ID с управляемыми удостоверениями для создания токена SAS как минимум на один месяц?

Вы можете использовать приведенный ниже код Python или запрос REST API для создания токена Service SAS с управляемым удостоверением.

Код:

from azure.identity import DefaultAzureCredential
from azure.mgmt.storage import StorageManagementClient
from datetime import datetime, timedelta

def main():
    client_id = "xxxx"
    client = StorageManagementClient(credential=DefaultAzureCredential(managed_identity_client_id=client_id),
        subscription_id = "xxx",
    )

    start_time = datetime.utcnow()
    expiry_time = start_time + timedelta(days=30)

    response = client.storage_accounts.list_service_sas(
        resource_group_name = "<Your-resource-group-name>",
        account_name = "<storage-account-name>",
        parameters = {
            "canonicalizedResource": "/blob/<STORAGE ACCOUNT NAME>/<CONTAINER NAME>",
            "signedExpiry": expiry_time.strftime('%Y-%m-%dT%H:%M:%SZ'),
            "signedPermission": "rcwl",
            "signedProtocol":"https",  
            "signedResource": "c",
        },
    )
    print(response)

if __name__ == "__main__":
    main()

Выход:

{'additional_properties': {}, 'service_sas_token': 'sv=2015-04-05&sr=c&spr=https&se=2024-07-05T08%3A29%3A19.0000000Z&sp=rcwl&sig=P%2Bhz6xxxxxx%3D'}

Приведенный выше код сгенерирует токен Service SAS сроком на один месяц.

Ссылка:

Другие вопросы по теме

На информационной панели Azure: предоставьте пользователю доступ к одному серверу приложений, базе данных SQL и хранилищу Azure
Terraform: ошибка: получение статических свойств веб-сайта для учетной записи хранения (подписка: ***: превышен крайний срок контекста)
Хранилище BLOB-объектов Azure: нет ли события UnDelete?
Учетная запись хранения с отключенным частным доступом. 403 при доступе к BLOB-объектам
Доступ к контейнеру Azure через Python SDK завершается сбоем из-за AuthorizationPermissionMismatch, но я являюсь владельцем
Потоковая передача (загрузка) файла из хранилища BLOB-объектов Azure пользователю через flask
Как скопировать все контейнеры исходной учетной записи хранения в целевую учетную запись хранения в виде папок в контейнере?
ADF CopyActivity рекурсивно распаковывает архив, но в этом нет необходимости
Есть ли способ использовать команду COPY INTO Databricks для копирования всех файлов из BLOB-объекта Azure в дельта-таблицу?
Azure Blob Storage создает токен SAS делегирования пользователей