Megosztás a következőn keresztül:


Szolgáltatás SAS létrehozása tárolóhoz vagy blobhoz Java használatá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.

Feljegyzé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 szolgáltatás SAS-t egy tárolóhoz vagy blobhoz a Tárfiók kulcsával a Java Blob Storage ügyfélkódtárával.

Tudnivalók a szolgáltatás SAS-járól

A szolgáltatás SAS-jének aláírása a fiók hozzáférési kulcsával történik. A StorageSharedKeyCredential osztály használatával létrehozhatja a szolgáltatás SAS aláírásához használt hitelesítő adatokat.

Tárolt hozzáférési szabályzattal is meghatározhatja az SAS engedélyeit és időtartamát. Ha meg van adva egy meglévő tárolt hozzáférési szabályzat neve, akkor a szabályzat az SAS-hez van társítva. A tárolt hozzáférési szabályzatokról további információt a tárolt hozzáférési szabályzatok definiálása című témakörben talál. Ha nincs megadva tárolt hozzáférési szabályzat, az ebben a cikkben szereplő kód példák bemutatják, hogyan határozhatja meg az SAS engedélyeit és időtartamát.

Szolgáltatási SAS létrehozása

Az alkalmazás igényeinek megfelelően létrehozhat egy szolgáltatás SAS-t egy tárolóhoz vagy blobhoz.

A tárolóerőforráshoz való korlátozott hozzáférés delegálásához létrehozhat egy szolgáltatás SAS-t a következő módszerrel:

A blobServiceSasSignatureValues-példány részeként a rendszer átadja a metódusnak az SAS-aláírás értékeit, például a lejárati időt és az aláírt engedélyeket . Az engedélyek BlobContainerSasPermission-példányként vannak megadva.

Az alábbi példakód bemutatja, hogyan hozhat létre szolgáltatás SAS-t olvasási engedélyekkel egy tárolóerőforráshoz:

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;
}

Szolgáltatás SAS használata ügyfélobjektum engedélyezéséhez

A szolgáltatás SAS használatával engedélyezheti egy ügyfélobjektum számára, hogy műveleteket hajtson végre egy tárolón vagy blobon az SAS által megadott engedélyek alapján.

Az alábbi példakód bemutatja, hogyan engedélyezheti a BlobContainerClient objektumot a szolgáltatás SAS-jének használatával. Ez az ügyfélobjektum használható a tárolóerőforrás műveleteinek végrehajtására az SAS által megadott engedélyek alapján.

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 szolgáltatás SAS-t a korábbi példában látható módon, és használja az SAS-t egy BlobContainerClient-objektum engedélyezéséhez:

// 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();

Források

Az Azure Blob Storage Java-ügyfélkódtárának használatáról az alábbi forrásokból tudhat meg többet.

Kódminták

Ügyfélkódtár erőforrásai

Lásd még