共用方式為


New-AzCosmosDbClientEncryptionKey

建立新的 CosmosDB 用戶端加密金鑰。

語法

New-AzCosmosDbClientEncryptionKey
   -ResourceGroupName <String>
   -AccountName <String>
   -DatabaseName <String>
   -Name <String>
   -EncryptionAlgorithmName <String>
   -KeyWrapMetadata <PSSqlKeyWrapMetadata>
   [-KeyEncryptionKeyResolver <IKeyEncryptionKeyResolver>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzCosmosDbClientEncryptionKey
   -Name <String>
   -EncryptionAlgorithmName <String>
   -KeyWrapMetadata <PSSqlKeyWrapMetadata>
   [-KeyEncryptionKeyResolver <IKeyEncryptionKeyResolver>]
   -SqlDatabaseObject <PSSqlDatabaseGetResults>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

New-AzCosmosDbClientEncryptionKey 會建立新的 CosmosDB 用戶端加密密鑰。

範例

範例 1

$myKeyWrapMetadataObject = [Microsoft.Azure.Commands.CosmosDB.Models.PSSqlKeyWrapMetadata]::new([Microsoft.Azure.Management.CosmosDB.Models.KeyWrapMetadata]::new("myKekV1","AZURE_KEY_VAULT", "https://contoso.vault.azure.net/keys/myKekV1/78deebed173b48e48f55abf87ed4cf71", "RSA-OAEP"))
New-AzCosmosDbClientEncryptionKey -AccountName myAccountName -DatabaseName myDatabaseName -ResourceGroupName myRgName -Name myClientEncryptionKeyName -EncryptionAlgorithmName "AEAD_AES_256_CBC_HMAC_SHA256" -KeyWrapMetadata $myKeyWrapMetadataObject

Name     : myContainerName
Id       : /subscriptions/mySubscriptionId/resourceGroups/myRgName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/sqlDatabases/myDatabaseName/clientEncryptionKeys/myClientEncryptionKeyName
Resource : Microsoft.Azure.Commands.CosmosDB.Models.PSSqlClientEncryptionKeyGetPropertiesResource

此範例示範如何建立新的密鑰。 如果未傳遞 KeyEncryptionKeyResolver,預設會使用 Azure Key Vault KeyResolver。 第一個命令會建立名稱 AZURE_KEY_VAULT為 myKekV1 且類型為 myKekV1 的 KeyWrapMetadata 物件,並將值設定為密鑰標識碼 https://contoso.vault.azure.net/keys/myKekV1/78deebed173b48e48f55abf87ed4cf71,以及用來加密密鑰的演算法類型 “RSA-OAEP”。 在第二個命令中,會以 myClientEncryptionKeyName 變數中的名稱建立新的密鑰,並將 KeyWrapMetadata 設定為第一個命令所傳回的值。

範例 2

$myKeyWrapMetadataObject = [Microsoft.Azure.Commands.CosmosDB.Models.PSSqlKeyWrapMetadata]::new([Microsoft.Azure.Management.CosmosDB.Models.KeyWrapMetadata]::new("myKekV1","AZURE_KEY_VAULT", "https://contoso.vault.azure.net/keys/myKekV1/78deebed173b48e48f55abf87ed4cf71", "RSA-OAEP"))
$azureKeyVaultKeyResolver = [Azure.Security.KeyVault.Keys.Cryptography.KeyResolver]::new([Azure.Identity.DefaultAzureCredential]::new())
New-AzCosmosDbClientEncryptionKey -AccountName myAccountName -DatabaseName myDatabaseName -ResourceGroupName myRgName -Name myClientEncryptionKeyName -EncryptionAlgorithmName "AEAD_AES_256_CBC_HMAC_SHA256" -KeyWrapMetadata $myKeyWrapMetadataObject -KeyEncryptionKeyResolver $azureKeyVaultKeyResolver

Name     : myContainerName
Id       : /subscriptions/mySubscriptionId/resourceGroups/myRgName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/sqlDatabases/myDatabaseName/clientEncryptionKeys/myClientEncryptionKeyName
Resource : Microsoft.Azure.Commands.CosmosDB.Models.PSSqlClientEncryptionKeyGetPropertiesResource

此範例示範如何建立新的密鑰,以及如何傳遞 KeyEncryptionKeyResolver 作為參數。 第一個命令會建立名稱 AZURE_KEY_VAULT為 myKekV1 且類型為 myKekV1 的 KeyWrapMetadata 物件,並將值設定為密鑰標識碼 https://contoso.vault.azure.net/keys/myKekV1/78deebed173b48e48f55abf87ed4cf71,以及用來加密密鑰的演算法類型 “RSA-OAEP”。 第二個命令會使用 Azure 預設認證來建立 Azure Key Vault KeyResolver 物件。 在第三個命令中,會以 myClientEncryptionKeyName 變數中設定的名稱建立新索引鍵,KeyWrapMetadata 會設定為第一個命令所傳回的值,而 KeyEncryptionKeyResolver 值則設定為透過第二個命令取得的 KeyResolver 物件。

參數

-AccountName

Cosmos DB 資料庫帳戶的名稱。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-Confirm

在執行 Cmdlet 之前,提示您進行確認。

類型:SwitchParameter
別名:cf
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-DatabaseName

資料庫名稱。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-DefaultProfile

用於與 Azure 通訊的認證、帳戶、租用戶和訂用帳戶。

類型:IAzureContextContainer
別名:AzContext, AzureRmContext, AzureCredential
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-EncryptionAlgorithmName

用戶端加密演演算法名稱。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-KeyEncryptionKeyResolver

類型為 Azure.Core.Cryptography.IKeyEncryptionKeyResolver 的 IKeyEncryptionKeyResolver 介面

類型:IKeyEncryptionKeyResolver
Position:Named
預設值:None
必要:False
接受管線輸入:True
接受萬用字元:False

-KeyWrapMetadata

類型為 Microsoft.Azure.Commands.CosmosDB.PSSqlKeyWrapMetadata 類型的 KeyWrapMetaData 物件。

類型:PSSqlKeyWrapMetadata
Position:Named
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-Name

用戶端加密金鑰名稱。

類型:String
別名:ClientEncryptionKeyName
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-ResourceGroupName

資源組名。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-SqlDatabaseObject

Sql Database 物件。

類型:PSSqlDatabaseGetResults
Position:Named
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-WhatIf

顯示 Cmdlet 執行時會發生什麼事。 Cmdlet 未執行。

類型:SwitchParameter
別名:wi
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

輸入

PSSqlKeyWrapMetadata

Byte[]

Microsoft.Data.Encryption.Cryptography.EncryptionKeyStoreProvider

PSSqlDatabaseGetResults

輸出

PSSqlClientEncryptionKeyGetResults

ConflictingResourceException