Megosztás a következőn keresztül:


Tárfiókkulcsok kezelése a Key Vault és az Azure PowerShell használatával (örökölt)

Fontos

A Key Vault felügyelt tárfiókkulcsai (örökölt) támogatottak, és nincs több tervezett frissítés. Csak a fiók sasa támogatott az SAS-definíciók aláírt tárolási szolgáltatásának legkésőbb 2018.03.28-i verziójával.

Fontos

Javasoljuk, hogy használja az Azure Storage-integrációt a Microsoft Entra ID-val, a Microsoft felhőalapú identitás- és hozzáférés-kezelési szolgáltatásával. A Microsoft Entra-integráció azure-blobokhoz és üzenetsorokhoz érhető el, és OAuth2-jogkivonat-alapú hozzáférést biztosít az Azure Storage-hoz (csakúgy, mint az Azure Key Vaulthoz). A Microsoft Entra ID lehetővé teszi az ügyfélalkalmazás hitelesítését egy alkalmazás vagy egy felhasználói identitás használatával a tárfiók hitelesítő adatai helyett. Az Azure-ban való futtatáskor Microsoft Entra által felügyelt identitást is használhat. A felügyelt identitások nem igénylik az ügyfél-hitelesítést és a hitelesítő adatok tárolását az alkalmazásban vagy az alkalmazással. Ezt a megoldást csak akkor használja, ha a Microsoft Entra-hitelesítés nem lehetséges.

Az Azure Storage-fiókok egy fióknevet és egy kulcsot tartalmazó hitelesítő adatokat használnak. A kulcs automatikusan jön létre, és nem titkosítási kulcsként, hanem jelszóként szolgál. A Key Vault úgy kezeli a tárfiók kulcsait, hogy rendszeresen újragenerálja őket a tárfiókban, és megosztott hozzáférésű aláírási jogkivonatokat biztosít a tárfiók erőforrásaihoz való delegált hozzáféréshez.

A Key Vault által felügyelt tárfiók kulcsfunkciójával listázhatja (szinkronizálhatja) a kulcsokat egy Azure-tárfiókkal, és rendszeresen újragenerálhatja (elforgathatja) a kulcsokat. A tárfiókok és a klasszikus tárfiókok kulcsait is kezelheti.

A felügyelt tárfiók kulcs funkciójának használatakor vegye figyelembe a következő szempontokat:

  • A rendszer soha nem ad vissza kulcsértékeket hívó válaszként.
  • Csak a Key Vault kezelje a tárfiókkulcsokat. Ne kezelje saját maga a kulcsokat, és ne zavarja a Key Vault-folyamatokat.
  • Csak egyetlen Key Vault-objektum kezelje a tárfiókkulcsokat. Ne engedélyezze a kulcskezelést több objektumból.
  • Kulcsok újragenerálása csak a Key Vault használatával. Ne hozza létre manuálisan a tárfiókkulcsokat.

Fontos

A kulcs közvetlenül a tárfiókban való újragenerálása megszakítja a felügyelt tárfiókok beállítását, és érvénytelenítheti a használatban lévő SAS-jogkivonatokat, és leállást okozhat.

Feljegyzés

Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Első lépésként tekintse meg az Azure PowerShell telepítését ismertető témakört. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

Egyszerű szolgáltatásalkalmazás azonosítója

A Microsoft Entra-bérlő minden regisztrált alkalmazást szolgáltatásnévvel biztosít. A szolgáltatásnév az alkalmazásazonosító, amelyet az engedélyezési beállítás során használnak más Azure-erőforrások Azure RBAC-en keresztüli eléréséhez.

A Key Vault egy Olyan Microsoft-alkalmazás, amely minden Microsoft Entra-bérlőben elő van regisztrálva. A Key Vault minden Azure-felhőben ugyanazzal az alkalmazásazonosítóval van regisztrálva.

Bérlők Felhőbeli Pályázat azonosítója
Microsoft Entra ID Azure Government 7e7c393b-45d0-48b1-a35e-2905ddf8183c
Microsoft Entra ID Azure – nyilvános cfa8b339-82a2-471a-a3c9-0fc0be7a4093
Egyéb Bármely cfa8b339-82a2-471a-a3c9-0fc0be7a4093

