Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подписанный ключ доступа (SAS) позволяет предоставить ограниченный доступ к контейнерам и объектам Blob в вашей учетной записи хранения. При создании SAS необходимо указать его ограничения, включая ресурсы службы хранилища Azure, к которым разрешен доступ клиенту, разрешения, предоставленные для доступа к этим ресурсам, а также срок действия SAS.
Каждый SAS подписывается ключом. Подписать документ SAS можно одним из двух способов:
- С помощью ключа, созданного с помощью учетных данных Microsoft Entra. SAS, подписанный учетными данными Microsoft Entra, — это SAS, делегированный пользователям. Клиенту, создающему ключ SAS делегирования пользователей, должна быть назначена роль Azure RBAC, которая включает действие Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. Чтобы узнать больше, см. статью «Создание SAS делегирования пользователей».
- С ключом учетной записи хранения. Как SAS службы, так и SAS учетной записи подписываются ключом учетной записи хранилища. Клиент, создающий SAS службы, должен либо иметь прямой доступ к ключу учетной записи, либо ему должно быть назначено разрешение Microsoft.Storage/storageAccounts/listkeys/action. Дополнительные сведения см. в статье "Создание SAS службы" или "Создание SAS учетной записи".
Примечание
Делегированный SAS пользователя обеспечивает более высокую безопасность по сравнению с SAS, который подписан ключом учетной записи хранения. Корпорация Майкрософт рекомендует по возможности использовать SAS делегирования пользовательских прав. Дополнительные сведения см. в статье Предоставление ограниченного доступа к данным с помощью подписанных URL-адресов (SAS).
В этой статье показано, как использовать ключ учетной записи для создания SAS с помощью клиентской библиотеки Azure Storage для .NET.
SAS учетной записи создается на уровне учетной записи хранения. Создав учетную запись SAS, вы можете:
- Делегировать доступ к операциям уровня обслуживания, которые в настоящее время недоступны с помощью SAS для конкретной службы, таких как получение свойств службы BLOB-объектов, задание свойств службы BLOB-объектов и получение статистики службы BLOB-объектов.
- Делегировать доступ к более чем одной службе одновременно в учетной записи хранения. Например, можно делегировать доступ к ресурсам как в Azure Blob Storage, так и в Azure Files с помощью учетной записи SAS.
Хранимые политики доступа не поддерживаются для SAS учетной записи.
SAS-подпись учетной записи подписывается ключом доступа к учетной записи. Класс StorageSharedKeyCredential можно использовать для создания учетных данных, используемых для подписи SAS.
В следующем примере кода показано, как создать объект AccountSasBuilder и вызвать метод ToSasQueryParameters , чтобы получить строку маркера SAS учетной записи.
public static async Task<string> CreateAccountSAS(StorageSharedKeyCredential sharedKey)
{
// Create a SAS token that's valid for one day
AccountSasBuilder sasBuilder = new AccountSasBuilder()
{
Services = AccountSasServices.Blobs | AccountSasServices.Queues,
ResourceTypes = AccountSasResourceTypes.Service,
ExpiresOn = DateTimeOffset.UtcNow.AddDays(1),
Protocol = SasProtocol.Https
};
sasBuilder.SetPermissions(AccountSasPermissions.Read |
AccountSasPermissions.Write);
// Use the key to get the SAS token
string sasToken = sasBuilder.ToSasQueryParameters(sharedKey).ToString();
return sasToken;
}
Чтобы использовать SAS учетной записи для доступа к API уровня обслуживания для службы BLOB-объектов, создайте объект BlobServiceClient с помощью SAS учетной записи и конечной точки хранилища BLOB-объектов для учетной записи хранения.
string accountName = "<storage-account-name>";
string accountKey = "<storage-account-key>";
StorageSharedKeyCredential storageSharedKeyCredential =
new(accountName, accountKey);
// Create a BlobServiceClient object with the account SAS appended
string blobServiceURI = $"https://{accountName}.blob.core.windows.net";
string sasToken = await CreateAccountSAS(storageSharedKeyCredential);
BlobServiceClient blobServiceClientAccountSAS = new BlobServiceClient(
new Uri($"{blobServiceURI}?{sasToken}"));
Дополнительные сведения о создании учетной записи SAS с помощью клиентской библиотеки для хранилища объектов BLOB Azure в .NET см. в следующих ресурсах.
- Предоставление ограниченного доступа к ресурсам службы хранилища Azure с помощью подписанных URL-адресов (SAS)
- Создать учетную запись SAS
- Дополнительные примеры кода, использующие устаревшие пакеты SDK для .NET версии 11.x, см. в примерах кода с помощью .NET версии 11.x.