Konfigurace řetězců připojení Azure Storage

Připojovací řetězec obsahuje informace o autorizaci vyžadované pro přístup k datům v účtu služby Azure Storage za běhu pomocí autorizace sdíleného klíče. Můžete nakonfigurovat připojovací řetězec na:

  • Připojte se k emulátoru úložiště Azurite.
  • Přístup k účtu úložiště v Azure
  • Přístup k zadaným prostředkům v Azure prostřednictvím sdíleného přístupového podpisu (SAS).

Informace o tom, jak zobrazit přístupové klíče účtu a zkopírovat připojovací řetězec, najdete v tématu Správa přístupových klíčů účtu úložiště.

Důležité

Pro zajištění optimálního zabezpečení microsoft doporučuje Microsoft Entra ID se spravovanými identitami autorizovat požadavky na data objektů blob, fronty a tabulek, kdykoli je to možné. Autorizace s ID Microsoft Entra a spravovanými identitami poskytuje vynikající zabezpečení a snadné použití prostřednictvím autorizace sdíleného klíče. Další informace o spravovaných identitách najdete v tématu Co jsou spravované identity pro prostředky Azure. Příklad povolení a použití spravované identity pro aplikaci .NET najdete v tématu Ověřování aplikací hostovaných v Azure v prostředcích Azure pomocí .NET.

Pro prostředky hostované mimo Azure, jako jsou místní aplikace, můžete použít spravované identity prostřednictvím služby Azure Arc. Aplikace spuštěné na serverech s podporou Azure Arc můžou například používat spravované identity pro připojení ke službám Azure. Další informace najdete v tématu Ověřování prostředků Azure pomocí serverů s podporou Azure Arc.

Ve scénářích, ve kterých se používají sdílené přístupové podpisy (SAS), microsoft doporučuje používat SAS delegování uživatele. Sas delegování uživatele je zabezpečený pomocí přihlašovacích údajů Microsoft Entra místo klíče účtu. Informace o sdílených přístupových podpisech najdete v tématu Udělení omezeného přístupu k datům pomocí sdílených přístupových podpisů. Příklad vytvoření a použití SAS delegování uživatele s .NET najdete v tématu Vytvoření SAS delegování uživatele pro objekt blob pomocí .NET.

Ochrana přístupových klíčů

Přístupové klíče účtu úložiště poskytují úplný přístup k datům účtu úložiště a možnost generovat tokeny SAS. Vždy buďte opatrní při ochraně přístupových klíčů. Pomocí služby Azure Key Vault můžete klíče bezpečně spravovat a otáčet. Přístup ke sdílenému klíči uděluje uživateli úplný přístup k datům účtu úložiště. Přístup ke sdíleným klíčům by měl být pečlivě omezený a monitorovaný. Použití tokenů SAS delegování uživatele s omezeným oborem přístupu ve scénářích, kdy se autorizace založená na Microsoft Entra ID nedá použít. Vyhněte se pevně kódovacím přístupovým klíčům nebo je uložte kdekoli ve formátu prostého textu, který je přístupný ostatním uživatelům. Pokud se domníváte, že by mohly být ohroženy, obměňte klíče.

Důležité

Pokud chcete uživatelům zabránit v přístupu k datům ve vašem účtu úložiště pomocí sdíleného klíče, můžete zakázat autorizaci sdíleného klíče pro účet úložiště. Podrobný přístup k datům s minimálními potřebnými oprávněními se doporučuje jako osvědčený postup zabezpečení. Pro scénáře, které podporují OAuth, by se měla použít autorizace založená na ID Microsoftu s využitím spravovaných identit. Protokol Kerberos nebo SMTP by se měly používat pro službu Azure Files přes protokol SMB. Pro Službu Azure Files přes REST je možné použít tokeny SAS. Přístup ke sdílenému klíči by měl být zakázán, pokud není vyžadován, aby se zabránilo jeho neúmyslným použití. Další informace najdete v tématu Zabránění autorizaci sdíleného klíče pro účet Azure Storage.

Pokud chcete chránit účet azure Storage pomocí zásad podmíněného přístupu Microsoft Entra, musíte zakázat autorizaci sdíleného klíče pro účet úložiště.

Pokud jste zakázali přístup ke sdíleným klíčům a v diagnostických protokolech se zobrazuje autorizace sdíleného klíče, znamená to, že se pro přístup k úložišti používá důvěryhodný přístup. Další podrobnosti najdete v tématu Důvěryhodný přístup k prostředkům registrovaným v tenantovi Microsoft Entra.

Uložení připojovací řetězec

Vaše aplikace potřebuje přístup k připojovací řetězec za běhu, aby bylo potřeba autorizovat požadavky provedené ve službě Azure Storage. Máte několik možností pro ukládání přístupových klíčů k účtu nebo připojovací řetězec:

  • Klíče účtu můžete bezpečně ukládat ve službě Azure Key Vault. Další informace najdete v tématu O klíčích účtu spravovaného úložiště služby Azure Key Vault.
  • Připojovací řetězec můžete uložit do proměnné prostředí.
  • Aplikace může uložit připojovací řetězec do souboru app.config nebo web.config. Do části AppSettings v těchto souborech přidejte připojovací řetězec.

