New-SqlColumnMasterKeySettings
Erstellt ein SqlColumnMasterKeySettings -Objekt, das einen Masterschlüssel beschreibt, der in einem willkürlich angegebenen Schlüsselspeicheranbieter und Pfad gespeichert ist.
Syntax
New-SqlColumnMasterKeySettings
[-KeyStoreProviderName] <String>
[-KeyPath] <String>
[[-Signature] <String>]
[-KeyVaultAccessToken <String>]
[-ManagedHsmAccessToken <String>]
[-AllowEnclaveComputations]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Beschreibung
Das cmdlet New-SqlColumnMasterKeySettings erstellt ein SqlColumnMasterKeySettings- speicherinternes Objekt, das Eigenschaften eines Spaltenmasterschlüssels für Always Encrypted speichert: KeyStoreProviderName, KeyPath, AllowEnclaveComputations und Signature. Dieses Cmdlet kann für benutzerdefinierte Schlüsselspeicheranbieter verwendet werden, und wenn sowohl der Name des Schlüsselspeicheranbieters als auch ein vollständig formatierter Schlüsselpfad bekannt sind.
Das Cmdlet kann mit einem Schlüsselspeicher kommunizieren, der den Spaltenmasterschlüssel enthält, um eine Signatur der Schlüsselmetadateneigenschaften zu generieren. Wenn der Schlüssel in Azure gespeichert ist, müssen Sie ein gültiges Authentifizierungstoken für einen Schlüsseltresor oder ein verwaltetes HSM angeben, das den Schlüssel enthält. Alternativ können Sie sich bei Azure mit Add-SqlAzureAuthenticationContext authentifizieren, bevor Sie dieses Cmdlet aufrufen.
Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.
Beispiele
Beispiel 1: Generieren Sie Einstellungen für einen Spaltenmasterschlüssel, der sich in Azure Key Vault befindet und nicht enklaviert ist.
$cmkSettings = New-SqlColumnMasterKeySettings -KeyStoreProviderName 'AZURE_KEY_VAULT' -KeyPath 'https://myvault.vault.azure.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700'
Beispiel 2: Generieren von Einstellungen für einen Spaltenmasterschlüssel, der sich in einem benutzerdefinierten Anbieter befindet
$cmkSettings = New-SqlColumnMasterKeySettings -KeyStoreProviderName 'CUSTOM_PROVIDER' -KeyPath '\\SecureNetworkShare\Keys\AlwaysEncrypted.key'
Beispiel 3: Generieren von Einstellungen für einen Spaltenmasterschlüssel, der sich in Azure Key Vault befindet, ermöglicht Enklavenberechnungen und wird mithilfe der bereitgestellten Signatur signiert.
$cmkSettings = New-SqlColumnMasterKeySettings -KeyStoreProviderName 'AZURE_KEY_VAULT' -KeyPath 'https://myvault.vault.azure.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700' -AllowEnclaveComputations -Signature '0x19BEB4F27F582FDBBD0C7E5F92CF161D79D5E7F5A5183F9C8E710252E7028A3654FBEAF834EE45925024F1A32BD3C6D7D92B46E38690830E20E0777607B073E6665EB05E39263C02557D1208ACECB2251A108D0DEFC25232B67FD223C590258C817292FAFCE2388507812D64A0AEC9E546B0B8E4B2F3EA436053CB158F3CF478C5F5EDA511D0F752F60C3B129BF21356A93368FCC7FD6FAA8DB4E919EB551F375181CA3F4D0404A811C99BD2C8D10C0003AC12B138371F2D76611768B4E84D44116C42F00D679B36D41FBD9467B58291B1F4348C7B422793DA0614EF980CA0A7F42B6D627AFA5A753F0869D2C2F9B0FD38289D5433CE9266C6F867334654BE12'
Beispiel 4: Generieren von Einstellungen für einen Spaltenmasterschlüssel, der sich in Azure Key Vault befindet, ermöglicht Enklavenberechnungen und ist automatisch signiert.
# 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
Parameter
-AllowEnclaveComputations
Gibt an, ob der Spaltenmasterschlüssel Enklavenberechnungen zulässt. Wenn der Parameter angegeben ist, können serverseitige sichere Enklaven Berechnungen für daten ausführen, die mit dem Spaltenmasterschlüssel geschützt sind. Ungültig für SQL Server 2017 und ältere Versionen.
Typ: | SwitchParameter |
Position: | 2 |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-KeyPath
Gibt den Pfad innerhalb des Schlüsselspeichers des physischen Hauptschlüssels an.
Typ: | String |
Position: | 1 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-KeyStoreProviderName
Gibt den Anbieternamen des Schlüsselspeichers an, der zum Schutz des physischen Hauptschlüssels verwendet wird.
Typ: | String |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-KeyVaultAccessToken
Gibt ein Zugriffstoken für Schlüsseltresor in Azure Key Vault an. Verwenden Sie diesen Parameter, wenn der angegebene Spaltenmasterschlüssel in einem Schlüsseltresor in Azure Key Vault gespeichert ist und das Cmdlet Schlüsselmetadaten signieren soll.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ManagedHsmAccessToken
Gibt ein Zugriffstoken für verwaltete HSMs im Azure Key Vault an. Verwenden Sie diesen Parameter, wenn der angegebene Spaltenmasterschlüssel in einem verwalteten HSM im Azure Key Vault gespeichert ist und das Cmdlet Schlüsselmetadaten signieren soll.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ProgressAction
Bestimmt, wie PowerShell auf Statusaktualisierungen reagiert, die von einem Skript, Cmdlet oder Anbieter generiert werden, z. B. auf die Statusanzeigen, die vom Cmdlet Write-Progress generiert werden. Das Cmdlet Write-Progress erstellt Statusanzeigen, die den Status eines Befehls anzeigen.
Typ: | ActionPreference |
Aliase: | proga |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Signature
Gibt eine hexadezimale Zeichenfolge an, die eine digitale Signatur von Spaltenmasterschlüsseleigenschaften ist. Ein Clienttreiber kann die Signatur überprüfen, um sicherzustellen, dass die Eigenschaften des Spaltenmasterschlüssels nicht manipuliert wurden. Dieser Parameter ist nur zulässig, wenn AllowEnclaveComputations angegeben ist. Wenn AllowEnclaveComputations- angegeben ist, aber Signatur- nicht, berechnet das Cmdlet automatisch die Signatur und füllt die Signature-Eigenschaft des neuen SqlColumnMasterKeySettings-Objekt auf.
Typ: | String |
Position: | 3 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |