Välj hur du vill tillåta åtkomst till blobdata med Azure CLI

Azure Storage tillhandahåller tillägg för Azure CLI som gör att du kan ange hur du vill auktorisera åtgärder för blobdata. Du kan auktorisera dataåtgärder på följande sätt:

  • Med säkerhetsobjektet Microsoft Entra. Microsoft rekommenderar att du använder Microsoft Entra-autentiseringsuppgifter för överlägsen säkerhet och användarvänlighet.
  • Med kontoåtkomstnyckeln eller en SAS-token (signatur för delad åtkomst).

Ange hur dataåtgärder ska auktoriseras

Azure CLI-kommandon för att läsa och skriva blobdata innehåller den valfria --auth-mode parametern. Ange den här parametern för att ange hur en dataåtgärd ska auktoriseras:

  • Ange parametern --auth-mode till login för att logga in med ett Microsoft Entra-säkerhetsobjekt (rekommenderas).
  • Ange parametern --auth-mode till det äldre key värdet för att försöka hämta kontoåtkomstnyckeln som ska användas för auktorisering. Om du utelämnar parametern --auth-mode försöker Azure CLI också hämta åtkomstnyckeln.

Om du vill använda parametern --auth-mode kontrollerar du att du har installerat Azure CLI version 2.0.46 eller senare. Kör az --version för att kontrollera den installerade versionen.

Kommentar

När ett lagringskonto är låst med ett Azure Resource Manager ReadOnly-lås tillåts inte åtgärden Listnycklar för lagringskontot. Listnycklar är en POST-åtgärd och alla POST-åtgärder förhindras när ett ReadOnly-lås har konfigurerats för kontot. Därför måste användare som inte redan har kontonycklarna använda Microsoft Entra-autentiseringsuppgifter för att komma åt blobdata när kontot är låst med ett ReadOnly-lås .

Viktigt!

Om du utelämnar parametern --auth-mode eller anger den till keyförsöker Azure CLI använda kontoåtkomstnyckeln för auktorisering. I det här fallet rekommenderar Microsoft att du anger åtkomstnyckeln antingen för kommandot eller i AZURE_STORAGE_KEY miljövariabeln. Mer information om miljövariabler finns i avsnittet Ange miljövariabler för auktoriseringsparametrar.

Om du inte anger åtkomstnyckeln försöker Azure CLI anropa Azure Storage-resursprovidern för att hämta den för varje åtgärd. Om du utför många dataåtgärder som kräver ett anrop till resursprovidern kan det leda till begränsning. Mer information om begränsningar för resursprovider finns i Skalbarhets- och prestandamål för Azure Storage-resursprovidern.

Auktorisera med Microsoft Entra-autentiseringsuppgifter

När du loggar in på Azure CLI med Microsoft Entra-autentiseringsuppgifter returneras en OAuth 2.0-åtkomsttoken. Denna token används automatiskt av Azure CLI för att auktorisera efterföljande dataåtgärder mot Blob- eller Queue Storage. För åtgärder som stöds behöver du inte längre skicka en kontonyckel eller SAS-token med kommandot .

Du kan tilldela behörigheter till blobdata till ett Microsoft Entra-säkerhetsobjekt via rollbaserad åtkomstkontroll i Azure (Azure RBAC). Mer information om Azure-roller i Azure Storage finns i Tilldela en Azure-roll för åtkomst till blobdata.

Behörigheter för att anropa dataåtgärder

Azure Storage-tilläggen stöds för åtgärder på blobdata. Vilka åtgärder du kan anropa beror på vilka behörigheter som beviljats microsoft Entra-säkerhetsobjektet som du loggar in på Azure CLI med. Behörigheter till Azure Storage-containrar tilldelas via Azure RBAC. Om du till exempel har tilldelats rollen Storage Blob Data Reader kan du köra skriptkommandon som läser data från en container. Om du har tilldelats rollen Storage Blob Data Contributor kan du köra skriptkommandon som läser, skriver eller tar bort en container eller de data som den innehåller.

Mer information om de behörigheter som krävs för varje Azure Storage-åtgärd i en container finns i Anropa lagringsåtgärder med OAuth-token.

Exempel: Auktorisera en åtgärd för att skapa en container med Microsoft Entra-autentiseringsuppgifter

I följande exempel visas hur du skapar en container från Azure CLI med dina Microsoft Entra-autentiseringsuppgifter. För att skapa containern måste du logga in på Azure CLI och du behöver en resursgrupp och ett lagringskonto. Information om hur du skapar dessa resurser finns i Snabbstart: Skapa, ladda ned och lista blobar med Azure CLI.

  1. Innan du skapar containern tilldelar du rollen Storage Blob Data Contributor till dig själv. Även om du är kontoägare behöver du explicit behörighet för att utföra dataåtgärder mot lagringskontot. Mer information om hur du tilldelar Azure-roller finns i Tilldela en Azure-roll för åtkomst till blobdata.

    Viktigt!

    Det kan ta några minuter att sprida Azure-rolltilldelningar.

  2. Anropa kommandot az storage container create med parametern --auth-mode inställd på för att login skapa containern med dina Microsoft Entra-autentiseringsuppgifter. Kom ihåg att ersätta platshållarvärden i vinkelparenteser med dina egna värden:

    az storage container create \
        --account-name <storage-account> \
        --name sample-container \
        --auth-mode login
    

Auktorisera med kontoåtkomstnyckeln

Om du har kontonyckeln kan du anropa alla Azure Storage-dataåtgärder. I allmänhet är det mindre säkert att använda kontonyckeln. Om kontonyckeln komprometteras kan alla data i ditt konto komprometteras.

I följande exempel visas hur du skapar en container med hjälp av kontoåtkomstnyckeln. Ange kontonyckeln och ange parametern --auth-mode med key värdet:

az storage container create \
    --account-name <storage-account> \
    --name sample-container \
    --account-key <key>
    --auth-mode key

Viktigt!

När ett lagringskonto är låst med ett Azure Resource Manager ReadOnly-lås tillåts inte åtgärden Listnycklar för lagringskontot. Listnycklar är en POST-åtgärd och alla POST-åtgärder förhindras när ett ReadOnly-lås har konfigurerats för kontot. Därför måste användarna komma åt data med Microsoft Entra-autentiseringsuppgifter när kontot är låst med ett ReadOnly-lås .

Auktorisera med en SAS-token

Om du har en SAS-token kan du anropa dataåtgärder som tillåts av SAS. I följande exempel visas hur du skapar en container med hjälp av en SAS-token:

az storage container create \
    --account-name <storage-account> \
    --name sample-container \
    --sas-token <token>

Ange miljövariabler för auktoriseringsparametrar

Du kan ange auktoriseringsparametrar i miljövariabler för att undvika att inkludera dem vid varje anrop till en Azure Storage-dataåtgärd. I följande tabell beskrivs tillgängliga miljövariabler.

Miljövariabel Description
AZURE_STORAGE_ACCOUNT Namnet på lagringskontot. Den här variabeln ska användas tillsammans med antingen lagringskontonyckeln eller en SAS-token. Om ingen av dem finns försöker Azure CLI hämta åtkomstnyckeln för lagringskontot med hjälp av det autentiserade Microsoft Entra-kontot. Om ett stort antal kommandon körs samtidigt kan begränsningsgränsen för Azure Storage-resursprovidern nås. Mer information om begränsningar för resursprovider finns i Skalbarhets- och prestandamål för Azure Storage-resursprovidern.
AZURE_STORAGE_KEY Nyckeln till lagringskontot. Den här variabeln måste användas tillsammans med lagringskontots namn.
AZURE_STORAGE_CONNECTION_STRING En anslutningssträng som innehåller lagringskontonyckeln eller en SAS-token. Den här variabeln måste användas tillsammans med lagringskontots namn.
AZURE_STORAGE_SAS_TOKEN En SAS-token (signatur för delad åtkomst). Den här variabeln måste användas tillsammans med lagringskontots namn.
AZURE_STORAGE_AUTH_MODE Auktoriseringsläget som kommandot ska köras med. Tillåtna värden är login (rekommenderas) eller key. Om du anger loginanvänder Azure CLI dina Microsoft Entra-autentiseringsuppgifter för att auktorisera dataåtgärden. Om du anger det äldre key läget försöker Azure CLI fråga efter kontoåtkomstnyckeln och auktorisera kommandot med nyckeln.

Nästa steg