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

Add-AzKeyVaultKey

在密钥保管库中创建密钥或将密钥导入密钥保管库。

语法

Add-AzKeyVaultKey
   [-VaultName] <String>
   [-Name] <String>
   -Destination <String>
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-Size <Int32>]
   [-KeyType <String>]
   [-CurveName <String>]
   [-Exportable]
   [-Immutable]
   [-ReleasePolicyPath <String>]
   [-UseDefaultCVMPolicy]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzKeyVaultKey
   [-VaultName] <String>
   [-Name] <String>
   -KeyFilePath <String>
   [-KeyFilePassword <SecureString>]
   [-Destination <String>]
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-KeyType <String>]
   [-CurveName <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzKeyVaultKey
   -HsmName <String>
   [-Name] <String>
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-Size <Int32>]
   -KeyType <String>
   [-CurveName <String>]
   [-Exportable]
   [-Immutable]
   [-ReleasePolicyPath <String>]
   [-UseDefaultCVMPolicy]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzKeyVaultKey
   -HsmName <String>
   [-Name] <String>
   -KeyFilePath <String>
   [-KeyFilePassword <SecureString>]
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzKeyVaultKey
   [-InputObject] <PSKeyVault>
   [-Name] <String>
   -Destination <String>
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-Size <Int32>]
   [-KeyType <String>]
   [-CurveName <String>]
   [-Exportable]
   [-Immutable]
   [-ReleasePolicyPath <String>]
   [-UseDefaultCVMPolicy]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzKeyVaultKey
   [-InputObject] <PSKeyVault>
   [-Name] <String>
   -KeyFilePath <String>
   [-KeyFilePassword <SecureString>]
   [-Destination <String>]
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-KeyType <String>]
   [-CurveName <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzKeyVaultKey
   [-HsmObject] <PSManagedHsm>
   [-Name] <String>
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-Size <Int32>]
   -KeyType <String>
   [-CurveName <String>]
   [-Exportable]
   [-Immutable]
   [-ReleasePolicyPath <String>]
   [-UseDefaultCVMPolicy]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzKeyVaultKey
   [-HsmObject] <PSManagedHsm>
   [-Name] <String>
   -KeyFilePath <String>
   [-KeyFilePassword <SecureString>]
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzKeyVaultKey
   [-ResourceId] <String>
   [-Name] <String>
   -Destination <String>
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-Size <Int32>]
   [-KeyType <String>]
   [-CurveName <String>]
   [-Exportable]
   [-Immutable]
   [-ReleasePolicyPath <String>]
   [-UseDefaultCVMPolicy]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzKeyVaultKey
   [-ResourceId] <String>
   [-Name] <String>
   -KeyFilePath <String>
   [-KeyFilePassword <SecureString>]
   [-Destination <String>]
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-KeyType <String>]
   [-CurveName <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzKeyVaultKey
   -HsmResourceId <String>
   [-Name] <String>
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-Size <Int32>]
   -KeyType <String>
   [-CurveName <String>]
   [-Exportable]
   [-Immutable]
   [-ReleasePolicyPath <String>]
   [-UseDefaultCVMPolicy]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzKeyVaultKey
   -HsmResourceId <String>
   [-Name] <String>
   -KeyFilePath <String>
   [-KeyFilePassword <SecureString>]
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

说明

Add-AzKeyVaultKey cmdlet 在 Azure 密钥库 的密钥保管库中创建密钥,或将密钥导入密钥保管库。 使用以下任一方法使用此 cmdlet 添加密钥:

  • 在密钥库服务的硬件安全模块(HSM)中创建密钥。
  • 在密钥库服务中创建软件中的密钥。
  • 将密钥从自己的硬件安全模块(HSM)导入密钥库服务中的 HSM。
  • 从计算机上的 .pfx 文件导入密钥。
  • 将计算机上的 .pfx 文件中的密钥导入到密钥库服务中的硬件安全模块(HSM)。 对于这些操作中的任何一项,可以提供关键属性或接受默认设置。 如果创建或导入与密钥保管库中的现有密钥同名的密钥,则会使用为新密钥指定的值更新原始密钥。 可以使用该密钥版本的特定于版本的 URI 来访问以前的值。 若要了解密钥版本和 URI 结构,请参阅 密钥库 REST API 文档中的“关于密钥和机密”。 注意:若要从自己的硬件安全模块导入密钥,必须先使用 Azure 密钥库 BYOK 工具集生成 BYOK 包(文件扩展名为 .byok 的文件)。 有关详细信息,请参阅如何为 Azure 密钥库生成和传输受 HSM 保护的密钥。 最佳做法是,使用 Backup-AzKeyVaultKey cmdlet 在创建或更新密钥后备份密钥。 没有取消删除功能,因此,如果意外删除密钥或删除密钥,然后改变主意,除非你有可以还原的备份,否则密钥不可恢复。