Előfeltételek

Az útmutató elvégzéséhez először a következőket kell tennie:

Tárfiókkulcsok kezelése

Csatlakozás az Azure-fiókhoz

Hitelesítse a PowerShell-munkamenetet az Csatlakozás-AzAccount parancsmaggal.

Connect-AzAccount

Ha több Azure-előfizetéssel rendelkezik, listázhatja őket a Get-AzSubscription parancsmaggal, és megadhatja a Set-AzContext parancsmaggal használni kívánt előfizetést.

Set-AzContext -SubscriptionId <subscriptionId>

Beállított változók

Először állítsa be a PowerShell-parancsmagok által használandó változókat az alábbi lépésekben. Frissítse a "YourResourceGroupName", a "YourStorageAccountName" és a "YourKeyVaultName" helyőrzőket, és állítsa $keyVaultSpAppId cfa8b339-82a2-471a-a3c9-0fc0be7a4093 (a szolgáltatásnév alkalmazásazonosítójában megadottak szerint).

Az Azure PowerShell Get-AzContext és a Get-AzStorageAccount parancsmagokkal is lekérhetjük a felhasználói azonosítót és az Azure Storage-fiók környezetét.

$resourceGroupName = <YourResourceGroupName>
$storageAccountName = <YourStorageAccountName>
$keyVaultName = <YourKeyVaultName>
$keyVaultSpAppId = "cfa8b339-82a2-471a-a3c9-0fc0be7a4093"
$storageAccountKey = "key1" #(key1 or key2 are allowed)

# Get your User Id
$userId = (Get-AzContext).Account.Id

# Get a reference to your Azure storage account
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName

Feljegyzés

Klasszikus tárfiók esetén használja az "elsődleges" és a "másodlagos" $storageAccountKey
A Get-AzResource -Name "ClassicStorageAccountName" -ResourceGroupName $resourceGroupName" helyett használja a "Get-AzStorageAccount" kifejezést a klasszikus tárfiókhoz

Key Vault-hozzáférés biztosítása a tárfiókhoz

Ahhoz, hogy a Key Vault hozzáférhessen a tárfiók kulcsaihoz és kezelje azt, engedélyeznie kell a tárfiókhoz való hozzáférést. A Key Vault-alkalmazás engedélyekkel rendelkezik a tárfiók kulcsainak listázásához és újragenerálásához . Ezeket az engedélyeket az Azure beépített szerepköre, a Storage-fiókkulcs-kezelő szolgáltatásszerepköre engedélyezi.

Rendelje hozzá ezt a szerepkört a Key Vault szolgáltatásnévhez, és korlátozza a tárfiók hatókörét az Azure PowerShell New-AzRoleAssignment parancsmag használatával.

# Assign Azure role "Storage Account Key Operator Service Role" to Key Vault, limiting the access scope to your storage account. For a classic storage account, use "Classic Storage Account Key Operator Service Role."
New-AzRoleAssignment -ApplicationId $keyVaultSpAppId -RoleDefinitionName 'Storage Account Key Operator Service Role' -Scope $storageAccount.Id

Sikeres szerepkör-hozzárendelés esetén a következő példához hasonló kimenetnek kell megjelennie:

RoleAssignmentId   : /subscriptions/03f0blll-ce69-483a-a092-d06ea46dfb8z/resourceGroups/rgContoso/providers/Microsoft.Storage/storageAccounts/sacontoso/providers/Microsoft.Authorization/roleAssignments/189cblll-12fb-406e-8699-4eef8b2b9ecz
Scope              : /subscriptions/03f0blll-ce69-483a-a092-d06ea46dfb8z/resourceGroups/rgContoso/providers/Microsoft.Storage/storageAccounts/sacontoso
DisplayName        : Azure Key Vault
SignInName         :
RoleDefinitionName : storage account Key Operator Service Role
RoleDefinitionId   : 81a9662b-bebf-436f-a333-f67b29880f12
ObjectId           : 93c27d83-f79b-4cb2-8dd4-4aa716542e74
ObjectType         : ServicePrincipal
CanDelegate        : False