Upozorňující

Uložení přístupových klíčů k účtu nebo připojovací řetězec v prostém textu představuje bezpečnostní riziko a nedoporučuje se. Ukládejte klíče účtu v šifrovaných formátech nebo migrujte své aplikace, aby používaly autorizaci Microsoft Entra pro přístup k vašemu účtu úložiště.

Konfigurace připojovací řetězec pro Azurite

Emulátor podporuje jeden pevný účet a dobře známý ověřovací klíč pro ověřování pomocí sdíleného klíče. Tento účet a klíč jsou jediné přihlašovací údaje sdíleného klíče povolené pro použití s emulátorem. Mezi ně patří:

Account name: devstoreaccount1
Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==

Poznámka:

Ověřovací klíč podporovaný emulátorem je určený pouze pro testování funkčnosti ověřovacího kódu klienta. Neslouží k žádnému účelu zabezpečení. S emulátorem nemůžete použít svůj produkční účet úložiště a klíč. S produkčními daty byste neměli používat vývojový účet.

Emulátor podporuje připojení pouze přes protokol HTTP. Protokol HTTPS je však doporučený protokol pro přístup k prostředkům v produkčním účtu úložiště Azure.

Připojení k účtu emulátoru pomocí zástupce

Nejjednodušší způsob, jak se připojit k emulátoru z aplikace, je nakonfigurovat připojovací řetězec v konfiguračním souboru aplikace, který odkazuje na zástupce UseDevelopmentStorage=true. Zástupce odpovídá úplnému připojovací řetězec emulátoru, který určuje název účtu, klíč účtu a koncové body emulátoru pro každou ze služeb Azure Storage:

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;
AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;
TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;

Následující fragment kódu .NET ukazuje, jak můžete použít zástupce z metody, která přebírá připojovací řetězec. Například konstruktor BlobContainerClient(String, String) přebírá připojovací řetězec.

BlobContainerClient blobContainerClient = new BlobContainerClient("UseDevelopmentStorage=true", "sample-container");
blobContainerClient.CreateIfNotExists();

Před voláním kódu v fragmentu kódu se ujistěte, že je emulátor spuštěný.

Další informace o Azurite najdete v tématu Použití emulátoru Azurite pro místní vývoj služby Azure Storage.

Konfigurace připojovací řetězec pro účet úložiště Azure

Pokud chcete vytvořit připojovací řetězec pro účet úložiště Azure, použijte následující formát. Určete, jestli se chcete připojit k účtu úložiště prostřednictvím protokolu HTTPS (doporučeno) nebo HTTP, nahraďte myAccountName názvem svého účtu úložiště a nahraďte myAccountKey přístupovým klíčem účtu:

DefaultEndpointsProtocol=[http|https];AccountName=myAccountName;AccountKey=myAccountKey

Vaše připojovací řetězec může vypadat například takto:

DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=<account-key>

I když Azure Storage podporuje protokol HTTP i HTTPS v připojovací řetězec, důrazně se doporučuje https.

Tip

Připojovací řetězec účtu úložiště najdete na webu Azure Portal. V nastavení účtu úložiště přejděte na Zabezpečení a síťové>přístupové klíče, abyste viděli připojovací řetězec primárních i sekundárních přístupových klíčů.

Vytvoření připojovací řetězec pomocí sdíleného přístupového podpisu

Pokud máte adresu URL sdíleného přístupového podpisu (SAS), která vám uděluje přístup k prostředkům v účtu úložiště, můžete sas použít v připojovací řetězec. Vzhledem k tomu, že SAS obsahuje informace potřebné k ověření požadavku, poskytuje připojovací řetězec s SAS protokol, koncový bod služby a nezbytné přihlašovací údaje pro přístup k prostředku.

Pokud chcete vytvořit připojovací řetězec, který obsahuje sdílený přístupový podpis, zadejte řetězec v následujícím formátu:

BlobEndpoint=myBlobEndpoint;
QueueEndpoint=myQueueEndpoint;
TableEndpoint=myTableEndpoint;
FileEndpoint=myFileEndpoint;
SharedAccessSignature=sasToken

Každý koncový bod služby je volitelný, i když připojovací řetězec musí obsahovat alespoň jeden.

Poznámka:

Osvědčeným postupem je použití PROTOKOLU HTTPS se sdíleným přístupovým podpisem.

Pokud v konfiguračním souboru zadáváte SAS v připojovací řetězec, možná budete muset v adrese URL zakódovat speciální znaky.

Příklad SAS služby

Tady je příklad připojovací řetězec, který zahrnuje SAS služby pro úložiště objektů blob:

BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&sr=b&si=tutorial-policy-635959936145100803&sig=9aCzs76n0E7y5BpEi2GvsSv433BZa22leDOZXX%2BXXIU%3D

Tady je příklad stejného připojovací řetězec s kódováním adresy URL:

BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&amp;sr=b&amp;si=tutorial-policy-635959936145100803&amp;sig=9aCzs76n0E7y5BpEi2GvsSv433BZa22leDOZXX%2BXXIU%3D

