Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure Key Vault è un servizio cloud che fornisce un archivio sicuro per i segreti, ad esempio chiavi, password e certificato. Questa guida introduttiva è incentrata sul processo di distribuzione di un file Bicep per creare un insieme di credenziali delle chiavi e una chiave.
Bicep è un linguaggio specifico di dominio (DSL) che usa la sintassi dichiarativa per distribuire le risorse di Azure. Fornisce sintassi concisa, sicurezza dei tipi affidabile e supporto per il riutilizzo del codice. Bicep offre la migliore esperienza di creazione per le soluzioni di infrastruttura come codice in Azure.
Prerequisiti
Per completare questo articolo:
- Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
- L'utente deve avere assegnato un ruolo predefinito di Azure, si consiglia il ruolo contributor. Fare clic qui per altre informazioni
Esaminare il file Bicep
Il modello usato in questo avvio rapido proviene dai modelli di avvio rapido di Azure.
@description('The name of the key vault to be created.')
param vaultName string
@description('The name of the key to be created.')
param keyName string
@description('The location of the resources.')
param location string = resourceGroup().location
@description('The SKU of the vault to be created.')
@allowed([
'standard'
'premium'
])
param skuName string = 'standard'
@description('The JsonWebKeyType of the key to be created.')
@allowed([
'EC'
'EC-HSM'
'RSA'
'RSA-HSM'
])
param keyType string = 'RSA'
@description('The permitted JSON web key operations of the key to be created.')
param keyOps array = []
@description('The size in bits of the key to be created.')
param keySize int = 2048
@description('The JsonWebKeyCurveName of the key to be created.')
@allowed([
''
'P-256'
'P-256K'
'P-384'
'P-521'
])
param curveName string = ''
resource vault 'Microsoft.KeyVault/vaults@2023-07-01' = {
name: vaultName
location: location
properties: {
enableRbacAuthorization: true
enableSoftDelete: true
softDeleteRetentionInDays: 90
enablePurgeProtection: true
enabledForDeployment: false
enabledForDiskEncryption: false
enabledForTemplateDeployment: false
tenantId: subscription().tenantId
sku: {
name: skuName
family: 'A'
}
networkAcls: {
defaultAction: 'Allow'
bypass: 'AzureServices'
}
}
}
resource key 'Microsoft.KeyVault/vaults/keys@2023-07-01' = {
parent: vault
name: keyName
properties: {
kty: keyType
keyOps: keyOps
keySize: keySize
curveName: curveName
}
}
output proxyKey object = key.properties
output location string = location
output name string = vault.name
output resourceGroupName string = resourceGroup().name
output resourceId string = vault.id
Nel file Bicep sono definite due risorse:
Altri esempi di modelli di Azure Key Vault sono disponibili in Modelli di avvio rapido di Azure.
Parametri e definizioni
| Parametro | Definition |
|---|---|
| keyOps | Specifica le operazioni che possono essere eseguite utilizzando la chiave . Se non si specifica questo parametro, è possibile eseguire tutte le operazioni. I valori accettabili per questo parametro sono un elenco delimitato da virgole di operazioni chiave come definito dalla specifica JWK (JSON Web Key):["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"] |
| CurveName | Nome della curva ellittica (EC) per il tipo di chiave EC. Visualizza JsonWebKeyCurveName |
| Kty | Tipo di chiave da creare. Per i valori validi, vedere JsonWebKeyType |
| Etichette | Metadati specifici dell'applicazione sotto forma di coppie chiave-valore. |
| nbf | Specifica l'ora, come oggetto DateTime, prima della quale non è possibile usare la chiave. Il formato sarà un timestamp Unix (numero di secondi dopo l'epoca Unix il 1° gennaio 1970, ora UTC). |
| Exp | Specifica l'ora di scadenza, come oggetto DateTime. Il formato sarà un timestamp Unix (numero di secondi dopo l'epoca Unix il 1° gennaio 1970, ora UTC). |
Implementazione del file Bicep
Salvare il file Bicep come main.bicep nel computer locale.
Distribuisci il file Bicep usando l'interfaccia della riga di comando di Azure o Azure PowerShell.
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicep --parameters vaultName=<vault-name> keyName=<key-name>Annotazioni
Sostituire
<vault-name>con il nome dell'insieme di credenziali delle chiavi. Sostituire<vault-name>con il nome del Key Vault e sostituire<key-name>con il nome della chiave.Al termine della distribuzione, verrà visualizzato un messaggio che indica che la distribuzione è riuscita.
Assegnare un ruolo RBAC di Key Vault
L'insieme di credenziali delle chiavi creato da questo file Bicep usa il controllo degli accessi in base al ruolo di Azure (Azure RBAC) per l'autorizzazione. Per accedere alle chiavi tramite il piano dati, ad esempio usando il interfaccia della riga di comando di Azure o Azure PowerShell, è necessario assegnare a se stessi un ruolo appropriato.
echo "Enter your key vault name:" &&
read keyVaultName &&
az role assignment create --role "Key Vault Crypto Officer" \
--assignee-object-id $(az ad signed-in-user show --query id -o tsv) \
--scope $(az keyvault show --name $keyVaultName --query id -o tsv)
Annotazioni
La propagazione delle assegnazioni di ruolo potrebbe richiedere un minuto o due.
Esaminare le risorse distribuite
È possibile usare il portale di Azure per controllare l'insieme di credenziali delle chiavi e la chiave. In alternativa, usare l'interfaccia della riga di comando di Azure o lo script di Azure PowerShell seguente per elencare la chiave creata.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault key list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
La creazione di una chiave con un modello di ARM è diversa dalla creazione della chiave tramite il piano dati
Creazione di una chiave tramite ARM
È possibile creare nuove chiavi solo. Non è possibile aggiornare le chiavi esistenti, né creare nuove versioni delle chiavi esistenti. Se la chiave esiste già, la chiave esistente viene recuperata dall'archiviazione e usata (non si verificheranno operazioni di scrittura).
Per poter usare questa API, il chiamante deve disporre dell'autorizzazione per l'azione di controllo degli accessi in base al ruolo "Microsoft.KeyVault/vaults/keys/write". Il ruolo predefinito "Collaboratore di Key Vault" è sufficiente, poiché autorizza tutte le azioni di controllo degli accessi in base al ruolo di Azure che corrispondono al modello "Microsoft.KeyVault/*".
API esistente (creazione della chiave tramite piano dati)
- È possibile creare nuove chiavi, aggiornare le chiavi esistenti e creare nuove versioni delle chiavi esistenti.
- Il chiamante deve essere autorizzato a usare questa API. Se l'insieme di credenziali usa i criteri di accesso, il chiamante deve disporre dell'autorizzazione di "creazione" della chiave. Se l'insieme di credenziali è abilitato per il controllo degli accessi in base al ruolo di Azure, il chiamante deve essere autorizzato per DataAction di controllo degli accessi in base al ruolo di Azure "Microsoft.KeyVault/vaults/keys/create/action".
Pulire le risorse
Altre guide introduttive e esercitazioni su Key Vault si basano su questa guida introduttiva. Se prevedi di continuare a lavorare con le guide introduttive e i tutorial successivi, potresti voler lasciare queste risorse intatte. Quando non è più necessario, elimina il gruppo di risorse, eliminando così il Key Vault e le risorse correlate. Per eliminare il gruppo di risorse con l'interfaccia della riga di comando di Azure oppure con Azure PowerShell:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Annotazioni
L'eliminazione del gruppo di risorse elimina anche l'insieme di credenziali delle chiavi, ma quest'ultimo entra quindi in uno stato di eliminazione temporanea e rimane recuperabile per il periodo di conservazione (90 giorni per impostazione predefinita). Il nome dell'insieme di credenziali rimane riservato a livello globale durante tale periodo e, poiché la protezione dall'eliminazione è abilitata, l'insieme di credenziali non può essere eliminato in anticipo. Per gli insiemi di credenziali delle chiavi standard, gli insiemi di credenziali eliminati temporaneamente non comportano addebiti. Per altre informazioni, vedere Panoramica dell'eliminazione temporanea di Key Vault.
Passaggi successivi
In questa guida di avvio rapido sono stati creati un insieme di credenziali delle chiavi e una chiave con un file Bicep ed è stata convalidata la distribuzione. Per altre informazioni su Key Vault e Azure Resource Manager, vedere questi articoli.
- Leggi un' Panoramica di Azure Key Vault
- Vedere altre informazioni su Azure Resource Manager
- Vedere Panoramica della sicurezza di Key Vault