Membuat SAS akun dengan .NET
Tanda tangan akses bersama (SAS) memungkinkan Anda memberikan akses terbatas ke kontainer dan blob di akun penyimpanan Anda. Saat Anda membuat SAS, Anda menentukan batasannya, termasuk sumber daya Azure Storage mana yang diizinkan untuk diakses klien, izin apa yang mereka miliki pada sumber daya tersebut, dan berapa lama SAS valid.
Setiap SAS ditandatangani dengan kunci. Anda dapat menandatangani SAS dengan salah satu dari dua cara:
- Dengan kunci yang dibuat menggunakan kredensial Microsoft Entra. SAS yang ditandatangani dengan kredensial Microsoft Entra adalah SAS delegasi pengguna. Klien yang membuat SAS delegasi pengguna harus diberi peran Azure RBAC yang menyertakan tindakan Microsoft.Storage /storageAccounts/blobServices/generateUserDelegationKey. Untuk mempelajari selengkapnya, lihat Membuat SAS delegasi pengguna.
- Dengan kunci akun penyimpanan. SAS layanan dan SAS akun ditandatangani dengan kunci akun penyimpanan. Klien yang membuat SAS layanan harus memiliki akses langsung ke kunci akun atau ditetapkan izin microsoft.Storage/storageAccounts/listkeys/action. Untuk mempelajari selengkapnya, lihat Membuat layanan SAS atau Membuat SAS akun.
Catatan
Delegasi pengguna SAS menawarkan keamanan yang unggul untuk SAS yang ditandatangani dengan kunci akun penyimpanan. Microsoft merekomendasikan menggunakan SAS delegasi pengguna jika memungkinkan. Untuk mengetahui informasi selengkapnya, lihat Memberikan akses terbatas ke data dengan tanda tangan akses bersama (SAS).
Artikel ini menunjukkan cara menggunakan kunci akun penyimpanan untuk membuat SAS akun dengan pustaka klien Azure Storage untuk .NET.
Tentang akun SAS
AKUN SAS dibuat pada tingkat akun penyimpanan. Dengan membuat SAS akun, Anda dapat:
- Delegasikan akses ke operasi tingkat layanan yang saat ini tidak tersedia dengan SAS khusus layanan, seperti Dapatkan Properti Blob Service, Atur Properti Blob Service, dan Dapatkan Statistik Layanan Blob.
- Mendelegasikan akses ke lebih dari satu layanan di akun penyimpanan pada satu waktu. Misalnya, Anda dapat mendelegasikan akses ke sumber daya di Azure Blob Storage dan Azure Files dengan menggunakan SAS akun.
Kebijakan akses tersimpan tidak didukung untuk AKUN SAS.
Membuat SAS akun
AKUN SAS ditandatangani dengan kunci akses akun. Anda dapat menggunakan kelas StorageSharedKeyCredential untuk membuat kredensial yang digunakan untuk menandatangani SAS.
Contoh kode berikut menunjukkan cara membuat objek AccountSasBuilder baru dan memanggil metode ToSasQueryParameters untuk mendapatkan string token SAS akun.
public static async Task<string> CreateAccountSAS(StorageSharedKeyCredential sharedKey)
{
// Create a SAS token that's valid for one day
AccountSasBuilder sasBuilder = new AccountSasBuilder()
{
Services = AccountSasServices.Blobs | AccountSasServices.Queues,
ResourceTypes = AccountSasResourceTypes.Service,
ExpiresOn = DateTimeOffset.UtcNow.AddDays(1),
Protocol = SasProtocol.Https
};
sasBuilder.SetPermissions(AccountSasPermissions.Read |
AccountSasPermissions.Write);
// Use the key to get the SAS token
string sasToken = sasBuilder.ToSasQueryParameters(sharedKey).ToString();
return sasToken;
}
Menggunakan SAS akun dari klien
Untuk menggunakan SAS akun untuk mengakses API tingkat layanan untuk layanan Blob, buat objek BlobServiceClient menggunakan akun SAS dan titik akhir Blob Storage untuk akun penyimpanan Anda.
string accountName = "<storage-account-name>";
string accountKey = "<storage-account-key>";
StorageSharedKeyCredential storageSharedKeyCredential =
new(accountName, accountKey);
// Create a BlobServiceClient object with the account SAS appended
string blobServiceURI = $"https://{accountName}.blob.core.windows.net";
string sasToken = await CreateAccountSAS(storageSharedKeyCredential);
BlobServiceClient blobServiceClientAccountSAS = new BlobServiceClient(
new Uri($"{blobServiceURI}?{sasToken}"));
Sumber
Untuk mempelajari selengkapnya tentang membuat SAS akun menggunakan pustaka klien Azure Blob Storage untuk .NET, lihat sumber daya berikut ini.
Sumber daya pustaka klien
Baca juga
- Berikan akses terbatas ke sumber daya Azure Storage menggunakan tanda tangan akses bersama (SAS)
- Membuat SAS akun
- Untuk sampel kode terkait menggunakan .NET versi 11.x SDK yang tidak digunakan lagi, lihat Sampel kode menggunakan .NET versi 11.x.