Konfigurera anslutningssträngar för Azure-lagring
En anslutningssträng innehåller den auktoriseringsinformation som krävs för att ditt program ska få åtkomst till data i ett Azure Storage-konto vid körning med hjälp av auktorisering av delad nyckel. Du kan konfigurera anslutningssträng till:
- Anslut till Azurite Storage-emulatorn.
- Få åtkomst till ett lagringskonto i Azure.
- Få åtkomst till angivna resurser i Azure via en signatur för delad åtkomst (SAS).
Information om hur du visar dina kontoåtkomstnycklar och kopierar en anslutningssträng finns i Hantera åtkomstnycklar för lagringskonto.
Viktigt!
För optimal säkerhet rekommenderar Microsoft att du använder Microsoft Entra-ID med hanterade identiteter för att auktorisera begäranden mot blob-, kö- och tabelldata när det är möjligt. Auktorisering med Microsoft Entra-ID och hanterade identiteter ger överlägsen säkerhet och enkel användning via auktorisering av delad nyckel. Mer information om hanterade identiteter finns i Vad är hanterade identiteter för Azure-resurser. Ett exempel på hur du aktiverar och använder en hanterad identitet för ett .NET-program finns i Autentisera Azure-värdbaserade appar till Azure-resurser med .NET.
För resurser som finns utanför Azure, till exempel lokala program, kan du använda hanterade identiteter via Azure Arc. Appar som körs på Azure Arc-aktiverade servrar kan till exempel använda hanterade identiteter för att ansluta till Azure-tjänster. Mer information finns i Autentisera mot Azure-resurser med Azure Arc-aktiverade servrar.
För scenarier där signaturer för delad åtkomst (SAS) används rekommenderar Microsoft att du använder en SAS för användardelegering. En SAS för användardelegering skyddas med Microsoft Entra-autentiseringsuppgifter i stället för kontonyckeln. Mer information om signaturer för delad åtkomst finns i Bevilja begränsad åtkomst till data med signaturer för delad åtkomst. Ett exempel på hur du skapar och använder en SAS för användardelegering med .NET finns i Skapa en SAS för användardelegering för en blob med .NET.
Skydda dina åtkomstnycklar
Åtkomstnycklar för lagringskonto ger fullständig åtkomst till lagringskontodata och möjligheten att generera SAS-token. Var alltid noga med att skydda dina åtkomstnycklar. Använd Azure Key Vault för att hantera och rotera dina nycklar på ett säkert sätt. Åtkomst till den delade nyckeln ger en användare fullständig åtkomst till ett lagringskontos data. Åtkomsten till delade nycklar bör begränsas noggrant och övervakas. Använd SAS-token för användardelegering med begränsad åtkomstomfattning i scenarier där Microsoft Entra ID-baserad auktorisering inte kan användas. Undvik hårdkodade åtkomstnycklar eller spara dem var som helst i oformaterad text som är tillgänglig för andra. Rotera dina nycklar om du tror att de har komprometterats.
Viktigt!
Om du vill hindra användare från att komma åt data i ditt lagringskonto med delad nyckel kan du inte tillåta auktorisering av delad nyckel för lagringskontot. Detaljerad åtkomst till data med minsta möjliga behörighet rekommenderas som bästa praxis för säkerhet. Microsoft Entra ID-baserad auktorisering med hanterade identiteter bör användas för scenarier som stöder OAuth. Kerberos eller SMTP ska användas för Azure Files via SMB. För Azure Files via REST kan SAS-token användas. Åtkomst med delad nyckel ska inaktiveras om det inte krävs för att förhindra oavsiktlig användning. Mer information finns i Förhindra auktorisering av delad nyckel för ett Azure Storage-konto.
För att skydda ett Azure Storage-konto med principer för villkorsstyrd åtkomst i Microsoft Entra måste du inte tillåta auktorisering av delad nyckel för lagringskontot.
Om du har inaktiverat åtkomst till delad nyckel och du ser auktorisering av delad nyckel rapporterad i diagnostikloggarna anger detta att betrodd åtkomst används för att komma åt lagring. Mer information finns i Betrodd åtkomst för resurser som registrerats i din Microsoft Entra-klientorganisation.
Lagra en anslutningssträng
Ditt program måste komma åt anslutningssträng vid körning för att auktorisera begäranden som görs till Azure Storage. Du har flera alternativ för att lagra dina kontoåtkomstnycklar eller anslutningssträng:
- Du kan lagra dina kontonycklar på ett säkert sätt i Azure Key Vault. Mer information finns i Om Azure Key Vault-hanterade lagringskontonycklar.
- Du kan lagra dina anslutningssträng i en miljövariabel.
- Ett program kan lagra anslutningssträng i en app.config- eller web.config-fil. Lägg till anslutningssträng i avsnittet AppSettings i dessa filer.
Varning
Lagring av kontoåtkomstnycklar eller anslutningssträng i klartext utgör en säkerhetsrisk och rekommenderas inte. Lagra dina kontonycklar i ett krypterat format eller migrera dina program för att använda Microsoft Entra-auktorisering för åtkomst till ditt lagringskonto.
Konfigurera en anslutningssträng för Azurite
Emulatorn stöder ett enda fast konto och en välkänd autentiseringsnyckel för autentisering med delad nyckel. Det här kontot och nyckeln är de enda autentiseringsuppgifterna för delad nyckel som tillåts för användning med emulatorn. Dessa är:
Account name: devstoreaccount1
Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==
Kommentar
Autentiseringsnyckeln som stöds av emulatorn är endast avsedd för att testa funktionerna i din klientautentiseringskod. Det tjänar inte något säkerhetssyfte. Du kan inte använda ditt produktionslagringskonto och din nyckel med emulatorn. Du bör inte använda utvecklingskontot med produktionsdata.
Emulatorn stöder endast anslutning via HTTP. HTTPS är dock det rekommenderade protokollet för åtkomst till resurser i ett Azure-lagringskonto för produktion.
Ansluta till emulatorkontot med hjälp av genvägen
Det enklaste sättet att ansluta till emulatorn från ditt program är att konfigurera en anslutningssträng i programmets konfigurationsfil som refererar till genvägen UseDevelopmentStorage=true
. Genvägen motsvarar den fullständiga anslutningssträng för emulatorn, som anger kontonamnet, kontonyckeln och emulatorns slutpunkter för var och en av Azure Storage-tjänsterna:
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;
Följande .NET-kodfragment visar hur du kan använda genvägen från en metod som tar en anslutningssträng. Till exempel tar konstruktorn BlobContainerClient(String, String) en anslutningssträng.
BlobContainerClient blobContainerClient = new BlobContainerClient("UseDevelopmentStorage=true", "sample-container");
blobContainerClient.CreateIfNotExists();
Kontrollera att emulatorn körs innan du anropar koden i kodfragmentet.
Mer information om Azurite finns i Använda Azurite-emulatorn för lokal Azure Storage-utveckling.
Konfigurera en anslutningssträng för ett Azure Storage-konto
Använd följande format för att skapa en anslutningssträng för ditt Azure Storage-konto. Ange om du vill ansluta till lagringskontot via HTTPS (rekommenderas) eller HTTP, ersätt myAccountName
med namnet på ditt lagringskonto och ersätt myAccountKey
med åtkomstnyckeln för ditt konto:
DefaultEndpointsProtocol=[http|https];AccountName=myAccountName;AccountKey=myAccountKey
Din anslutningssträng kan till exempel se ut ungefär så här:
DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=<account-key>
Även om Azure Storage stöder både HTTP och HTTPS i en anslutningssträng rekommenderas HTTPS starkt.
Dricks
Du hittar lagringskontots anslutningssträng i Azure Portal. Gå till Säkerhets - och nätverksåtkomstnycklar> i lagringskontots inställningar för att se anslutningssträng för både primära och sekundära åtkomstnycklar.
Skapa en anslutningssträng med hjälp av en signatur för delad åtkomst
Om du har en URL för signatur för delad åtkomst (SAS) som ger dig åtkomst till resurser i ett lagringskonto kan du använda SAS i en anslutningssträng. Eftersom SAS innehåller den information som krävs för att autentisera begäran tillhandahåller en anslutningssträng med en SAS protokollet, tjänstslutpunkten och de autentiseringsuppgifter som krävs för att få åtkomst till resursen.
Om du vill skapa en anslutningssträng som innehåller en signatur för delad åtkomst anger du strängen i följande format:
BlobEndpoint=myBlobEndpoint;
QueueEndpoint=myQueueEndpoint;
TableEndpoint=myTableEndpoint;
FileEndpoint=myFileEndpoint;
SharedAccessSignature=sasToken
Varje tjänstslutpunkt är valfri, även om anslutningssträng måste innehålla minst en.
Kommentar
Att använda HTTPS med en SAS rekommenderas som bästa praxis.
Om du anger en SAS i en anslutningssträng i en konfigurationsfil kan du behöva koda specialtecken i URL:en.
Exempel på tjänst-SAS
Här är ett exempel på en anslutningssträng som innehåller en tjänst-SAS för Blob Storage:
BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&sr=b&si=tutorial-policy-635959936145100803&sig=9aCzs76n0E7y5BpEi2GvsSv433BZa22leDOZXX%2BXXIU%3D
Och här är ett exempel på samma anslutningssträng med URL-kodning:
BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&sr=b&si=tutorial-policy-635959936145100803&sig=9aCzs76n0E7y5BpEi2GvsSv433BZa22leDOZXX%2BXXIU%3D
Sas-exempel för konto
Här är ett exempel på en anslutningssträng som innehåller ett konto-SAS för blob- och fillagring. Observera att slutpunkter för båda tjänsterna anges:
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
Och här är ett exempel på samma anslutningssträng med URL-kodning:
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
Skapa en anslutningssträng för en explicit lagringsslutpunkt
Du kan ange explicita tjänstslutpunkter i anslutningssträng i stället för att använda standardslutpunkterna. Om du vill skapa en anslutningssträng som anger en explicit slutpunkt anger du den fullständiga tjänstslutpunkten för varje tjänst, inklusive protokollspecifikationen (HTTPS (rekommenderas) eller HTTP), i följande format:
DefaultEndpointsProtocol=[http|https];
BlobEndpoint=myBlobEndpoint;
FileEndpoint=myFileEndpoint;
QueueEndpoint=myQueueEndpoint;
TableEndpoint=myTableEndpoint;
AccountName=myAccountName;
AccountKey=myAccountKey
Ett scenario där du kanske vill ange en explicit slutpunkt är när du har mappat bloblagringsslutpunkten till en anpassad domän. I så fall kan du ange din anpassade slutpunkt för Blob Storage i anslutningssträng. Du kan också ange standardslutpunkterna för de andra tjänsterna om programmet använder dem.
Här är ett exempel på en anslutningssträng som anger en explicit slutpunkt för Blob-tjänsten:
# Blob endpoint only
DefaultEndpointsProtocol=https;
BlobEndpoint=http://www.mydomain.com;
AccountName=storagesample;
AccountKey=<account-key>
Det här exemplet anger explicita slutpunkter för alla tjänster, inklusive en anpassad domän för Blob-tjänsten:
# 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>
Slutpunktsvärdena i en anslutningssträng används för att konstruera begärande-URI:er till lagringstjänsterna och diktera formen för alla URI:er som returneras till koden.
Om du har mappat en lagringsslutpunkt till en anpassad domän och utelämnat slutpunkten från en anslutningssträng kan du inte använda den anslutningssträng för att komma åt data i tjänsten från koden.
Mer information om hur du konfigurerar en anpassad domän för Azure Storage finns i Mappa en anpassad domän till en Azure Blob Storage-slutpunkt.
Viktigt!
Tjänstslutpunktsvärden i dina anslutningssträng måste vara välformade URI:er, inklusive https://
(rekommenderas) eller http://
.
Skapa en anslutningssträng med ett slutpunktssuffix
Om du vill skapa en anslutningssträng för en lagringstjänst i regioner eller instanser med olika slutpunktssuffix, till exempel för Microsoft Azure som drivs av 21Vianet eller Azure Government, använder du följande anslutningssträng format. Ange om du vill ansluta till lagringskontot via HTTPS (rekommenderas) eller HTTP, ersätt myAccountName
med namnet på ditt lagringskonto, ersätt myAccountKey
med din kontoåtkomstnyckel och ersätt mySuffix
med URI-suffixet:
DefaultEndpointsProtocol=[http|https];
AccountName=myAccountName;
AccountKey=myAccountKey;
EndpointSuffix=mySuffix;
Här är ett exempel anslutningssträng för lagringstjänster i Azure som drivs av 21Vianet:
DefaultEndpointsProtocol=https;
AccountName=storagesample;
AccountKey=<account-key>;
EndpointSuffix=core.chinacloudapi.cn;
Auktorisera åtkomst med delad nyckel
Mer information om hur du auktoriserar åtkomst till Azure Storage med kontonyckeln eller med en anslutningssträng finns i någon av följande artiklar:
- Auktorisera åtkomst och ansluta till Blob Storage med .NET
- Auktorisera åtkomst och ansluta till Blob Storage med Java
- Auktorisera åtkomst och ansluta till Blob Storage med JavaScript
- Auktorisera åtkomst och ansluta till Blob Storage med Python
Nästa steg
- Grant limited access to Azure Storage resources using shared access signatures (SAS) (Bevilja begränsad åtkomst till Azure Storage-resurser med hjälp av signaturer för delad åtkomst (SAS))
- Använda Azurite-emulatorn för lokal Azure Storage-utveckling