次の方法で共有


New-SqlColumnEncryptionKeyEncryptedValue

列暗号化キーの暗号化された値を作成します。

構文

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

説明

New-SqlColumnEncryptionKeyEncryptedValue コマンドレットは、列暗号化キーの暗号化された値を作成します。 返される暗号化された値は 16 進数の文字列です。

このコマンドレットは、次の 2 つの操作モードをサポートしています。

  • 暗号化された値が指定されていない場合、コマンドレットは新しいプレーンテキスト対称キーを生成し、指定された列マスター キーを使用してキーを暗号化します。

  • 暗号化された値が指定されている場合、コマンドレットは最初に指定された暗号化された値を復号化してから、取得したプレーンテキスト キーを指定された列マスター キーで再暗号化します。 コマンドレットは、列マスター キーを保持しているキー ストアと通信します。 キーが Azure に格納されている場合は、キー コンテナーまたはキーを保持するマネージド HSM の有効な認証トークンを指定する必要があります。 または、このコマンドレットを呼び出す前に、Add-SqlAzureAuthenticationContext を使用して Azure に対する認証を行うことができます。

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

例 1: キーを生成し、証明書を使用して暗号化する

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

例 2: 列暗号化キー値を生成し、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

例 3: 証明書である列マスター キーを使用して生成された、既存の暗号化されたキー値を復号化する。 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'

パラメーター

-ColumnMasterKeySettings

このコマンドレットで列マスター キーが格納されている場所を検索するために使用する SqlColumnMasterKeySettings オブジェクトを指定します。

型:SqlColumnMasterKeySettings
配置:1
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-EncryptedValue

既存の暗号化された値を指定します。

このパラメーターに値を指定した場合、コマンドレットは最初に ColumnMasterKeySettings パラメーターによって参照される列マスター キーを使用してこの値を復号化し、次に TargetColumnMasterKeySettings パラメーターによって参照される列マスター キーを使用して再暗号化します。

型:String
配置:2
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-KeyVaultAccessToken

Azure Key Vault 内のキー コンテナーのアクセス トークンを指定します。 対称列暗号化キーを暗号化または復号化するための列マスター キーが Azure Key Vault のキー コンテナーに格納されている場合は、このパラメーターを使用します。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ManagedHsmAccessToken

Azure Key Vault 内のマネージド HSM のアクセス トークンを指定します。 対称列暗号化キーを暗号化または復号化するための列マスター キーが Azure Key Vault のマネージド HSM に格納されている場合は、このパラメーターを使用します。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ProgressAction

スクリプト、コマンドレット、またはプロバイダーによって生成された進行状況の更新 (Write-Progress コマンドレットによって生成された進行状況バーなど) に対する PowerShell の応答方法を決定します。 Write-Progress コマンドレットは、コマンドの状態を示す進行状況バーを作成します。

型:ActionPreference
Aliases:proga
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-TargetColumnMasterKeySettings

このコマンドレットを使用して、新しい暗号化された値の暗号化に使用される列マスター キーが格納される場所を決定するために使用する SqlColumnMasterKeySettings オブジェクトを指定します。

型:SqlColumnMasterKeySettings
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

出力

String