Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Подписанный URL-адрес (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 службы для контейнера или большого двоичного объекта с клиентской библиотекой хранилища BLOB-объектов для Java.
О сервисе SAS
SAS служебный подписывается ключом доступа к учетной записи. Вы можете использовать класс StorageSharedKeyCredential для создания учетных данных, которые используются для подписания служебного SAS.
Вы также можете использовать хранимую политику доступа для определения разрешений и длительности SAS. Если указано имя существующей хранимой политики доступа, то эта политика будет связана с SAS. Дополнительные сведения о хранимых политиках доступа см. в статье "Определение хранимой политики доступа". Если хранимая политика доступа не предоставлена, на примерах кода в этой статье показано, как определить разрешения и длительность SAS.
Создать SAS на уровне службы
Вы можете создать SAS службы для контейнера или большого двоичного объекта в зависимости от потребностей приложения.
SAS службы можно создать для делегирования ограниченного доступа к ресурсу контейнера, используя следующий метод:
Значения подписи SAS, такие как время истечения срока действия и подписанные разрешения, передаются методу в рамках экземпляра BLOBServiceSasSignatureValues . Разрешения указываются в виде экземпляра BlobContainerSasPermission.
В следующем примере кода показано, как создать SAS службы с разрешениями на чтение для ресурса контейнера:
public String createServiceSASContainer(BlobContainerClient containerClient) {
// Create a SAS token that's valid for 1 day, as an example
OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
// Assign read permissions to the SAS token
BlobContainerSasPermission sasPermission = new BlobContainerSasPermission()
.setReadPermission(true);
BlobServiceSasSignatureValues sasSignatureValues = new BlobServiceSasSignatureValues(expiryTime, sasPermission)
.setStartTime(OffsetDateTime.now().minusMinutes(5));
String sasToken = containerClient.generateSas(sasSignatureValues);
return sasToken;
}
Использование SAS службы для авторизации клиентского объекта
С помощью SAS службы можно авторизовать клиентский объект для выполнения операций с контейнером или BLOB-объектом на основе разрешений, предоставленных SAS.
В следующих примерах кода показано, как использовать SAS службы для авторизации объекта BlobContainerClient . Этот клиентский объект можно использовать для выполнения операций с ресурсом контейнера на основе разрешений, предоставленных SAS.
Сначала создайте объект BlobServiceClient, подписанный ключом доступа к учетной записи:
String accountName = "<account-name>";
String accountKey = "<account-key>";
StorageSharedKeyCredential credential = new StorageSharedKeyCredential(accountName, accountKey);
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
.endpoint(String.format("https://%s.blob.core.windows.net/", accountName))
.credential(credential)
.buildClient();
Затем создайте SAS службы, как показано в предыдущем примере, и используйте SAS для авторизации объекта BlobContainerClient :
// Create a SAS token
BlobContainerClient containerClient = blobServiceClient
.getBlobContainerClient("sample-container");
String sasToken = createServiceSASContainer(containerClient);
// Create a new BlobContainerClient using the SAS token
BlobContainerClient sasContainerClient = new BlobContainerClientBuilder()
.endpoint(containerClient.getBlobContainerUrl())
.sasToken(sasToken)
.buildClient();
Ресурсы
Дополнительные сведения об использовании клиентской библиотеки Хранилище BLOB-объектов Azure для Java см. в следующих ресурсах.