Partager via


New-SqlColumnEncryptionKeyEncryptedValue

Crée la valeur chiffrée d’une clé de chiffrement de colonne.

Syntaxe

New-SqlColumnEncryptionKeyEncryptedValue
   [-TargetColumnMasterKeySettings] <SqlColumnMasterKeySettings>
   [[-ColumnMasterKeySettings] <SqlColumnMasterKeySettings>]
   [[-EncryptedValue] <String>]
   [-KeyVaultAccessToken <String>]
   [-ManagedHsmAccessToken <String>]
   [-ProgressAction <ActionPreference>]
   [<CommonParameters>]

Description

La cmdlet New-SqlColumnEncryptionKeyEncryptedValue crée la valeur chiffrée d’une clé de chiffrement de colonne. La valeur chiffrée retournée est une chaîne hexadécimale.

L’applet de commande prend en charge deux modes d’opération :

  • Si aucune valeur chiffrée n’est spécifiée, l’applet de commande génère une nouvelle clé symétrique en texte clair et chiffre la clé avec la clé principale de colonne spécifiée.

  • Si une valeur chiffrée est spécifiée, l’applet de commande déchiffre d’abord la valeur chiffrée spécifiée, puis chiffre à nouveau la clé en texte clair obtenue avec la clé principale de colonne spécifiée. L’applet de commande communique avec un magasin de clés contenant la clé principale de colonne. Si la clé est stockée dans Azure, vous devez spécifier un jeton d’authentification valide pour un coffre de clés ou un HSM managé contenant la clé. Vous pouvez également vous authentifier auprès d’Azure avec Add-SqlAzureAuthenticationContext avant d’appeler cette applet de commande.

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

Exemples

Exemple 1 : Générer une clé et la chiffrer à l’aide d’un certificat

$cmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation 'CurrentUser' -certificateThumbprint 'f2260f28d909d21c642a3d8e0b45a830e79a1420'
New-SqlColumnEncryptionKeyEncryptedValue -TargetColumnMasterKeySettings $cmkSettings

Exemple 2 : Générez une valeur de clé de chiffrement de colonne et chiffrez-la à l’aide d’une clé principale de colonne qui est une clé stockée dans un coffre de clés dans Azure Key Vault.

# 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 the key vault containing the column master key to sign the column master key metadata properties.
$cmkSettings = New-SqlAzureKeyVaultColumnMasterKeySettings -KeyUrl 'https://myvault.vault.azure.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700' -AllowEnclaveComputations -KeyVaultAccessToken $keyVaultAccessToken

# Generate a column encryption key value and encrypt it with the column master key. Pass the access token, so that the cmdlet can communicate with Azure Key Vault.
New-SqlColumnEncryptionKeyEncryptedValue -TargetColumnMasterKeySettings $cmkSettings -KeyVaultAccessToken $keyVaultAccessToken

Exemple 3 : Déchiffrer une valeur de clé chiffrée existante, qui a été produite à l’aide d’une clé principale de colonne qui est un certificat. Chiffrez à nouveau la valeur de clé à l’aide d’une clé principale de colonne qui est une clé dans Azure Key Vault.

# 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

# Create a SqlColumnMasterKeySettings object referencing a certificate.
$currentCmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation 'CurrentUser' -certificateThumbprint 'f2260f28d909d21c642a3d8e0b45a830e79a1420'

# Create a SqlColumnMasterKeySettings object, referencing a column master key in a key vault in Azure Key Vault.
$targetCmkSettings = New-SqlAzureKeyVaultColumnMasterKeySettings -KeyUrl 'https://myvault.vault.azure.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700'

