你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Update-AzCosmosDbClientEncryptionKey

汇报 CosmosDB 客户端加密密钥。 通过读取现有的客户端加密密钥来执行客户端修补操作。

语法

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

说明

Update-AzCosmosDbClientEncryptionKey 更新 CosmosDb 客户端加密密钥。 通过读取现有的 CosmosDB 客户端加密密钥来执行客户端修补操作。

示例

示例 1

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

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 密钥库 KeyResolver。 第一个命令创建名为 myKekV2 的 KeyWrapMetadata 对象,其类型 AZURE_KEY_VAULT为 myKekV2,其值设置为密钥 ID https://contoso.vault.azure.net/keys/myKekV2/78deebed173b48e48f55abf87ed4cf71 和算法类型“RSA-OAEP”,用于加密密钥。 在第二个命令中,使用 myClientEncryptionKeyName 变量中设置的名称的键更新,并将 KeyWrapMetadata 设置为第一个命令返回的值。

示例 2

$updatedKeyWrapMetadataObject = [Microsoft.Azure.Commands.CosmosDB.Models.PSSqlKeyWrapMetadata]::new([Microsoft.Azure.Management.CosmosDB.Models.KeyWrapMetadata]::new("myKekV2","AZURE_KEY_VAULT", "https://contoso.vault.azure.net/keys/myKekV2/78deebed173b48e48f55abf87ed4cf71", "RSA-OAEP"))
$azureKeyVaultKeyResolver = [Azure.Security.KeyVault.Keys.Cryptography.KeyResolver]::new([Azure.Identity.DefaultAzureCredential]::new())
Update-AzCosmosDbClientEncryptionKey -AccountName myAccountName -DatabaseName myDatabaseName -ResourceGroupName myRgName -Name myClientEncryptionKeyName -KeyWrapMetadata $updatedKeyWrapMetadataObject -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 作为参数传递。 第一个命令创建名为 myKekV2 的 KeyWrapMetadata 对象,其类型 AZURE_KEY_VAULT为 myKekV2,其值设置为密钥 ID https://contoso.vault.azure.net/keys/myKekV2/78deebed173b48e48f55abf87ed4cf71 和算法类型“RSA-OAEP”,用于加密密钥。 第二个命令使用 Azure 默认凭据创建 Azure 密钥库 KeyResolver 对象。 在第三个命令中,名称为 myClientEncryptionKeyName 变量的键通过 KeyWrapMetadata 设置为第一个命令返回的值进行更新,KeyEncryptionKeyResolver 值设置为通过第二个命令获取的 KeyResolver 对象。

示例 3

$updatedKeyWrapMetadataObject = [Microsoft.Azure.Commands.CosmosDB.Models.PSSqlKeyWrapMetadata]::new([Microsoft.Azure.Management.CosmosDB.Models.KeyWrapMetadata]::new("myKekV2","AZURE_KEY_VAULT", "https://contoso.vault.azure.net/keys/myKekV2/78deebed173b48e48f55abf87ed4cf71", "RSA-OAEP"))
$keyToUpdate = Get-AzCosmosDbClientEncryptionKey -AccountName myAccountName -DatabaseName myDatabaseName -ResourceGroupName myRgName -ClientEncryptionKeyName myClientEncryptionKeyName
Update-AzCosmosDbClientEncryptionKey -InputObject $keyToUpdate -KeyWrapMetadata $updatedKeyWrapMetadataObject -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

此示例演示如何使用 InputObject 更新密钥,该输入对象是通过读取必须更新的键获取的。 第一个命令创建名为 myKekV2 的 KeyWrapMetadata 对象,其类型 AZURE_KEY_VAULT为 myKekV2,其值设置为密钥 ID https://contoso.vault.azure.net/keys/myKekV2/78deebed173b48e48f55abf87ed4cf71 和算法类型“RSA-OAEP”,用于加密密钥。 第二个命令读取要更新的密钥。 第三个命令会更新第二个命令前面读取的密钥。 在第二个命令中读取的对象作为 InputObject 传递,以及在第一个命令中获取的更新的 KeyWrapMetadata。

参数

-AccountName

Cosmos DB 数据库帐户的名称。

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

-Confirm

提示你在运行 cmdlet 之前进行确认。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DatabaseName

数据库名称。

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

-DefaultProfile

用于与 Azure 通信的凭据、帐户、租户和订阅。

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

客户端加密密钥对象。

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

-KeyEncryptionKeyResolver

Azure.Core.Cryptography.IKeyEncryptionKeyResolver 类型的 IKeyEncryptionKeyResolver 接口

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

-KeyWrapMetadata

Microsoft.Azure.Commands.CosmosDB.PSSqlKeyWrapMetadata 类型的 KeyWrapMetaData 对象。

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

-Name

客户端加密密钥名称。

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

-ResourceGroupName

资源组的名称。

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

-SqlDatabaseObject

Sql 数据库对象。

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

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

Byte[]

PSSqlKeyWrapMetadata

Microsoft.Data.Encryption.Cryptography.EncryptionKeyStoreProvider

PSSqlDatabaseGetResults

PSSqlClientEncryptionKeyGetResults

输出

PSSqlClientEncryptionKeyGetResults

ResourceNotFoundException