示例

示例 1:创建密钥

Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITSoftware' -Destination 'Software'

Vault/HSM Name : contoso
Name           : ITSoftware
Key Type       : RSA
Key Size       : 2048
Curve Name     : 
Version        : 67da57e9cadf48a2ad8d366b115843ab
Id             : https://contoso.vault.azure.net:443/keys/ITSoftware/67da57e9cadf48a2ad8d366b115843ab
Enabled        : True
Expires        :
Not Before     :
Created        : 5/21/2018 11:10:58 PM
Updated        : 5/21/2018 11:10:58 PM
Purge Disabled : False
Tags           :

此命令在名为 Contoso 的密钥保管库中创建名为 ITSoftware 的软件保护密钥。

示例 2:创建 EC 密钥

Add-AzKeyVaultKey -VaultName test-kv -Name test-key -Destination Software -KeyType EC

Vault/HSM Name : test-kv
Name           : test-key
Key Type       : EC
Key Size       :
Curve Name     : P-256
Version        : 4da74af2b4fd47d6b1aa0b05c9a2ed13
Id             : https://test-kv.vault.azure.net:443/keys/test-key/4da74af2b4fd47d6b1aa0b05c9a2ed13
Enabled        : True
Expires        :
Not Before     :
Created        : 8/24/2021 6:38:34 AM
Updated        : 8/24/2021 6:38:34 AM
Recovery Level : Recoverable+Purgeable
Tags           :

此命令在名为 test-kv 的密钥保管库中创建一个名为 test-key 的软件保护的 EC 密钥。 其曲线名称默认为 P-256。

示例 3:创建受 HSM 保护的密钥

Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITHsm' -Destination 'HSM'

Vault Name     : contoso
Name           : ITHsm
Version        : 67da57e9cadf48a2ad8d366b115843ab
Id             : https://contoso.vault.azure.net:443/keys/ITSoftware/67da57e9cadf48a2ad8d366b115843ab
Enabled        : True
Expires        :
Not Before     :
Created        : 5/21/2018 11:10:58 PM
Updated        : 5/21/2018 11:10:58 PM
Purge Disabled : False
Tags           :

此命令在名为 Contoso 的密钥保管库中创建受 HSM 保护的密钥。

示例 4:创建具有非默认值的键

$KeyOperations = 'decrypt', 'verify'
$Expires = (Get-Date).AddYears(2).ToUniversalTime()
$NotBefore = (Get-Date).ToUniversalTime()
$Tags = @{'Severity' = 'high'; 'Accounting' = "true"}
Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITHsmNonDefault' -Destination 'HSM' -Expires $Expires -NotBefore $NotBefore -KeyOps $KeyOperations -Disable -Tag $Tags

Vault/HSM Name : contoso
Name           : ITHsmNonDefault
Key Type       : RSA
Key Size       : 2048
Version        : 929bfc14db84439b823ffd1bedadaf5f
Id             : https://contoso.vault.azure.net:443/keys/ITHsmNonDefault/929bfc14db84439b823ffd1bedadaf5f
Enabled        : False
Expires        : 5/21/2020 11:12:43 PM
Not Before     : 5/21/2018 11:12:50 PM
Created        : 5/21/2018 11:13:17 PM
Updated        : 5/21/2018 11:13:17 PM
Purge Disabled : False
Tags           : Name        Value
                 Severity    high
                 Accounting  true

