New-SqlColumnMasterKeySettings

Crea un oggetto SqlColumnMasterKeySettings che descrive una chiave master archiviata in un provider e un percorso dell'archivio chiavi specificati in modo arbitrario.

Sintassi

New-SqlColumnMasterKeySettings
   [-KeyStoreProviderName] <String>
   [-KeyPath] <String>
   [[-Signature] <String>]
   [-KeyVaultAccessToken <String>]
   [-ManagedHsmAccessToken <String>]
   [-AllowEnclaveComputations]
   [<CommonParameters>]

Descrizione

Il cmdlet New-SqlColumnMasterKeySettings crea un oggetto SqlColumnMasterKeySettings in memoria che archivia le proprietà di una chiave master della colonna per Always Encrypted: KeyStoreProviderName, KeyPath, AllowEnclaveComputations e Signature. Questo cmdlet può essere usato per i provider dell'archivio chiavi personalizzati e quando sono noti sia il nome del provider dell'archivio chiavi che un percorso di chiave completamente formattato.

Il cmdlet può comunicare con un archivio chiavi che contiene la chiave master della colonna per generare una firma di proprietà dei metadati chiave. Se la chiave viene archiviata in Azure, è necessario specificare un token di autenticazione valido per un insieme di credenziali delle chiavi o un modulo di protezione hardware gestito che contiene la chiave. In alternativa, è possibile eseguire l'autenticazione in Azure con Add-SqlAzureAuthenticationContext prima di chiamare questo cmdlet.

Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.

Esempio

Esempio 1: Generare impostazioni per una chiave master della colonna che si trova in Azure Key Vault e non è abilitata per l'enclave.

$cmkSettings = New-SqlColumnMasterKeySettings -KeyStoreProviderName 'AZURE_KEY_VAULT' -KeyPath 'https://myvault.vault.azure.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700'

Esempio 2: Generare impostazioni per una chiave master della colonna che si trova in un provider personalizzato

$cmkSettings = New-SqlColumnMasterKeySettings -KeyStoreProviderName 'CUSTOM_PROVIDER' -KeyPath '\\SecureNetworkShare\Keys\AlwaysEncrypted.key'

Esempio 3: Generare impostazioni per una chiave master della colonna presente in Azure Key Vault, consente i calcoli dell'enclave e viene firmata usando la firma fornita.

$cmkSettings = New-SqlColumnMasterKeySettings -KeyStoreProviderName 'AZURE_KEY_VAULT' -KeyPath 'https://myvault.vault.azure.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700' -AllowEnclaveComputations -Signature '0x19BEB4F27F582FDBBD0C7E5F92CF161D79D5E7F5A5183F9C8E710252E7028A3654FBEAF834EE45925024F1A32BD3C6D7D92B46E38690830E20E0777607B073E6665EB05E39263C02557D1208ACECB2251A108D0DEFC25232B67FD223C590258C817292FAFCE2388507812D64A0AEC9E546B0B8E4B2F3EA436053CB158F3CF478C5F5EDA511D0F752F60C3B129BF21356A93368FCC7FD6FAA8DB4E919EB551F375181CA3F4D0404A811C99BD2C8D10C0003AC12B138371F2D76611768B4E84D44116C42F00D679B36D41FBD9467B58291B1F4348C7B422793DA0614EF980CA0A7F42B6D627AFA5A753F0869D2C2F9B0FD38289D5433CE9266C6F867334654BE12'

Esempio 4: Generare impostazioni per una chiave master della colonna in Azure Key Vault, consente i calcoli dell'enclave e viene firmata automaticamente.

# Connect to Azure account.
Import-Module Az.Accounts -MinimumVersion 2.2.0
Connect-AzAccount

# Obtain an access token for key vaults.
$keyVaultAccessToken = (Get-AzAccessToken -ResourceUrl https://vault.azure.net).Token

# Pass the token to the cmdlet. It will use the token to communicate with a key vault in Azure Key Vault to sign the column master key properties.
$cmkSettings = New-SqlColumnMasterKeySettings -KeyStoreProviderName 'AZURE_KEY_VAULT' -KeyPath 'https://myvault.vault.azure.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700' -AllowEnclaveComputations -KeyVaultAccessToken $keyVaultAccessToken

Parametri

-AllowEnclaveComputations

Specifica se la chiave master della colonna consente i calcoli dell'enclave. Se si specifica il parametro , le enclave sicure lato server potranno eseguire calcoli sui dati protetti con la chiave master della colonna. Non valido per SQL Server 2017 e versioni precedenti.

Type:SwitchParameter
Position:2
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-KeyPath

Specifica il percorso all'interno dell'archivio chiavi della chiave master fisica.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-KeyStoreProviderName

Specifica il nome del provider dell'archivio chiavi utilizzato per proteggere la chiave master fisica.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-KeyVaultAccessToken

Specifica un token di accesso per gli insiemi di credenziali delle chiavi in Azure Key Vault. Usare questo parametro se la chiave master della colonna specificata viene archiviata in un insieme di credenziali delle chiavi in Azure Key Vault e il cmdlet deve firmare i metadati della chiave.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ManagedHsmAccessToken

Specifica un token di accesso per i moduli di protezione hardware gestiti in Azure Key Vault. Usare questo parametro se la chiave master della colonna specificata viene archiviata in un modulo di protezione hardware gestito in Azure Key Vault e il cmdlet deve firmare i metadati della chiave.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Signature

Specifica una stringa esadecimale che rappresenta una firma digitale delle proprietà della chiave master della colonna. Un driver client può verificare la firma per assicurarsi che le proprietà della chiave master della colonna non siano state manomesse. Questo parametro è consentito solo se è specificato AllowEnclaveComputations . Se allowEnclaveComputations è specificato, ma Signature non è , il cmdlet calcola automaticamente la firma e popola la proprietà Signature del nuovo oggetto SqlColumnMasterKeySettings .

Type:String
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False