Compartilhar via


New-SqlColumnMasterKeySettings

Cria um objeto SqlColumnMasterKeySettings que descreve uma chave mestra armazenada em um provedor e caminho de repositório de chaves especificados arbitrariamente.

Sintaxe

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

Description

O cmdlet New-SqlColumnMasterKeySettings cria um sqlColumnMasterKeySettings objeto na memória que armazena propriedades de uma chave mestra de coluna para Always Encrypted: KeyStoreProviderName, KeyPath, AllowEnclaveComputations e Signature. Esse cmdlet pode ser usado para provedores de repositório de chaves personalizados e quando o nome do provedor do repositório de chaves e um caminho de chave totalmente formatado são conhecidos.

O cmdlet pode se comunicar com um repositório de chaves que contém a chave mestra da coluna para gerar uma assinatura de propriedades de metadados de chave. Se a chave estiver armazenada no Azure, você precisará especificar um token de autenticação válido para um cofre de chaves ou um HSM gerenciado que contém a chave. Como alternativa, você pode autenticar no Azure com Add-SqlAzureAuthenticationContext antes de chamar esse cmdlet.

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

Exemplos

Exemplo 1: gerar configurações para uma chave mestra de coluna que está no Azure Key Vault e não está habilitada para enclave.

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

Exemplo 2: gerar configurações para uma chave mestra de coluna que está em um provedor personalizado

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

Exemplo 3: Gerar configurações para uma chave mestra de coluna que está no Azure Key Vault, permite cálculos de enclave e é assinada usando a assinatura fornecida.

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

Exemplo 4: Gerar configurações para uma chave mestra de coluna que está no Azure Key Vault, permite cálculos de enclave e é assinado 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

Parâmetros

-AllowEnclaveComputations

Especifica se a chave mestra de coluna permite cálculos de enclave. Se o parâmetro for especificado, os enclaves seguros do lado do servidor poderão executar cálculos em dados protegidos com a chave mestra de coluna. Não é válido para o SQL Server 2017 e versões mais antigas.

Tipo:SwitchParameter
Cargo:2
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-KeyPath

Especifica o caminho dentro do repositório de chaves da chave mestra física.

Tipo:String
Cargo:1
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-KeyStoreProviderName

Especifica o nome do provedor do repositório de chaves usado para proteger a chave mestra física.

Tipo:String
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-KeyVaultAccessToken

Especifica um token de acesso para cofres de chaves no Azure Key Vault. Use esse parâmetro se a chave mestra de coluna especificada for armazenada em um cofre de chaves no Azure Key Vault e o cmdlet deverá assinar metadados de chave.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-ManagedHsmAccessToken

Especifica um token de acesso para HSMs gerenciados no Azure Key Vault. Use esse parâmetro se a chave mestra de coluna especificada for armazenada em um HSM gerenciado no Azure Key Vault e o cmdlet deverá assinar metadados de chave.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-ProgressAction

Determina como o PowerShell responde às atualizações de progresso geradas por um script, cmdlet ou provedor, como as barras de progresso geradas pelo cmdlet Write-Progress. O cmdlet Write-Progress cria barras de progresso que mostram o status de um comando.

Tipo:ActionPreference
Aliases:proga
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Signature

Especifica uma cadeia de caracteres hexadecimal que é uma assinatura digital de propriedades de chave mestra de coluna. Um driver cliente pode verificar a assinatura para garantir que as propriedades da chave mestra da coluna não tenham sido adulteradas. Esse parâmetro só será permitido se AllowEnclaveComputations for especificado. Se AllowEnclaveComputations for especificado, mas Signature não for, o cmdlet calculará automaticamente a assinatura e preencherá a propriedade Signature do novo objeto SqlColumnMasterKeySettings do .

Tipo:String
Cargo:3
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False