Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A közös hozzáférésű jogosultságkód (SAS) lehetővé teszi, hogy korlátozott hozzáférést biztosítson a tárfiókban lévő tárolókhoz és blobokhoz. SAS létrehozásakor meg kell adnia a SAS korlátait, beleértve az ügyfelek számára elérhetővé tett Azure Storage-erőforrásokat, az ezekre az erőforrásokra vonatkozó engedélyeiket, valamint az érvényesség időtartamát.
Minden SAS egy kulccsal van aláírva. Kétféleképpen írhat alá egy SAS-t:
- A Microsoft Entra hitelesítő adataival létrehozott kulccsal. A Microsoft Entra hitelesítő adataival aláírt SAS egy felhasználói delegálási SAS. A felhasználói delegálási SAS-t létrehozó ügyfélhez olyan Azure RBAC-szerepkört kell hozzárendelni, amely tartalmazza a Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey műveletet. További információ: Felhasználói delegálási SAS létrehozása.
- A tárfiók kulcsával. A szolgáltatás SAS és a fiók SAS is a tárfiók kulcsával van aláírva. A szolgáltatás SAS-t létrehozó ügyfélnek közvetlen hozzáféréssel kell rendelkeznie a fiókkulcshoz, vagy hozzá kell rendelnie a Microsoft.Storage/storageAccounts/listkeys/action engedélyt. További információ: Szolgáltatás SAS létrehozása vagy fiók SAS létrehozása.
Megjegyzés
A felhasználói delegálási SAS jobb biztonságot nyújt, mint a tárfiók kulcsával aláírt SAS. A Microsoft javasolja, hogy lehetőség szerint használjon felhasználói delegálási SAS-t. További információ: Korlátozott hozzáférés biztosítása megosztott hozzáférésű jogosultságkódokkal (SAS) rendelkező adatokhoz.
Ez a cikk bemutatja, hogyan lehet a tárolási fiók kulcsát használni a fiók SAS létrehozásához a Java Azure Storage ügyfélkönyvtárával.
Tudnivalók a fiók SAS-járól
A fiók SAS a tárolófiók szintjén jön létre, és a fiók hozzáférési kulcsával van aláírva. Fiók SAS létrehozásával a következőt teheti:
- Olyan szolgáltatásszintű műveletekhez delegálhat hozzáférést, amelyek jelenleg nem érhetők el egy szolgáltatásspecifikus SAS-vel, például a Blob-szolgáltatás tulajdonságainak lekérése, a Blob-szolgáltatás tulajdonságainak beállítása és a Blob szolgáltatásstatisztikák lekérése.
- Egyszerre több szolgáltatáshoz is hozzáférést delegálhat egy tárfiókban. Például az Azure Blob Storage és az Azure Files erőforrásaihoz való hozzáférést is delegálhatja egy fiók SAS használatával.
A tárolt hozzáférési irányelvek nem támogatottak a fiók SAS esetén.
A projekt beállítása
A cikkben szereplő példakódok használatához adja hozzá a következő importálási irányelveket:
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import com.azure.storage.blob.sas.*;
import com.azure.storage.common.sas.AccountSasPermission;
import com.azure.storage.common.sas.AccountSasResourceType;
import com.azure.storage.common.sas.AccountSasService;
import com.azure.storage.common.sas.AccountSasSignatureValues;
Fiók SAS létrehozása
A tárfiók erőforrásaihoz való korlátozott hozzáférés delegálásához létrehozhat fiók SAS-t a következő módszerrel:
A fiók SAS aláírási értékeinek konfigurálásához használja a következő segédosztályokat:
-
AccountSasPermission: Az SAS által engedélyezett engedélyeket jelöli. A példában az olvasási engedélyt a következőre
trueállítjuk be: . - AccountSasService: Az SAS által elérhető szolgáltatásokat jelöli. A példánkban engedélyezzük a Blob szolgáltatás elérését.
- AccountSasResourceType: Az SAS által elérhető erőforrástípusokat jelöli. A példánkban engedélyezzük a szolgáltatásszintű API-k elérését.
A segédosztályok konfigurálása után inicializálhatja az SAS paramétereit egy AccountSasSignatureValues-példánnyal .
Az alábbi példakód bemutatja, hogyan konfigurálhatja az SAS-paramétereket, és hogyan hívhatja meg a generateAccountSas metódust a fiók SAS-jének lekéréséhez:
public String createAccountSAS(BlobServiceClient blobServiceClient) {
// Configure the SAS parameters
OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
AccountSasPermission accountSasPermission = new AccountSasPermission()
.setReadPermission(true);
AccountSasService services = new AccountSasService()
.setBlobAccess(true);
AccountSasResourceType resourceTypes = new AccountSasResourceType()
.setService(true);
// Generate the account SAS
AccountSasSignatureValues accountSasValues = new AccountSasSignatureValues(
expiryTime,
accountSasPermission,
services,
resourceTypes);
String sasToken = blobServiceClient.generateAccountSas(accountSasValues);
return sasToken;
}
Egy fiók SAS használata egy kliensből
Az alábbi példakód bemutatja, hogyan használhatja a korábbi példában létrehozott fiók SAS-t egy BlobServiceClient-objektum engedélyezéséhez. Ez az ügyfélobjektum ezután a SAS által megadott engedélyek alapján használható a szolgáltatásszintű API-k eléréséhez.
Először hozzon létre egy BlobServiceClient objektumot, amely a fiók hozzáférési kulcsával van aláírva:
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();
Ezután hozza létre a fiók SAS-ját a korábbi példában látható módon, és használja az SAS-t egy BlobServiceClient-objektum engedélyezéséhez:
// Create a SAS token
String sasToken = createAccountSAS(blobServiceClient);
// Create a new BlobServiceClient using the SAS token
BlobServiceClient sasServiceClient = new BlobServiceClientBuilder()
.endpoint(blobServiceClient.getAccountUrl())
.sasToken(sasToken)
.buildClient();
A fiók SAS használatával blobContainerClient objektumot vagy BlobClient-objektumot is engedélyezhet és használhat, ha ezek az erőforrástípusok az aláírási értékek részeként kapnak hozzáférést.
Erőforrások
Ha többet szeretne megtudni arról, hogyan hozhat létre fiók SAS-t a Java-hoz készült Azure Blob Storage ügyfélkódtár használatával, tekintse meg az alábbi erőforrásokat.