.NET ile hesap SAS'i oluşturma

Paylaşılan erişim imzası (SAS), depolama hesabınızdaki kapsayıcılara ve bloblara sınırlı erişim vermenizi sağlar. SAS oluşturduğunuzda, istemcinin erişmesine izin verilen Azure Depolama kaynakları, bu kaynaklar üzerinde sahip oldukları izinler ve SAS'nin ne kadar süre geçerli olduğu gibi sınırlamalarını belirtirsiniz.

Her SAS bir anahtarla imzalanır. SAS'i iki yoldan biriyle imzalayabilirsiniz:

  • Microsoft Entra kimlik bilgileri kullanılarak oluşturulan bir anahtarla. Microsoft Entra kimlik bilgileriyle imzalanan SAS, kullanıcı temsilcisi SAS'dir. Kullanıcı temsilcisi SAS oluşturan bir istemciye Microsoft.Depolama içeren bir Azure RBAC rolü atanmalıdır/storageAccounts/blobServices/generateUserDelegationKey eylemi. Daha fazla bilgi edinmek için bkz . Kullanıcı temsilcisi SAS'ı oluşturma.
  • Depolama hesabı anahtarıyla. Hem hizmet SAS'i hem de hesap SAS'i depolama hesabı anahtarıyla imzalanmıştır. Hizmet SAS'si oluşturan istemcinin hesap anahtarına doğrudan erişimi olmalıdır veya Microsoft.Depolama/storageAccounts/listkeys/action izni. Daha fazla bilgi edinmek için bkz . Hizmet SAS'i oluşturma veya Hesap SAS'ı oluşturma.

Dekont

Kullanıcı temsilcisi SAS,depolama hesabı anahtarıyla imzalanmış bir SAS için üstün güvenlik sunar. Microsoft mümkün olduğunda kullanıcı temsilcisi SAS'sini kullanmanızı önerir. Daha fazla bilgi için bkz . Paylaşılan erişim imzalarıyla (SAS) verilere sınırlı erişim verme.

Bu makalede depolama hesabı anahtarını kullanarak .NET için Azure Depolama istemci kitaplığıyla bir hesap SAS'sinin nasıl oluşturulacağı gösterilmektedir.

Hesap SAS'i hakkında

Depolama hesabı düzeyinde bir hesap SAS'i oluşturulur. Hesap SAS'sini oluşturarak şunları yapabilirsiniz:

  • Blob Hizmeti Özelliklerini Alma, Blob Hizmeti Özelliklerini Ayarlama ve Blob Hizmeti İstatistiklerini Alma gibi hizmete özgü bir SAS ile şu anda kullanılamayan hizmet düzeyi işlemlere erişim yetkisi verin.
  • Bir depolama hesabında aynı anda birden fazla hizmete erişim yetkisi verin. Örneğin, hesap SAS'sini kullanarak hem Azure Blob Depolama hem de Azure Dosyalar kaynaklara erişimi devredebilirsiniz.

Hesap SAS'sinde depolanan erişim ilkeleri desteklenmez.

Hesap SAS’si oluşturma

Hesap erişim anahtarıyla bir hesap SAS'i imzalanır. SAS'yi imzalamak için kullanılan kimlik bilgilerini oluşturmak için Depolama SharedKeyCredential sınıfını kullanabilirsiniz.

Aşağıdaki kod örneği, hesap SAS belirteci dizesini almak için yeni bir AccountSasBuilder nesnesinin nasıl oluşturulacağını ve ToSasQueryParameters yönteminin nasıl çağrılacağını gösterir.

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

İstemciden hesap SAS'i kullanma

Blob hizmetinin hizmet düzeyi API'lerine erişmek üzere hesap SAS'sini kullanmak için, depolama hesabınız için hesap SAS'sini ve Blob Depolama uç noktasını kullanarak bir BlobServiceClient nesnesi oluşturun.

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

Kaynaklar

.NET için Azure Blob Depolama istemci kitaplığını kullanarak hesap SAS'i oluşturma hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın.

İstemci kitaplığı kaynakları

Ayrıca bkz.