第一个命令将值存储在$KeyOperations变量中解密和验证。 第二个命令使用 Get-Date cmdlet 创建一个以 UTC 格式定义的 DateTime 对象。 该对象指定未来两年的时间。 该命令将该日期存储在$Expires变量中。 要了解详情,请键入 Get-Help Get-Date。 第三个命令使用 Get-Date cmdlet 创建 DateTime 对象。 该对象指定当前 UTC 时间。 该命令将该日期存储在$NotBefore变量中。 最后一个命令创建一个名为 ITHsmNonDefault 的密钥,该密钥是受 HSM 保护的密钥。 该命令指定$KeyOperations存储的允许键操作的值。 该命令指定 在上述命令中创建的 ExpiresNotBefore 参数的时间,以及用于高严重性和 IT 的标记。 新密钥已禁用。 可以使用 Set-AzKeyVaultKey cmdlet 启用它

示例 5:导入受 HSM 保护的密钥

Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITByok' -KeyFilePath 'C:\Contoso\ITByok.byok' -Destination 'HSM'

Vault Name     : contoso
Name           : ITByok
Version        : 67da57e9cadf48a2ad8d366b115843ab
Id             : https://contoso.vault.azure.net:443/keys/ITByok/67da57e9cadf48a2ad8d366b115843ab
Enabled        : True
Expires        :
Not Before     :
Created        : 5/21/2018 11:10:58 PM
Updated        : 5/21/2018 11:10:58 PM
Purge Disabled : False
Tags           :

此命令从 KeyFilePath 参数指定的位置导入名为 ITByok 的密钥。 导入的密钥是受 HSM 保护的密钥。 若要从自己的硬件安全模块导入密钥,必须先使用 Azure 密钥库 BYOK 工具集生成 BYOK 包(文件扩展名为 .byok 的文件)。 有关详细信息,请参阅如何为 Azure 密钥库生成和传输受 HSM 保护的密钥。

示例 6:导入受软件保护的密钥

$Password = ConvertTo-SecureString -String "****" -AsPlainText -Force
Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITPfx' -KeyFilePath 'C:\Contoso\ITPfx.pfx' -KeyFilePassword $Password

Vault Name     : contoso
Name           : ITPfx
Version        : 67da57e9cadf48a2ad8d366b115843ab
Id             : https://contoso.vault.azure.net:443/keys/ITPfx/67da57e9cadf48a2ad8d366b115843ab
Enabled        : True
Expires        :
Not Before     :
Created        : 5/21/2018 11:10:58 PM
Updated        : 5/21/2018 11:10:58 PM
Purge Disabled : False
Tags           :

第一个命令使用 ConvertTo-SecureString cmdlet 将字符串转换为安全字符串,然后将该字符串存储在$Password变量中。 要了解详情,请键入 Get-Help ConvertTo-SecureString。 第二个命令在 Contoso 密钥保管库中创建软件密码。 该命令指定密钥的位置和存储在$Password的密码。

示例 7:导入密钥并分配属性

$Password = ConvertTo-SecureString -String "****" -AsPlainText -Force
$Expires = (Get-Date).AddYears(2).ToUniversalTime()
$Tags = @{ 'Severity' = 'high'; 'Accounting' = "true" }
Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITPfxToHSM' -Destination 'HSM' -KeyFilePath 'C:\Contoso\ITPfx.pfx' -KeyFilePassword $Password -Expires $Expires -Tag $Tags

Vault Name     : contoso
Name           : ITPfxToHSM
Version        : 929bfc14db84439b823ffd1bedadaf5f
Id             : https://contoso.vault.azure.net:443/keys/ITPfxToHSM/929bfc14db84439b823ffd1bedadaf5f
Enabled        : True
Expires        : 5/21/2020 11:12:43 PM
Not Before     :
Created        : 5/21/2018 11:13:17 PM
Updated        : 5/21/2018 11:13:17 PM
Purge Disabled : False
Tags           : Name        Value
                 Severity    high
                 Accounting  true

第一个命令使用 ConvertTo-SecureString cmdlet 将字符串转换为安全字符串,然后将该字符串存储在$Password变量中。 第二个命令使用 Get-Date cmdlet 创建 DateTime 对象,然后将该对象存储在$Expires变量中。 第三个命令创建$tags变量来设置高严重性和 IT 的标记。 最后一个命令将密钥作为 HSM 密钥从指定位置导入。 该命令指定存储在$Password中的$Expires和密码中的过期时间,并应用存储在$tags中的标记。

示例 8:为“自带密钥”(BYOK)功能生成密钥交换密钥(KEK)