Ha a Key Vault már hozzá lett adva a tárfiókhoz tartozó szerepkörhöz, "A szerepkör-hozzárendelés már létezik" . Hiba. A szerepkör-hozzárendelést az Azure Portal "Hozzáférés-vezérlés (IAM)" lapján is ellenőrizheti.

Felhasználói fiók engedélyének megadása felügyelt tárfiókokhoz

Az Azure PowerShell Set-AzKeyVaultAccessPolicy parancsmaggal frissítse a Key Vault hozzáférési szabályzatát, és adjon tárfiók-engedélyeket a felhasználói fiókjának.

# Give your user principal access to all storage account permissions, on your Key Vault instance

Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -UserPrincipalName $userId -PermissionsToStorage get, list, delete, set, update, regeneratekey, getsas, listsas, deletesas, setsas, recover, backup, restore, purge

A tárfiókokra vonatkozó engedélyek nem érhetők el az Azure Portal tárfiókjának "Hozzáférési szabályzatok" lapján.

Felügyelt tárfiók hozzáadása a Key Vault-példányhoz

Az Azure PowerShell Add-AzKeyVaultManagedStorageAccount parancsmaggal hozzon létre egy felügyelt tárfiókot a Key Vault-példányban. A -DisableAutoRegenerateKey kapcsoló nem adja meg a tárfiók kulcsainak újragenerálását.

# Add your storage account to your Key Vault's managed storage accounts

Add-AzKeyVaultManagedStorageAccount -VaultName $keyVaultName -AccountName $storageAccountName -AccountResourceId $storageAccount.Id -ActiveKeyName $storageAccountKey -DisableAutoRegenerateKey

A tárfiók kulcsregenerálás nélküli sikeres hozzáadásakor a következő példához hasonló kimenetnek kell megjelennie:

Id                  : https://kvcontoso.vault.azure.net:443/storage/sacontoso
Vault Name          : kvcontoso
AccountName         : sacontoso
Account Resource Id : /subscriptions/03f0blll-ce69-483a-a092-d06ea46dfb8z/resourceGroups/rgContoso/providers/Microsoft.Storage/storageAccounts/sacontoso
Active Key Name     : key1
Auto Regenerate Key : False
Regeneration Period : 90.00:00:00
Enabled             : True
Created             : 11/19/2018 11:54:47 PM
Updated             : 11/19/2018 11:54:47 PM
Tags                :

Kulcsregeneráció engedélyezése

Ha azt szeretné, hogy a Key Vault rendszeresen újragenerálja a tárfiókkulcsokat, az Azure PowerShell Add-AzKeyVaultManagedStorageAccount parancsmaggal beállíthat egy újragenerálási időszakot. Ebben a példában egy 30 napos regenerációs időszakot állítunk be. Amikor el kell forgatni, a Key Vault újragenerálja az inaktív kulcsot, majd aktívként állítja be az újonnan létrehozott kulcsot. Az SAS-jogkivonatok kiállításához használt kulcs az aktív kulcs.

$regenPeriod = [System.Timespan]::FromDays(30)

Add-AzKeyVaultManagedStorageAccount -VaultName $keyVaultName -AccountName $storageAccountName -AccountResourceId $storageAccount.Id -ActiveKeyName $storageAccountKey -RegenerationPeriod $regenPeriod

A tárfiók kulcsregenerálással történő sikeres hozzáadása után a következő példához hasonló kimenetnek kell megjelennie:

Id                  : https://kvcontoso.vault.azure.net:443/storage/sacontoso
Vault Name          : kvcontoso
AccountName         : sacontoso
Account Resource Id : /subscriptions/03f0blll-ce69-483a-a092-d06ea46dfb8z/resourceGroups/rgContoso/providers/Microsoft.Storage/storageAccounts/sacontoso
Active Key Name     : key1
Auto Regenerate Key : True
Regeneration Period : 30.00:00:00
Enabled             : True
Created             : 11/19/2018 11:54:47 PM
Updated             : 11/19/2018 11:54:47 PM
Tags                :

Közös hozzáférésű jogosultságkód-jogkivonatok

