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.
Megjegyzés:
We recommend that you use the Azure Az PowerShell module to interact with Azure. See Install Azure PowerShell to get started. To learn how to migrate to the Az PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.
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 | Application ID |
---|---|---|
Microsoft Entra ID | Azure Government | 7e7c393b-45d0-48b1-a35e-2905ddf8183c |
Microsoft Entra ID | Azure – nyilvános | cfa8b339-82a2-471a-a3c9-0fc0be7a4093 |
Egyéb | Bármelyik | cfa8b339-82a2-471a-a3c9-0fc0be7a4093 |
Előfeltételek
Az útmutató elvégzéséhez először a következőket kell tennie:
- Telepítse az Azure PowerShell-modult.
- Kulcstartó létrehozása
- Azure-tárfiók létrehozása. A tárfiók nevének csak kisbetűket és számokat kell használnia. A név hosszának 3 és 24 karakter közöttinek kell lennie.
Manage storage account keys
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>
Változók beállítása
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
Megjegyzé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.
Változók beállítása
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 (https csak). The default value is 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
Megjegyzé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.