New-SqlColumnMasterKeySettings

任意に指定されたキー ストア プロバイダーとパスに格納されているマスター キーを記述する SqlColumnMasterKeySettings オブジェクトを作成します。

構文

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

説明

New-SqlColumnMasterKeySettings コマンドレットは、Always Encrypted の列マスター キーのプロパティ (KeyStoreProviderName、KeyPath、AllowEnclaveComputations、Signature) を格納する、SqlColumnMasterKeySettings インメモリ オブジェクトを作成します。 このコマンドレットは、カスタム キー ストア プロバイダーと、キー ストア プロバイダー名と完全に書式設定されたキー パスの両方がわかっている場合に使用できます。

このコマンドレットは、列マスター キーを保持するキー ストアと通信して、キー メタデータ プロパティの署名を生成できます。 キーが Azure に格納されている場合は、キー コンテナーまたはキーを保持するマネージド HSM の有効な認証トークンを指定する必要があります。 または、このコマンドレットを呼び出す前に、Add-SqlAzureAuthenticationContext を使用して Azure に対する認証を行うことができます。

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

例 1: Azure Key Vault 内にあり、エンクレーブが有効になっていない列マスター キーの設定を生成します。

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

例 2: カスタム プロバイダーにある列マスター キーの設定を生成する

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

例 3: Azure Key Vault 内にある列マスター キーの設定を生成し、エンクレーブ計算を許可し、指定された署名を使用して署名します。

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

例 4: 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

# 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

パラメーター

-AllowEnclaveComputations

列マスター キーでエンクレーブ計算を許可するかどうかを指定します。 パラメーターが指定されている場合、サーバー側のセキュリティで保護されたエンクレーブは、列マスター キーで保護されたデータに対して計算を実行できます。 SQL Server 2017 以前のバージョンでは無効です。

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

-KeyPath

物理マスター キーのキー ストア内のパスを指定します。

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

-KeyStoreProviderName

物理マスター キーの保護に使用するキー ストアのプロバイダー名を指定します。

型:String
配置:0
規定値:None
必須:True
パイプライン入力を受け取る: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

-Signature

列マスター キー プロパティのデジタル署名である 16 進文字列を指定します。 クライアント ドライバーは、署名を確認して、列マスター キーのプロパティが改ざんされていないことを確認できます。 このパラメーターは、AllowEnclaveComputations 指定されている場合にのみ使用できます。 AllowEnclaveComputations 指定されているが、Signature が指定されていない場合、コマンドレットは自動的に署名を計算し、新しい SqlColumnMasterKeySettings オブジェクトの Signature プロパティを設定します。

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