Megkérheti a Key Vaultot is, hogy hozzon létre közös hozzáférésű jogosultságkód-jogkivonatokat. A megosztott hozzáférésű jogosultságkód delegált hozzáférést biztosít a tárfiók erőforrásaihoz. A fiókkulcsok megosztása nélkül hozzáférést biztosíthat az ügyfeleknek a tárfiók erőforrásaihoz. A megosztott hozzáférésű jogosultságkódokkal biztonságos módon oszthatja meg a tárerőforrásokat anélkül, hogy a fiókkulcsokat veszélyeztetné.

Az ebben a szakaszban található parancsok a következő műveleteket hajtják végre:

  • Fiók közös hozzáférésű jogosultságkód-definíciójának beállítása.
  • Állítsa be a Key Vault által felügyelt tár megosztott hozzáférésű jogosultságkód-definícióját a tárolóban. A definíció tartalmazza a létrehozott közös hozzáférésű jogosultságkód jogkivonatának sablon URI-ját. A definíció a közös hozzáférésű jogosultságkód típusával account rendelkezik, és N napig érvényes.
  • Ellenőrizze, hogy a közös hozzáférésű jogosultságkód titkos kulcsként lett-e mentve a kulcstartóban.

Beállított változók

Először állítsa be a PowerShell-parancsmagok által használandó változókat az alábbi lépésekben. Mindenképpen frissítse a YourStorageAccountName> és <a <YourKeyVaultName> helyőrzőket.

$storageAccountName = <YourStorageAccountName>
$keyVaultName = <YourKeyVaultName>

Közös hozzáférésű jogosultságkód definíciós sablonjának definiálása

A Key Vault SAS-definíciós sablonnal hoz létre jogkivonatokat az ügyfélalkalmazásokhoz.

PÉLDA SAS-definíciós sablonra:

$sasTemplate="sv=2018-03-28&ss=bfqt&srt=sco&sp=rw&spr=https"

A Key Vault sasdefiníciós sablonjában szükséges fiók SAS-paraméterek

SAS-lekérdezési paraméter Leírás
SignedVersion (sv) Szükséges. Megadja a társzolgáltatás aláírt verzióját, amellyel engedélyezheti a fiók SAS-jével érkező kéréseket. A 2015-04-05-ös vagy újabb verzióra kell állítani. A Key Vault legkésőbb 2018.03.28-ra támogatja a verziókat
SignedServices (ss) Szükséges. Megadja a fiók SAS-jével elérhető aláírt szolgáltatásokat. Lehetséges értékek:

- Blob (b)
- Üzenetsor (q)
- Táblázat (t)
- Fájl (f)

Az értékeket kombinálva több szolgáltatáshoz is hozzáférést biztosíthat. Megadja például a ss=bf blob- és fájlvégpontokhoz való hozzáférést.
SignedResourceTypes (srt) Szükséges. Megadja a fiók SAS-jével elérhető aláírt erőforrástípusokat.

- Szolgáltatás (s): Hozzáférés a szolgáltatásszintű API-khoz (például szolgáltatástulajdonságok lekérése/beállítása, szolgáltatásstatisztikák lekérése, tárolók listázása/üzenetsorok/táblák/megosztások)
- Tároló (c): Hozzáférés a tárolószintű API-khoz (például Tároló létrehozása/törlése, Üzenetsor létrehozása/törlése, Tábla létrehozása/törlése, Megosztás létrehozása/törlése, Blobok/fájlok és könyvtárak listázása)
- Objektum (o): Hozzáférés az objektumszintű API-khoz blobokhoz, üzenetsor-üzenetekhez, táblaentitásokhoz és fájlokhoz (például Blob elhelyezése, Lekérdezési entitás, Üzenetek lekérése, Fájl létrehozása stb.)

Az értékeket kombinálva több erőforrástípushoz is hozzáférést biztosíthat. Megadja például a srt=sc szolgáltatás- és tárolóerőforrásokhoz való hozzáférést.
SignedPermission (sp) Szükséges. Megadja a fiók SAS-azonosítójához tartozó aláírt engedélyeket. Az engedélyek csak akkor érvényesek, ha megfelelnek a megadott aláírt erőforrástípusnak; ellenkező esetben a rendszer figyelmen kívül hagyja őket.

