Я пытаюсь создать SAS URI / токены, чтобы разрешить загрузку моих BLOB-объектов хранилища Azure.
Я хотел бы сделать это на уровне BLOB-объектов, чтобы случайно не предоставить доступ к непреднамеренному ресурсу.
Текущий код, который я использую для этого:
public static string GetBlobSasUri(string containerName, string reference)
{
// Create the CloudBlobContainer object
CloudBlobContainer container = blobClient.GetContainerReference(containerName);
container.CreateIfNotExists();
// Get a reference to a blob within the container.
CloudBlockBlob blob = container.GetBlockBlobReference(reference);
// Set the expiry time and permissions for the blob.
// In this case, the start time is specified as a few minutes in the past, to mitigate clock skew.
// The shared access signature will be valid immediately.
SharedAccessBlobPolicy sasConstraints = new SharedAccessBlobPolicy();
sasConstraints.SharedAccessStartTime = DateTimeOffset.UtcNow.AddMinutes(-5);
sasConstraints.SharedAccessExpiryTime = DateTimeOffset.UtcNow.AddMonths(1);
sasConstraints.Permissions = SharedAccessBlobPermissions.Read;
// Generate the shared access signature on the blob, setting the constraints directly on the signature.
string sasBlobToken = blob.GetSharedAccessSignature(sasConstraints);
// Return the URI string for the container, including the SAS token.
return blob.Uri + sasBlobToken;
}
Это в значительной степени основано на примере в документации здесь:
Создание URI подписи общего доступа для BLOB-объекта
Это работает.Тем не менее, в другой документации по SAS я вижу, что можно также ограничиться определенным диапазоном IP-адресов:
Пример службы SAS Uri
Я понимаю токены SAS:что подпись подписывает все параметры, так что я не думаю, что это так просто, как просто добавить свой диапазон IP-адресов к SAS URI, возвращенному из кода, который я вставил выше, поскольку подпись тогда не будет соответствовать.
ОднакоSharedAccessBlobPolicy
имеет только три поля, которые являются временем начала / окончания доступа, а также разрешениями.Я ничего не вижу о диапазонах IP-адресов.
Можно ли установить эти разрешенные диапазоны при создании URI SAS на уровне BLOB-объектов, а не для полной учетной записи?