Kurz: Použití spravované přiřazené systémem na virtuálním počítači s Linuxem pro přístup k Azure Storage prostřednictvím pověření SAS

Spravované identity pro prostředky Azure jsou funkcí ID Microsoft Entra. Každá ze služeb Azure, které podporují spravované identity pro prostředky Azure, se řídí vlastní časovou osou. Než začnete, nezapomeňte zkontrolovat stav dostupnosti spravovaných identit pro váš prostředek a známé problémy.

V tomto kurzu se dozvíte, jak pomocí spravované identity přiřazené systémem na virtuálním počítači s Linuxem získat pověření sdíleného přístupového podpisu (SAS) úložiště. Konkrétně se bude jednat o pověření SAS služby.

Poznámka:

Klíč SAS vygenerovaný v tomto kurzu nebude omezen nebo vázán na virtuální počítač.

Sdílený přístupový podpis (SAS) služby umožňuje omezený přístup k objektům v účtu úložiště bez ohrožení přístupového klíče účtu. Přístup je možné udělit jen na omezenou dobu a pro určitou službu. Pověření SAS můžete použít obvyklým způsobem při operacích s úložištěm, třeba při použití sady SDK služby Storage. V tomto kurzu si ukážeme nahrání a stažení objektu blob pomocí rozhraní příkazového řádku Azure Storage. Získáte následující informace:

  • Vytvoření účtu úložiště
  • Vytvoření kontejneru objektů blob v účtu úložiště
  • Udělení přístupu k SAS účtu úložiště v Resource Manageru pro virtuální počítač
  • Získání přístupového tokenu pomocí identity virtuálního počítače a jeho použití k načtení SAS z Resource Manageru

Požadavky

  • Pokud ještě neznáte funkci spravovaných identit pro prostředky Azure, podívejte se na tento přehled.
  • Pokud nemáte účet Azure, zaregistrujte si bezplatný účet před tím, než budete pokračovat.
  • K provedení potřebných kroků k vytvoření prostředku a správě rolí potřebuje váš účet oprávnění vlastníka v odpovídajícím oboru (vaše předplatné nebo skupina prostředků). Pokud potřebujete pomoc s přiřazením role, přečtěte si téma Přiřazení rolí Azure ke správě přístupu k prostředkům předplatného Azure.

Vytvoření účtu úložiště

Pokud ho ještě nemáte, vytvoříte účet úložiště. Tento krok také můžete přeskočit a udělit spravované identitě přiřazené systémem virtuálního počítače přístup ke klíčům stávajícího účtu úložiště.

  1. V levém horním rohu webu Azure Portal vyberte tlačítko +/Vytvořit novou službu.

  2. Vyberte Úložiště, pak Účet úložiště a zobrazí se nový panel Vytvořit účet úložiště.

  3. Zadejte název účtu úložiště, který použijete později.

  4. Model nasazení a druh účtu by měly být nastavené na Resource Manager a Pro obecné účely.

  5. Ověřte, že pole Předplatné a Skupina prostředků se shodují s údaji zadanými při vytvoření virtuálního počítače v předchozím kroku.

  6. Vyberte Vytvořit.

    Snímek obrazovky znázorňující novou obrazovku pro vytvoření účtu úložiště

Vytvoření kontejneru objektů blob v účtu úložiště

Později nahrajeme a stáhneme soubor do nového účtu úložiště. Soubory vyžadují úložiště objektů blob. Proto potřebujeme vytvořit kontejner objektů blob, do kterého soubor uložíme.

  1. Vraťte se k nově vytvořenému účtu úložiště.

  2. Na levém panelu vyberte odkaz Kontejnery v části "Blob Service".

  3. V horní části stránky vyberte + Kontejner a vysune se panel Nový kontejner.

  4. Zadejte název kontejneru, vyberte úroveň přístupu a pak vyberte OK. Zadaný název použijeme v další části tohoto kurzu.

    Snímek obrazovky znázorňující obrazovku pro vytvoření kontejneru úložiště