Příklad SAS účtu

Tady je příklad připojovací řetězec, který obsahuje SAS účtu pro úložiště objektů blob a souborů. Všimněte si, že jsou zadané koncové body pro obě služby:

BlobEndpoint=https://storagesample.blob.core.windows.net;
FileEndpoint=https://storagesample.file.core.windows.net;
SharedAccessSignature=sv=2015-07-08&sig=iCvQmdZngZNW%2F4vw43j6%2BVz6fndHF5LI639QJba4r8o%3D&spr=https&st=2016-04-12T03%3A24%3A31Z&se=2016-04-13T03%3A29%3A31Z&srt=s&ss=bf&sp=rwl

Tady je příklad stejného připojovací řetězec s kódováním adresy URL:

BlobEndpoint=https://storagesample.blob.core.windows.net;
FileEndpoint=https://storagesample.file.core.windows.net;
SharedAccessSignature=sv=2015-07-08&amp;sig=iCvQmdZngZNW%2F4vw43j6%2BVz6fndHF5LI639QJba4r8o%3D&amp;spr=https&amp;st=2016-04-12T03%3A24%3A31Z&amp;se=2016-04-13T03%3A29%3A31Z&amp;srt=s&amp;ss=bf&amp;sp=rwl

Vytvoření připojovací řetězec pro explicitní koncový bod úložiště

Ve svém připojovací řetězec můžete místo výchozích koncových bodů zadat explicitní koncové body služby. Pokud chcete vytvořit připojovací řetězec, který určuje explicitní koncový bod, zadejte úplný koncový bod služby pro každou službu, včetně specifikace protokolu (https (doporučeno) nebo HTTP), v následujícím formátu:

DefaultEndpointsProtocol=[http|https];
BlobEndpoint=myBlobEndpoint;
FileEndpoint=myFileEndpoint;
QueueEndpoint=myQueueEndpoint;
TableEndpoint=myTableEndpoint;
AccountName=myAccountName;
AccountKey=myAccountKey

Jeden scénář, ve kterém můžete chtít zadat explicitní koncový bod, je situace, kdy jste namapovali koncový bod úložiště objektů blob na vlastní doménu. V takovém případě můžete zadat vlastní koncový bod pro úložiště objektů blob v připojovací řetězec. Volitelně můžete zadat výchozí koncové body pro ostatní služby, pokud je vaše aplikace používá.

Tady je příklad připojovací řetězec, který určuje explicitní koncový bod pro službu Blob Service:

# Blob endpoint only
DefaultEndpointsProtocol=https;
BlobEndpoint=http://www.mydomain.com;
AccountName=storagesample;
AccountKey=<account-key>

Tento příklad určuje explicitní koncové body pro všechny služby, včetně vlastní domény pro službu Blob Service:

# All service endpoints
DefaultEndpointsProtocol=https;
BlobEndpoint=http://www.mydomain.com;
FileEndpoint=https://myaccount.file.core.windows.net;
QueueEndpoint=https://myaccount.queue.core.windows.net;
TableEndpoint=https://myaccount.table.core.windows.net;
AccountName=storagesample;
AccountKey=<account-key>

Hodnoty koncových bodů v připojovací řetězec slouží k vytvoření identifikátorů URI požadavků pro služby úložiště a diktování formátu všech identifikátorů URI, které se vrátí do kódu.

Pokud jste namapovali koncový bod úložiště na vlastní doménu a tento koncový bod vynecháte z připojovací řetězec, nebudete moct tento připojovací řetězec použít pro přístup k datům v této službě z vašeho kódu.

Další informace o konfiguraci vlastní domény pro Azure Storage najdete v tématu Mapování vlastní domény na koncový bod služby Azure Blob Storage.

Důležité

Hodnoty koncových bodů služby ve vašich připojovací řetězec musí být správně vytvořené identifikátory URI, včetně https:// (doporučeno) nebo http://.

Vytvoření připojovací řetězec s příponou koncového bodu

Pokud chcete vytvořit připojovací řetězec pro službu úložiště v oblastech nebo instancích s různými příponami koncových bodů, například pro Microsoft Azure provozovaný společností 21Vianet nebo Azure Government, použijte následující formát připojovací řetězec. Určete, jestli se chcete připojit k účtu úložiště prostřednictvím protokolu HTTPS (doporučeno) nebo HTTP, nahraďte myAccountName názvem účtu úložiště, nahraďte myAccountKey přístupovým klíčem účtu a nahraďte mySuffix příponou identifikátoru URI:

DefaultEndpointsProtocol=[http|https];
AccountName=myAccountName;
AccountKey=myAccountKey;
EndpointSuffix=mySuffix;

Tady je příklad připojovací řetězec pro služby úložiště v Azure provozované společností 21Vianet:

DefaultEndpointsProtocol=https;
AccountName=storagesample;
AccountKey=<account-key>;
EndpointSuffix=core.chinacloudapi.cn;

Autorizace přístupu pomocí sdíleného klíče

Informace o autorizaci přístupu ke službě Azure Storage pomocí klíče účtu nebo připojovací řetězec najdete v jednom z následujících článků:

Další kroky