- Olvasás (r): Az összes aláírt erőforrástípusra (szolgáltatás, tároló és objektum) érvényes. Engedélyezi az olvasási engedélyeket a megadott erőforrástípushoz.
- Írás (w): Érvényes az összes aláírt erőforrástípusra (szolgáltatás, tároló és objektum). Engedélyezi az írási engedélyeket a megadott erőforrástípushoz.
- Törlés (d): Tároló- és objektumerőforrás-típusok esetén érvényes, kivéve az üzenetsor-üzeneteket.
- Végleges törlés (y): Csak a Blob objektumerőforrás-típusára érvényes.
- Lista (l): Csak a szolgáltatás- és tárolóerőforrás-típusokra érvényes.
- Hozzáadás (a): Csak a következő objektumerőforrás-típusokra érvényes: üzenetsor-üzenetek, táblaentitások és hozzáfűző blobok.
- Létrehozás (c): Csak a következő objektumerőforrás-típusokra érvényes: blobok és fájlok. A felhasználók új blobokat vagy fájlokat hozhatnak létre, de nem írhatják felül a meglévő blobokat vagy fájlokat.
- Frissítés (u): Csak a következő objektumerőforrás-típusokra érvényes: üzenetsor-üzenetek és táblaentitások.
- Folyamat (p): Csak a következő objektumerőforrás-típusra érvényes: üzenetsor-üzenetek.
- Címke (t): Csak a következő objektumerőforrás-típusra érvényes: blobok. Engedélyezi a blobcímkék műveleteit.
- Szűrő (f): Csak a következő objektumerőforrás-típusra érvényes: blob. Engedélyezi a blobcímke szerinti szűrést.
- Módosíthatatlansági szabályzat beállítása (i): Csak a következő objektumerőforrás-típusra érvényes: blob. Engedélyezi a nem módosíthatósági szabályzat beállítását és törlését, valamint a blobok jogi visszatartást.
SignedProtocol (spr) Opcionális. Megadja az SAS-fiókkal küldött kérésekhez engedélyezett protokollt. Lehetséges értékek a HTTPS és a HTTP (https,http) vagy a HTTPS (httpscsak). Az alapértelmezett érték https,http.

A HTTP csak nem engedélyezett érték.

További információ a fiók SAS-járól: Fiók SAS létrehozása

Feljegyzés

A Key Vault figyelmen kívül hagyja az olyan élettartam-paramétereket, mint az "Aláírt lejárat", az "Aláírt kezdés" és a 2018-03-28-s verzió után bevezetett paraméterek

Közös hozzáférésű jogosultságkód definíciójának beállítása a Key Vaultban

Az Azure PowerShell Set-AzKeyVaultManagedStorageSasDefinition parancsmaggal hozzon létre egy közös hozzáférésű jogosultságkód-definíciót. A paraméterhez megadhatja a választott -Name nevet.

Set-AzKeyVaultManagedStorageSasDefinition -AccountName $storageAccountName -VaultName $keyVaultName -Name <YourSASDefinitionName> -TemplateUri $sasTemplate -SasType 'account' -ValidityPeriod ([System.Timespan]::FromDays(1))

A közös hozzáférésű jogosultságkód definíciójának ellenőrzése

Az Azure PowerShell Get-AzKeyVaultSecret parancsmaggal ellenőrizheti, hogy a megosztott hozzáférésű jogosultságkód definíciója a kulcstartóban lett-e tárolva.

Először keresse meg a közös hozzáférésű jogosultságkód definícióját a kulcstartóban.

Get-AzKeyVaultSecret -VaultName <YourKeyVaultName>

Az SAS-definíciónak megfelelő titkos kód a következő tulajdonságokkal rendelkezik:

Vault Name   : <YourKeyVaultName>
Name         : <SecretName>
...
Content Type : application/vnd.ms-sastoken-storage
Tags         :

Mostantól a Get-AzKeyVaultSecret parancsmaggal és Name paraméterekkel VaultName megtekintheti a titkos kód tartalmát.

$secretValueText = Get-AzKeyVaultSecret -VaultName <YourKeyVaultName> -Name <SecretName> -AsPlainText
Write-Output $secretValueText

A parancs kimenete megjeleníti az SAS-definíciós sztringet.

Következő lépések