# Decrypt a column encryption key value using the current column master key and re-encrypt it with the new column master key. Pass the access token, so that the cmdlet can communicate with Azure Key Vault. 
New-SqlColumnEncryptionKeyEncryptedValue -TargetColumnMasterKeySettings $targetCmkSettings -ColumnMasterKeySettings $currentCmkSettings -KeyVaultAccessToken $keyVaultAccessToken -EncryptedValue '0x016E000001630075007200720065006E00740075007300650072002F006D0079002F006200330039003900340035006200370031003100330037003700350032006400380061003100310033003900660035006200640036006400380066003700330038006600320033006200360032003000307925663D2C3E275DD272E15E606927DA4326F5735C2C8E84F91B9EFE44F503ED01C130984E83AF4513F8A4A8D0878D42364E958291AE25111A868D25B69FC5143EEC04131DA27D05F3442CB665ACB4BB3F6A7A9F07DBD5D212A772414A2CCA03BEBEB7BF0E22C644C715D739B983872AFB2D390229A0B5311BCA07E3C1D857EE8982320BBBE9382C960B9674E3CC3D618AD623D6A362BEAEF68B1B1BB49660DD643A4375A9285CD9EAA5B13BFE2792DA92025351E7B6067BA07B6178D03041F40F00D84326627094C9D6944DD912497B080058A529D2DA11C8D609604449714420B4E44ECD1EB26DEE18BF712146A51DD99A02E3D4EE692A503CF02F874497010772DE743DDFB2A74801AC9A94C876D1F93554B70CE0ECC437E7FC28BC11A08222977CDA807E256ED536C41700C631878226E513AFE1199A1DB4732F975AA09A1E75B8A19802AE018871A7A0AD5B1E29B942F30490EDABD310A4170B991EBCFDA2AFE43285D5406476204B381D8A33EEB0B967073B4C0127B1C7F0281AB310EE4B9A3C2D3EAB44A1F5D15D4739FFAEF6110ED4808446F6A05DBF4121B2B33A0AF5A457CD38F895B8F7ABDF792E3ADBC3AF55B1442625F88F80127D08DE9E4AC1BB2AAA46843A477135053CEEFA4327D8C999C16D8B49C225F34AD7588A5F9E93FB5532B1F1DC5AFB3CE23DDC8DC12327DD6B5985104D14F4A1BC0F61F0AACD'

Paramètres

-ColumnMasterKeySettings

Spécifie l’objet SqlColumnMasterKeySettings que cette applet de commande utilise pour rechercher où la clé principale de colonne est stockée.

Type:SqlColumnMasterKeySettings
Position:1
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-EncryptedValue

Spécifie la valeur chiffrée existante.

Si vous spécifiez une valeur pour ce paramètre, l’applet de commande déchiffre d’abord cette valeur à l’aide de la clé principale de colonne référencée par le paramètre ColumnMasterKeySettings, puis la chiffre à nouveau à l’aide de la clé principale de colonne référencée par le paramètre TargetColumnMasterKeySettings.

Type:String
Position:2
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-KeyVaultAccessToken

Spécifie un jeton d’accès pour les coffres de clés dans Azure Key Vault. Utilisez ce paramètre si la clé principale de colonne pour chiffrer ou déchiffrer une clé de chiffrement de colonne symétrique est stockée dans un coffre de clés dans Azure Key Vault.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ManagedHsmAccessToken

Spécifie un jeton d’accès pour les HSM managés dans Azure Key Vault. Utilisez ce paramètre si la clé principale de colonne pour chiffrer ou déchiffrer une clé de chiffrement de colonne symétrique est stockée dans un HSM managé dans Azure Key Vault.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ProgressAction

Détermine comment PowerShell répond aux mises à jour de progression générées par un script, une applet de commande ou un fournisseur, telles que les barres de progression générées par l’applet de commande Write-Progress. L’applet de commande Write-Progress crée des barres de progression qui affichent l’état d’une commande.

Type:ActionPreference
Alias:proga
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-TargetColumnMasterKeySettings

Spécifie l’objet SqlColumnMasterKeySettings utilisé par cette applet de commande pour déterminer où la clé principale de colonne, à utiliser pour chiffrer la nouvelle valeur chiffrée, est stockée.

Type:SqlColumnMasterKeySettings
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Sorties

String