Update-AzCosmosDbClientEncryptionKey
更新 CosmosDB 客户端加密密钥。 通过读取现有的客户端加密密钥来执行客户端修补作。
语法
ByNameParameterSet (默认值)
Update-AzCosmosDbClientEncryptionKey
-ResourceGroupName <String>
-AccountName <String>
-DatabaseName <String>
-Name <String>
-KeyWrapMetadata <PSSqlKeyWrapMetadata>
[-KeyEncryptionKeyResolver <IKeyEncryptionKeyResolver>]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByParentObjectParameterSet
Update-AzCosmosDbClientEncryptionKey
-Name <String>
-KeyWrapMetadata <PSSqlKeyWrapMetadata>
-SqlDatabaseObject <PSSqlDatabaseGetResults>
[-KeyEncryptionKeyResolver <IKeyEncryptionKeyResolver>]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByObjectParameterSet
Update-AzCosmosDbClientEncryptionKey
-KeyWrapMetadata <PSSqlKeyWrapMetadata>
-InputObject <PSSqlClientEncryptionKeyGetResults>
[-KeyEncryptionKeyResolver <IKeyEncryptionKeyResolver>]
[-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 Key Vault 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 Key Vault 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 数据库帐户的名称。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
ByNameParameterSet
Position: Named
必需: True
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-Confirm
在运行 cmdlet 之前,提示你进行确认。
参数属性
参数集
(All)
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-DatabaseName
数据库名称
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
ByNameParameterSet
Position: Named
必需: True
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-DefaultProfile
用于与 Azure 通信的凭据、帐户、租户和订阅。
参数属性
参数集
(All)
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
客户端加密密钥对象。
ByObjectParameterSet
Position: Named
必需: True
来自管道的值: True
来自管道的值(按属性名称): False
来自剩余参数的值: False
-KeyEncryptionKeyResolver
Azure.Core.Cryptography.IKeyEncryptionKeyResolver 类型的 IKeyEncryptionKeyResolver 接口
参数属性
参数集
(All)
Position: Named
必需: False
来自管道的值: True
来自管道的值(按属性名称): False
来自剩余参数的值: False
类型为 Microsoft.Azure.Commands.CosmosDB.PSSqlKeyWrapMetadata 的 KeyWrapMetaData 对象。
(All)
Position: Named
必需: True
来自管道的值: True
来自管道的值(按属性名称): False
来自剩余参数的值: False
-Name
客户端加密密钥名称。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
别名: ClientEncryptionKeyName
参数集
ByNameParameterSet
Position: Named
必需: True
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ByParentObjectParameterSet
Position: Named
必需: True
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-ResourceGroupName
资源组的名称。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
ByNameParameterSet
Position: Named
必需: True
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-SqlDatabaseObject
Sql 数据库对象。
参数属性
参数集
ByParentObjectParameterSet
Position: Named
必需: True
来自管道的值: True
来自管道的值(按属性名称): False
来自剩余参数的值: False
-WhatIf
显示 cmdlet 运行时会发生什么情况。
命令脚本未运行。
参数属性
参数集
(All)
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters 。
Microsoft.Data.Encryption.Cryptography.EncryptionKeyStoreProvider
输出