New-SqlColumnMasterKeySettings

Crea un objeto SqlColumnMasterKeySettings que describe una clave maestra almacenada en un proveedor y ruta de acceso del almacén de claves especificado arbitrariamente.

Syntax

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

Description

El cmdlet New-SqlColumnMasterKeySettings crea un objeto SqlColumnMasterKeySettings en memoria que almacena las propiedades de una clave maestra de columna para Always Encrypted: KeyStoreProviderName, KeyPath, AllowEnclaveComputations y Signature. Este cmdlet se puede usar para proveedores de almacén de claves personalizados y cuando se conoce el nombre del proveedor del almacén de claves y una ruta de acceso de clave con formato completo.

El cmdlet puede comunicarse con un almacén de claves que contiene la clave maestra de columna para generar una firma de propiedades de metadatos de clave. Si la clave se almacena en Azure, debe especificar un token de autenticación válido para un almacén de claves o un HSM administrado que contenga la clave. Como alternativa, puede autenticarse en Azure con Add-SqlAzureAuthenticationContext antes de llamar a este cmdlet.

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

Ejemplos

Ejemplo 1: Generar la configuración de una clave maestra de columna que se encuentra en Azure Key Vault y no está habilitada para enclaves.

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

Ejemplo 2: Generación de la configuración de una clave maestra de columna que se encuentra en un proveedor personalizado

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

Ejemplo 3: Generar la configuración de una clave maestra de columna que se encuentra en Azure Key Vault, permite cálculos de enclave y se firma con la firma proporcionada.

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

Ejemplo 4: Generar la configuración de una clave maestra de columna que se encuentra en Azure Key Vault, permite cálculos de enclave y está firmado automáticamente.

# 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

Parámetros

-AllowEnclaveComputations

Especifica si la clave maestra de columna permite cálculos de enclave. Si se especifica el parámetro , los enclaves seguros del lado servidor podrán realizar cálculos en los datos protegidos con la clave maestra de columna. No es válido para SQL Server 2017 y versiones anteriores.

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

-KeyPath

Especifica la ruta de acceso dentro del almacén de claves de la clave maestra física.

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

-KeyStoreProviderName

Especifica el nombre del proveedor del almacén de claves que se usa para proteger la clave maestra física.

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

-KeyVaultAccessToken

Especifica un token de acceso para almacenes de claves en Azure Key Vault. Use este parámetro si la clave maestra de columna especificada se almacena en un almacén de claves de Azure Key Vault y se espera que el cmdlet firme los metadatos de clave.

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

-ManagedHsmAccessToken

Especifica un token de acceso para los HSM administrados en Azure Key Vault. Use este parámetro si la clave maestra de columna especificada se almacena en un HSM administrado en Azure Key Vault y se espera que el cmdlet firme los metadatos de clave.

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

-Signature

Especifica una cadena hexadecimal que es una firma digital de las propiedades de clave maestra de columna. Un controlador cliente puede comprobar la firma para asegurarse de que las propiedades de la clave maestra de columna no se han alterado. Este parámetro solo se permite si se especifica AllowEnclaveComputations . Si se especifica AllowEnclaveComputations , pero Signature no es , el cmdlet calcula automáticamente la firma y rellena la propiedad Signature del nuevo objeto SqlColumnMasterKeySettings .

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