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&sr=b&si=tutorial-policy-635959936145100803&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&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
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ů:
- Autorizace přístupu a připojení ke službě Blob Storage pomocí .NET
- Autorizace přístupu a připojení ke službě Blob Storage pomocí Javy
- Autorizace přístupu a připojení ke službě Blob Storage pomocí JavaScriptu
- Autorizace přístupu a připojení ke službě Blob Storage pomocí Pythonu