Konfigurera anslutningssträngar för Azure-lagring
En niska veze 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 niska veze 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 åtkomstnycklar för ditt konto och kopierar en niska veze 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 niska veze
Ditt program måste komma åt niska veze 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 niska veze:
- 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 niska veze i en miljövariabel.
- Ett program kan lagra niska veze i en app.config- eller web.config-fil. Lägg till niska veze i avsnittet AppSettings i dessa filer.
Varning
Lagring av kontoåtkomstnycklar eller niska veze 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 niska veze 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 niska veze i programmets konfigurationsfil som refererar till genvägen UseDevelopmentStorage=true
. Genvägen motsvarar den fullständiga niska veze 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 niska veze. Till exempel tar konstruktorn BlobContainerClient(String, String) en niska veze.
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 niska veze för ett Azure Storage-konto
Använd följande format för att skapa en niska veze 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 niska veze 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 niska veze rekommenderas HTTPS starkt.
Dricks
Du hittar ditt lagringskontos niska veze i Azure-portalen. Gå till Säkerhets - och nätverksåtkomstnycklar> i lagringskontots inställningar för att se niska veze för både primära och sekundära åtkomstnycklar.
Skapa en niska veze 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 niska veze. Eftersom SAS innehåller den information som krävs för att autentisera begäran tillhandahåller en niska veze med en SAS protokollet, tjänstslutpunkten och de autentiseringsuppgifter som krävs för att få åtkomst till resursen.
Om du vill skapa en niska veze 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 niska veze 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 niska veze i en konfigurationsfil kan du behöva koda specialtecken i URL:en.
Exempel på tjänst-SAS
Här är ett exempel på en niska veze 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 niska veze 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 niska veze 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 niska veze 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 niska veze för en explicit lagringsslutpunkt
Du kan ange explicita tjänstslutpunkter i din niska veze i stället för att använda standardslutpunkterna. Om du vill skapa en niska veze 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 niska veze. Du kan också ange standardslutpunkterna för de andra tjänsterna om programmet använder dem.
Här är ett exempel på en niska veze 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 niska veze 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 niska veze kan du inte använda den niska veze 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 niska veze måste vara välformade URI:er, inklusive https://
(rekommenderas) eller http://
.
Skapa en niska veze med ett slutpunktssuffix
Om du vill skapa en niska veze 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 niska veze 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 niska veze 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 niska veze 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