Udělení přístupu k použití SAS úložiště spravované identitě přiřazené systémem virtuálního počítače

Azure Storage nativně podporuje ověřování Microsoft Entra, takže můžete použít spravovanou identitu přiřazenou systémem virtuálního počítače k načtení SAS úložiště z Resource Manageru a pak použít SAS pro přístup k úložišti. V tomto kroku udělíte spravované identitě přiřazené systémem virtuálního počítače přístup k SAS účtu úložiště. Přiřaďte roli Přispěvatel účtu úložiště spravované identitě v oboru skupiny prostředků, která obsahuje váš účet úložiště.

Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.

Poznámka:

Další informace o různých rolích, které můžete použít k udělení oprávnění ke kontrole oprávnění k autorizaci přístupu k objektům blob a frontám pomocí MICROSOFT Entra ID.

Získání přístupového tokenu pomocí identity virtuálního počítače a jeho použití k volání Azure Resource Manageru

Ve zbývající části kurzu budeme pracovat z virtuálního počítače, který jsme vytvořili dříve.

K provedení těchto kroků potřebujete klienta SSH. Pokud používáte Windows, můžete použít klienta SSH v Subsystém Windows pro Linux. Pokud potřebujete pomoc s konfigurací klíčů klienta SSH, přečtěte si téma:

Teď, když máte klienta SSH, pokračujte následujícím postupem:

  1. Na webu Azure Portal přejděte na Virtuální počítače, přejděte na virtuální počítač s Linuxem a pak na stránce Přehled vyberte Připojení v horní části. Zkopírujte řetězec pro připojení k vašemu virtuálnímu počítači.

  2. Použijte klienta SSH a připojte se ke svému virtuálnímu počítači.

  3. Dále se zobrazí výzva k zadání hesla, které jste přidali při vytváření virtuálního počítače s Linuxem. Pak byste měli být přihlášeni.

  4. K získání přístupového tokenu Azure Resource Manageru použijte CURL.

    Žádost CURL o přístupový token i odpověď jsou níže:

    curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com%2F' -H Metadata:true    
    

    Poznámka:

    V předchozím požadavku musí být hodnota parametru "resource" přesnou shodou s tím, co očekává ID Microsoft Entra. Při použití ID prostředku Azure Resource Manageru musí být v identifikátoru URI koncové lomítko. V následující odpovědi byl prvek access_token zkrácen pro stručnost.

    {
      "access_token":"eyJ0eXAiOiJ...",
      "refresh_token":"",
      "expires_in":"3599",
      "expires_on":"1504130527",
      "not_before":"1504126627",
      "resource":"https://management.azure.com",
      "token_type":"Bearer"
    }
    

Získání pověření SAS z Azure Resource Manageru kvůli volání úložiště

Teď použijte CURL k volání Resource Manageru. Použijte přístupový token, který jste načetli v předchozí části, a vytvořte pověření SAS úložiště. Jakmile budete mít pověření SAS, můžete volat operace nahrávání do úložiště nebo stahování z úložiště.

Pro tento požadavek použijeme k vytvoření přihlašovacích údajů SAS následující parametry požadavku HTTP:

{
    "canonicalizedResource":"/blob/<STORAGE ACCOUNT NAME>/<CONTAINER NAME>",
    "signedResource":"c",              // The kind of resource accessible with the SAS, in this case a container (c).
    "signedPermission":"rcw",          // Permissions for this SAS, in this case (r)ead, (c)reate, and (w)rite.  Order is important.
    "signedProtocol":"https",          // Require the SAS be used on https protocol.
    "signedExpiry":"<EXPIRATION TIME>" // UTC expiration time for SAS in ISO 8601 format, for example 2017-09-22T00:06:00Z.
}