$key = Add-AzKeyVaultKey -VaultName $vaultName -Name $keyName -Destination HSM -Size 2048 -KeyOps "import"

生成密钥(称为密钥交换密钥(KEK)。 KEK 必须是仅具有导入密钥操作的 RSA-HSM 密钥。 仅 Key Vault 高级 SKU 支持 RSA-HSM 密钥。 有关更多详细信息,请参阅 https://learn.microsoft.com/azure/key-vault/keys/hsm-protected-keys

示例 9:在托管 hsm 中创建安全密钥

<# release_policy_template.json
{
  "anyOf": [
    {
      "allOf": [
        {
          "claim": "<claim name>",
          "equals": "<value to match>"
        }
      ],
      "authority": "<issuer>"
    }
  ],
  "version": "1.0.0"
}
#>
Add-AzKeyVaultKey -HsmName testmhsm -Name test-key -KeyType RSA -Exportable -ReleasePolicyPath release_policy.json

Vault/HSM Name : testmhsm
Name           : test-key
Key Type       : RSA
Key Size       : 2048
Curve Name     : 
Version        : ed6b026bf0a605042006635713d33ef6
Id             : https://testmhsm.managedhsm.azure.net:443/keys/test-key/ed6b026bf0a605042006635713d33ef6
Enabled        : True
Expires        : 
Not Before     : 
Created        : 6/2/2022 7:14:37 AM
Updated        : 6/2/2022 7:14:37 AM
Recovery Level : Recoverable+Purgeable
Release Policy : 
                 Content Type   : application/json; charset=utf-8
                 Policy Content : {"anyOf":[{"allOf":[{"claim":"x-ms-sgx-is-debuggable","equals":"true"}],"authority":"htt 
                 ps://sharedeus.eus.attest.azure.net/"}],"version":"1.0.0"}
                 Immutable      : False


Tags           :

在名为 testmhsm 的托管 hsm 中创建安全密钥。 其名称为测试键,类型为 RSA。

示例 10:将机密 VM 的密钥添加到密钥保管库。

New-AzKeyVault -Name $keyVaultName -Location $location -ResourceGroupName $resourceGroupName -Sku Premium -EnablePurgeProtection -EnabledForDiskEncryption;
$cvmAgent = Get-AzADServicePrincipal -ApplicationId '00001111-aaaa-2222-bbbb-3333cccc4444';
Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ResourceGroupName $resourceGroupName -ObjectId $cvmAgent.id -PermissionsToKeys get,release;

$keySize = 3072;
Add-AzKeyVaultKey -VaultName $keyVaultName -Name $keyName -Size $keySize -KeyOps wrapKey,unwrapKey -KeyType RSA -Destination HSM -Exportable -UseDefaultCVMPolicy;

Vault/HSM Name : <Vault Name>
Name           : <Key Name>
Key Type       : RSA
Key Size       : 3072
Curve Name     :
Version        : <Version>
Id             : <Id>
Enabled        : True
Expires        :
Not Before     :
Created        : 9/9/2022 8:36:00 PM
Updated        : 9/9/2022 8:36:00 PM
Recovery Level : Recoverable
Release Policy :
                 Content Type   : application/json; charset=utf-8
                 Policy Content : <Policy Content>
                 Immutable      : False
Tags           :

参数

-Confirm

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

类型:SwitchParameter
别名:cf
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CurveName

指定椭圆曲线加密的曲线名称,当 KeyType 为 EC 时,此值有效。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DefaultProfile

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

类型:IAzureContextContainer
别名:AzContext, AzureRmContext, AzureCredential
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Destination

指定是将密钥添加为受软件保护的密钥还是密钥库服务中受 HSM 保护的密钥。 有效值为:HSM 和软件。 注意:若要将 HSM 用作目标,必须具有支持 HSM 的密钥保管库。 请参阅 Azure 密钥保管库定价网站,了解有关 Azure 密钥保管库的服务层级和功能的详细信息。 创建新密钥时,此参数是必需的。 如果使用 KeyFilePath 参数导入密钥,此参数是可选的:

  • 如果未指定此参数,并且此 cmdlet 导入扩展名为 .byok 的密钥,则会将该密钥导入为受 HSM 保护的密钥。 该 cmdlet 无法将该密钥导入为受软件保护的密钥。
  • 如果未指定此参数,并且此 cmdlet 导入扩展名为 .pfx 的密钥,则会将该密钥导入为受软件保护的密钥。
类型:String
接受的值:HSM, Software, HSM, Software
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-Disable

指示要添加的密钥设置为禁用的初始状态。 使用密钥的任何尝试都将失败。 如果要预加载稍后要启用的密钥,请使用此参数。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Expires

指定此 cmdlet 添加的密钥的 UTC 密钥的过期时间(作为 DateTime 对象)。 如果未指定,密钥将不会过期。 若要获取 DateTime 对象,请使用 Get-Date cmdlet。 要了解详情,请键入 Get-Help Get-Date。 请注意,BYOK 过程中使用的密钥交换密钥将忽略到期时间。

类型:Nullable<T>[DateTime]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Exportable

指示是否可以导出私钥。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-HsmName

HSM 名称。 Cmdlet 基于名称和当前所选环境构造托管 HSM 的 FQDN。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-HsmObject

HSM 对象。

类型:PSManagedHsm
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-HsmResourceId

HSM 的资源 ID。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Immutable

将发布策略设置为不可变状态。 标记为不可变后,无法重置此标志,并且在任何情况下都无法更改策略。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-InputObject

Vault 对象。

类型:PSKeyVault
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-KeyFilePassword

将导入的文件的密码指定为 SecureString 对象。 若要获取 SecureString 对象,请使用 ConvertTo-SecureString cmdlet。 要了解详情,请键入 Get-Help ConvertTo-SecureString。 必须指定此密码才能导入扩展名为 .pfx 的文件。

类型:SecureString
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-KeyFilePath

指定包含此 cmdlet 导入的密钥材料的本地文件的路径。 有效的文件扩展名为 .byok 和 .pfx。

  • 如果该文件是 .byok 文件,则导入后,密钥会自动受到 HSM 的保护,并且无法替代此默认值。
  • 如果该文件是 .pfx 文件,则导入后软件会自动保护密钥。 若要替代此默认值,请将 目标 参数设置为 HSM,以便密钥受 HSM 保护。 指定此参数时, 目标 参数是可选的。
类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-KeyOps

指定可以使用此 cmdlet 添加的键执行的操作数组。 如果未指定此参数,则可以执行所有操作。 此参数的可接受值是 JSON Web 密钥 (JWK) 规范中定义的一个以逗号分隔的密钥操作列表:

  • 加密
  • decrypt
  • wrapKey
  • unwrapKey
  • sign
  • verify
  • 导入(仅适用于 KEK,请参阅示例 7)
类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-KeyType

指定此键的键类型。 导入 BYOK 密钥时,默认为“RSA”。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-Name

指定要添加到密钥保管库的密钥的名称。 此 cmdlet 基于此参数指定的名称、密钥保管库的名称和当前环境构造密钥的完全限定域名(FQDN)。 该名称的长度必须为 1 到 63 个字符的字符串,仅包含 0-9、a-z、A-Z 和 - (短划线符号)。

类型:String
别名:KeyName
Position:1
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-NotBefore

将时间指定为 DateTime 对象,在该对象之前无法使用键。 此参数使用 UTC。 若要获取 DateTime 对象,请使用 Get-Date cmdlet。 如果未指定此参数,则可以立即使用该密钥。

类型:Nullable<T>[DateTime]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ReleasePolicyPath

包含 JSON 策略定义的文件的路径。 可在其中导出密钥的策略规则。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ResourceId

保管库资源 ID。

类型:String
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Size

RSA 密钥大小(以位为单位)。 如果未指定,该服务将提供安全的默认值。

类型:Nullable<T>[Int32]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Tag

以哈希表的形式进行键值对。 例如:@{key0=“value0”;key1=$null;key2=“value2”}

类型:Hashtable
别名:Tags
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-UseDefaultCVMPolicy

指定使用默认策略,以便导出密钥进行 CVM 磁盘加密。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-VaultName

指定此 cmdlet 向其添加密钥的密钥保管库的名称。 此 cmdlet 基于此参数指定的名称和当前环境构造密钥保管库的 FQDN。

类型:String
Position:0
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-WhatIf

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

类型:SwitchParameter
别名:wi
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

PSKeyVault

PSManagedHsm

String

输出

PSKeyVaultKey