Vytvoření definice SAS a načtení tokenů sdíleného přístupového podpisu v kódu (starší verze)
Svůj účet úložiště můžete spravovat pomocí tokenů sdíleného přístupového podpisu (SAS) uložených ve vašem trezoru klíčů. Další informace najdete v tématu Udělení omezeného přístupu k prostředkům Azure Storage pomocí SAS.
Poznámka:
K zabezpečení účtu úložiště doporučujeme použít řízení přístupu na základě role v Azure (Azure RBAC) pro zajištění vyššího zabezpečení a snadného použití prostřednictvím autorizace sdíleného klíče.
Tento článek obsahuje ukázky kódu .NET, který vytvoří definici SAS a načte tokeny SAS. Úplné podrobnosti, včetně vygenerovaného klienta pro účty úložiště spravované službou Key Vault, najdete v naší ukázce Služby ShareLink . Informace o vytváření a ukládání tokenů SAS najdete v tématu Správa klíčů účtu úložiště pomocí služby Key Vault a Azure CLI nebo Správa klíčů účtu úložiště pomocí služby Key Vault a Azure PowerShellu.
Ukázky kódu
V následujícím příkladu vytvoříme šablonu SAS:
private static string BuildSasDefinitionTemplate(bool readOnly) =>
new StringBuilder("sv=2018-03-28") // service version
.Append("&spr=https") // HTTPS only
.Append("&ss=bf") // blobs and files only
.Append("&srt=o") // applies to objects only
.Append(readOnly ? "&sp=r" : "&sp=rw") // read-only or read-write
.ToString();
Pomocí této šablony můžeme vytvořit definici SAS pomocí
string sasDefinitionName = BuildSasDefinitionName(Tag, readOnly, duration);
SasDefinitionAttributes sasDefinitionAttributes = new SasDefinitionAttributes
{
Enabled = true,
};
Dictionary<string, string> tags = new Dictionary<string, string>
{
[Tag] = "1",
};
SasDefinitionBundle createdSasDefinition = await storageClient.SetSasDefinitionAsync(
storageAccountName,
sasDefinitionName,
sasTemplate,
SasTokenType.Account,
duration,
sasDefinitionAttributes,
tags,
s_cancellationTokenSource.Token);
Po vytvoření definice SAS můžete načíst tokeny SAS, jako jsou tajné kódy pomocí SecretClient
. Před názvem tajného kódu je potřeba zadat název účtu úložiště následovaný pomlčkou:
// Build our SAS template, get an existing SAS definition, or create a new one.
string sasTemplate = BuildSasDefinitionTemplate(readOnly);
string sasDefinitionName = await GetOrCreateSasDefinitionAsync(storageClient, storageAccountName, sasTemplate, days, readOnly);
// Now we can create a SecretClient and generate a new SAS token from the storage account and SAS definition names.
SecretClient secretClient = new SecretClient(vaultUri, credential, options);
KeyVaultSecret sasToken = await secretClient.GetSecretAsync($"{storageAccountName}-{sasDefinitionName}", cancellationToken: s_cancellationTokenSource.Token);
Pokud platnost tokenu sdíleného přístupového podpisu brzy vyprší, můžete znovu načíst stejný tajný kód a vygenerovat nový.
Průvodce používáním načítaných z tokenu SAS služby Key Vault pro přístup ke službám Azure Storage najdete v tématu Použití SAS účtu pro přístup ke službě Blob Service.
Poznámka:
Pokud vaše aplikace získá 403 ze služby Storage, musí být připravená na aktualizaci sdíleného přístupového podpisu, abyste mohli zpracovat případ, kdy došlo k ohrožení zabezpečení klíče a potřebujete je otáčet rychleji než normální období obměna.
Další kroky
- Zjistěte, jak udělit omezený přístup k prostředkům Azure Storage pomocí SAS.
- Zjistěte, jak spravovat klíče účtu úložiště pomocí služby Key Vault a Azure CLI nebo Azure PowerShellu.
- Viz ukázky klíčů spravovaného účtu úložiště