Tato parametry se zahrnou do textu požadavku POST na pověření SAS. Další informace o parametrech pro vytvoření pověření SAS najdete v referenčních informacích k REST pro výpis SAS služby.

Pomocí následujícího požadavku CURL získejte pověření SAS. Nezapomeňte nahradit hodnoty parametrů <SUBSCRIPTION ID>, <RESOURCE GROUP>, <STORAGE ACCOUNT NAME>, <CONTAINER NAME> a <EXPIRATION TIME> vlastními hodnotami. Hodnotu <ACCESS TOKEN> nahraďte dříve získaným přístupovým tokenem:

curl https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>/listServiceSas/?api-version=2017-06-01 -X POST -d "{\"canonicalizedResource\":\"/blob/<STORAGE ACCOUNT NAME>/<CONTAINER NAME>\",\"signedResource\":\"c\",\"signedPermission\":\"rcw\",\"signedProtocol\":\"https\",\"signedExpiry\":\"<EXPIRATION TIME>\"}" -H "Authorization: Bearer <ACCESS TOKEN>"

Poznámka:

V textu předchozí adresy URL se rozlišují velká a malá písmena. Proto zkontrolujte, že jste je u svých skupin prostředků zadali správně. Je také důležité vědět, že se jedná o požadavek POST, a nikoli o požadavek GET.

V odpovědi CURL se vrátí pověření SAS:

{"serviceSasToken":"sv=2015-04-05&sr=c&spr=https&st=2017-09-22T00%3A10%3A00Z&se=2017-09-22T02%3A00%3A00Z&sp=rcw&sig=QcVwljccgWcNMbe9roAJbD8J5oEkYoq%2F0cUPlgriBn0%3D"} 

Na virtuálním počítači s Linuxem vytvořte ukázkový soubor objektu blob pro nahrání do kontejneru úložiště objektů blob pomocí následujícího příkazu:

echo "This is a test file." > test.txt

Potom proveďte ověření pomocí příkazu az storage rozhraní příkazového řádku a pověření SAS a nahrajte soubor do kontejneru objektů blob. V tomto kroku budete muset na virtuální počítač nainstalovat nejnovější Azure CLI , pokud jste to ještě neudělali.

 az storage blob upload --container-name 
                        --file 
                        --name
                        --account-name 
                        --sas-token

Odpověď:

Finished[#############################################################]  100.0000%
{
  "etag": "\"0x8D4F9929765C139\"",
  "lastModified": "2017-09-21T03:58:56+00:00"
}

Ke stažení souboru také můžete použít Azure CLI a k ověření pověření SAS.

Požadavek:

az storage blob download --container-name
                         --file 
                         --name 
                         --account-name
                         --sas-token

Odpověď:

{
  "content": null,
  "metadata": {},
  "name": "testblob",
  "properties": {
    "appendBlobCommittedBlockCount": null,
    "blobType": "BlockBlob",
    "contentLength": 16,
    "contentRange": "bytes 0-15/16",
    "contentSettings": {
      "cacheControl": null,
      "contentDisposition": null,
      "contentEncoding": null,
      "contentLanguage": null,
      "contentMd5": "Aryr///Rb+D8JQ8IytleDA==",
      "contentType": "text/plain"
    },
    "copy": {
      "completionTime": null,
      "id": null,
      "progress": null,
      "source": null,
      "status": null,
      "statusDescription": null
    },
    "etag": "\"0x8D4F9929765C139\"",
    "lastModified": "2017-09-21T03:58:56+00:00",
    "lease": {
      "duration": null,
      "state": "available",
      "status": "unlocked"
    },
    "pageBlobSequenceNumber": null,
    "serverEncrypted": false
  },
  "snapshot": null
}

Další kroky

V tomto kurzu jste se dozvěděli, jak použít spravovanou identitu přiřazenou systémem na virtuálním počítači s Linuxem pro přístup k Azure Storage pomocí pověření SAS. Další informace o SAS služby Azure Storage najdete tady: