Fiók SAS létrehozása Java-val
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 annak korlátait, beleértve az ügyfelek számára engedélyezett Azure Storage-erőforrásokat, az ezen erőforrásokra vonatkozó engedélyeiket és az SAS érvényességének érvényességét.
Minden SAS egy kulccsal van aláírva. SAS-t kétféleképpen írhat alá:
- A Microsoft Entra hitelesítő adataival létrehozott kulccsal. A Microsoft Entra hitelesítő adataival aláírt SAS egy felhasználó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 kulccsal. A szolgáltatás SAS és a fiók SAS is a tárfiók kulccsal 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 kiváló biztonságot nyújt a tárfiók kulccsal aláírt SAS-nek. 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 hozhat létre fiók SAS-t a Tárfiókkulcs használatával a Java Azure Storage ügyfélkódtárával.
Tudnivalók a fiók SAS-járól
A fiók sasa a tárfió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 szabályzatok nem támogatottak a fiók SAS-hez.
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;
}
Ügyfél sasának használata
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.
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.