Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Konto magazynu można zarządzać przy użyciu tokenów sygnatury dostępu współdzielonego (SAS) przechowywanych w magazynie kluczy. Aby uzyskać więcej informacji, zobacz Udzielanie ograniczonego dostępu do zasobów usługi Azure Storage przy użyciu sygnatury dostępu współdzielonego.
Uwaga
Zalecamy użycie kontroli dostępu opartej na rolach (RBAC) platformy Azure w celu zabezpieczenia konta magazynu w celu zapewnienia doskonałego bezpieczeństwa i łatwości użycia w przypadku autoryzacji klucza współdzielonego.
Ten artykuł zawiera przykłady kodu platformy .NET, który tworzy definicję sygnatury dostępu współdzielonego i pobiera tokeny SAS. Zobacz nasz przykład ShareLink , aby uzyskać szczegółowe informacje, w tym wygenerowany klient dla kont magazynu zarządzanego przez usługę Key Vault. Aby uzyskać informacje na temat tworzenia i przechowywania tokenów SAS, zobacz Zarządzanie kluczami konta magazynu przy użyciu usługi Key Vault i interfejsu wiersza polecenia platformy Azure lub Zarządzanie kluczami konta magazynu za pomocą usługi Key Vault i programu Azure PowerShell.
Przykłady kodu
W poniższym przykładzie utworzymy szablon sygnatury dostępu współdzielonego:
.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();
private static async Task<string> GetOrCreateSasDefinitionAsync(
ManagedStorageRestClient storageClient,
Za pomocą tego szablonu możemy utworzyć definicję sygnatury dostępu współdzielonego przy użyciu
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);
return sasDefinitionName;
}
Po utworzeniu definicji sygnatury dostępu współdzielonego można pobrać tokeny SAS, takie jak wpisy tajne, przy użyciu elementu SecretClient. Musisz wstępnie poprzeć nazwę wpisu tajnego nazwą konta magazynu, po którym następuje kreska:
// 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);
Console.Out.WriteLine(sasToken.Value);
return 0;
Jeśli token sygnatury dostępu współdzielonego wkrótce wygaśnie, możesz ponownie pobrać ten sam wpis tajny, aby wygenerować nowy.
Aby uzyskać przewodnik dotyczący używania tokenu sas usługi Key Vault do uzyskiwania dostępu do usług Azure Storage, zobacz Używanie sygnatury dostępu współdzielonego konta do uzyskiwania dostępu do usługi Blob Service
Uwaga
Aplikacja musi być przygotowana do odświeżenia sygnatury dostępu współdzielonego, jeśli otrzyma ona 403 z magazynu, aby można było obsłużyć przypadek naruszenia zabezpieczeń klucza i trzeba je obracać szybciej niż normalny okres rotacji.
Następne kroki
- Dowiedz się, jak udzielić ograniczonego dostępu do zasobów usługi Azure Storage przy użyciu sygnatury dostępu współdzielonego.
- Dowiedz się, jak zarządzać kluczami konta magazynu za pomocą usługi Key Vault i interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.
- Zobacz Przykłady kluczy konta magazynu zarządzanego