Поделиться через


Add-AzureKeyVaultKey

Создает ключ в хранилище ключей или импортирует ключ в хранилище ключей.

Предупреждение

Модуль AzureRM PowerShell официально устарел с 29 февраля 2024 г. Пользователям рекомендуется выполнить миграцию из AzureRM в модуль Az PowerShell, чтобы обеспечить постоянную поддержку и обновления.

Хотя модуль AzureRM по-прежнему может функционировать, он больше не поддерживается или не поддерживается, размещая любое постоянное использование на усмотрение и риск пользователя. Ознакомьтесь с нашими ресурсами миграции, чтобы получить рекомендации по переходу в модуль Az.

Синтаксис

Add-AzureKeyVaultKey
   [-VaultName] <String>
   [-Name] <String>
   -Destination <String>
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-Size <Int32>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzureKeyVaultKey
   [-VaultName] <String>
   [-Name] <String>
   -KeyFilePath <String>
   [-KeyFilePassword <SecureString>]
   [-Destination <String>]
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzureKeyVaultKey
   [-InputObject] <PSKeyVault>
   [-Name] <String>
   -Destination <String>
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-Size <Int32>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzureKeyVaultKey
   [-InputObject] <PSKeyVault>
   [-Name] <String>
   -KeyFilePath <String>
   [-KeyFilePassword <SecureString>]
   [-Destination <String>]
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzureKeyVaultKey
   [-ResourceId] <String>
   [-Name] <String>
   -Destination <String>
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-Size <Int32>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzureKeyVaultKey
   [-ResourceId] <String>
   [-Name] <String>
   -KeyFilePath <String>
   [-KeyFilePassword <SecureString>]
   [-Destination <String>]
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Описание

Командлет Add-AzureKeyVaultKey создает ключ в хранилище ключей в Azure Key Vault или импортирует ключ в хранилище ключей. Используйте этот командлет для добавления ключей с помощью любого из следующих методов:

  • Создайте ключ в аппаратном модуле безопасности (HSM) в службе Key Vault.
  • Создайте ключ в программном обеспечении в службе Key Vault.
  • Импортируйте ключ из собственного аппаратного модуля безопасности (HSM) в HSM в службе Key Vault.
  • Импортируйте ключ из PFX-файла на компьютере.
  • Импортируйте ключ из PFX-файла на компьютере в аппаратные модули безопасности (HSM) в службе Key Vault. Для любой из этих операций можно указать ключевые атрибуты или принять параметры по умолчанию. Если вы создаете или импортируете ключ с тем же именем, что и существующий ключ в хранилище ключей, исходный ключ обновляется со значениями, указанными для нового ключа. Вы можете получить доступ к предыдущим значениям с помощью URI конкретной версии для этой версии ключа. Дополнительные сведения о версиях ключей и структуре URI см . в документации по REST API Key Vault. Примечание. Чтобы импортировать ключ из собственного аппаратного модуля безопасности, необходимо сначала создать пакет BYOK (файл с расширением имени файла byok) с помощью набора инструментов BYOK в Azure Key Vault. Дополнительные сведения см. в статье "Создание и передача ключей, защищенных HSM" для Azure Key Vault. Рекомендуется создать резервную копию ключа после его создания или обновления с помощью командлета Backup-AzureKeyVaultKey. Нет функции отмены, поэтому если вы случайно удалите ключ или удалите его, а затем измените свое мнение, ключ не может восстановиться, если у вас нет резервной копии, которую можно восстановить.

Примеры

Пример 1. Создание ключа

PS C:\> Add-AzureKeyVaultKey -VaultName 'contoso' -Name 'ITSoftware' -Destination 'Software'

Vault Name     : contoso
Name           : ITSoftware
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           :

Эта команда создает защищенный программным обеспечением ключ с именем ITSoftware в хранилище ключей с именем Contoso.

Пример 2. Создание ключа, защищенного HSM

PS C:\> Add-AzureKeyVaultKey -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           :

Эта команда создает ключ, защищенный HSM, в хранилище ключей с именем Contoso.

Пример 3. Создание ключа со значениями, не используемыми по умолчанию

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

Vault Name     : contoso
Name           : ITHsmNonDefault
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. Вторая команда создает объект DateTime, определенный в формате UTC, с помощью командлета Get-Date. Этот объект указывает время два года в будущем. Команда сохраняет эту дату в переменной $Expires. Для получения дополнительных сведений введите Get-Help Get-Date. Третья команда создает объект DateTime с помощью командлета Get-Date . Этот объект указывает текущее время в формате UTC. Команда сохраняет эту дату в переменной $NotBefore. Последняя команда создает ключ с именем ITHsmNonDefault, который является ключом, защищенным HSM. Команда задает значения для разрешенных операций ключей, хранящихся $KeyOperations. Команда указывает время истечения срока действия и параметров NotBefore , созданных в предыдущих командах, и теги для высокой серьезности и ИТ-специалистов. Новый ключ отключен. Его можно включить с помощью командлета Set-AzureKeyVaultKey .

Пример 4. Импорт ключа, защищенного HSM

PS C:\> Add-AzureKeyVaultKey -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           :

Эта команда импортирует ключ с именем I ТБ yok из расположения, указанного параметром KeyFilePath. Импортированный ключ — это защищенный HSM ключ. Чтобы импортировать ключ из собственного аппаратного модуля безопасности, необходимо сначала создать пакет BYOK (файл с расширением имени файла byok) с помощью набора инструментов BYOK в Azure Key Vault. Дополнительные сведения см. в статье "Создание и передача ключей, защищенных HSM" для Azure Key Vault.

Пример 5. Импорт программно защищенного ключа

PS C:\> $Password = ConvertTo-SecureString -String 'Password' -AsPlainText -Force
PS C:\> Add-AzureKeyVaultKey -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 , а затем сохраняет эту строку в переменной $Password. Для получения дополнительных сведений введите Get-Help ConvertTo-SecureString. Вторая команда создает пароль программного обеспечения в хранилище ключей Contoso. Команда указывает расположение ключа и пароля, хранящегося в $Password.

Пример 6. Импорт ключа и назначение атрибутов

PS C:\> $Password = ConvertTo-SecureString -String 'password' -AsPlainText -Force
PS C:\> $Expires = (Get-Date).AddYears(2).ToUniversalTime()
PS C:\> $Tags = @{ 'Severity' = 'high'; 'Accounting' = "true" }
PS C:\> Add-AzureKeyVaultKey -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 , а затем сохраняет эту строку в переменной $Password. Вторая команда создает объект DateTime с помощью командлета Get-Date , а затем сохраняет этот объект в переменной $Expires. Третья команда создает переменную $tags, чтобы задать теги для высокой серьезности и ИТ-специалистов. Последняя команда импортирует ключ в виде ключа HSM из указанного расположения. Команда указывает время истечения срока действия, хранящееся в $Expires и паролем, хранящимся в $Password, и применяет теги, хранящиеся в $tags.

Параметры

-Confirm

Запрос подтверждения перед выполнением командлета.

Тип:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-DefaultProfile

Учетные данные, учетная запись, клиент и подписка, используемые для обмена данными с Azure

Тип:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Destination

Указывает, следует ли добавить ключ в качестве ключа, защищенного программным обеспечением, или ключа, защищенного HSM, в службе Key Vault. Допустимые значения: HSM и Software. Примечание. Чтобы использовать HSM в качестве назначения, необходимо иметь хранилище ключей, поддерживающее HSM. Дополнительные сведения об уровнях служб и возможностях хранилища ключей Azure см. на веб-сайте Цены на хранилище ключей Azure. Этот параметр требуется при создании нового ключа. При импорте ключа с помощью параметра KeyFilePath этот параметр является необязательным:

  • Если этот параметр не указан, и этот командлет импортирует ключ с расширением имени файла byok, он импортирует этот ключ в виде ключа, защищенного HSM. Командлет не может импортировать этот ключ в качестве ключа, защищенного программным обеспечением.
  • Если этот параметр не указан, и этот командлет импортирует ключ с расширением PFX-файла, он импортирует ключ в виде программно защищенного ключа.
Тип:String
Допустимые значения:HSM, Software, HSM, Software
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Disable

Указывает, что добавленный ключ имеет начальное состояние отключенного. Любая попытка использовать ключ завершится ошибкой. Используйте этот параметр, если вы предварительно загружаете ключи, которые планируется включить позже.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Expires

Указывает время окончания срока действия в качестве объекта DateTime для ключа, добавляемого этим командлетом. Этот параметр использует универсальное время (UTC). Чтобы получить объект DateTime , используйте командлет Get-Date . Для получения дополнительных сведений введите Get-Help Get-Date. Если этот параметр не указан, срок действия ключа не истекает.

Тип:Nullable<T>[DateTime]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-InputObject

Объект Vault.

Тип:PSKeyVault
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-KeyFilePassword

Задает пароль для импортированного файла в качестве объекта SecureString . Чтобы получить объект SecureString , используйте командлет ConvertTo-SecureString . Для получения дополнительных сведений введите Get-Help ConvertTo-SecureString. Этот пароль необходимо указать для импорта файла с расширением PFX-файла.

Тип:SecureString
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-KeyFilePath

Указывает путь к локальному файлу, который содержит материал ключа, импортируемый этим командлетом. Допустимые расширения имени файла : byok и PFX.

  • Если файл является .byok-файлом, ключ автоматически защищен HSM после импорта, и вы не можете переопределить этот параметр по умолчанию.
  • Если файл является PFX-файлом, ключ автоматически защищен программным обеспечением после импорта. Чтобы переопределить этот параметр по умолчанию, задайте для параметра Destination значение HSM, чтобы ключ был защищен HSM. При указании этого параметра параметр назначения является необязательным.
Тип:String
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-KeyOps

Указывает массив операций, которые можно выполнить с помощью ключа, добавляемого этим командлетом. Если этот параметр не задан, могут выполняться все операции. Допустимые значения для этого параметра — это разделенный запятыми список ключевых операций, определяемый спецификацией JSON Web Key.

  • Шифрование
  • расшифровка;
  • Переносить
  • Распаковка
  • Подписание
  • Проверка
Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Name

Указывает имя ключа, добавляемого в хранилище ключей. Этот командлет создает полное доменное имя ключа (FQDN) на основе имени, указанного этим параметром, имени хранилища ключей и текущей среды. Имя должно быть строкой от 1 до 63 символов длиной, содержащей только 0-9, a-z, A-Z и - (символ тире).

Тип:String
Aliases:KeyName
Position:1
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-NotBefore

Указывает время в качестве объекта DateTime , перед которым не удается использовать ключ. Этот параметр использует UTC. Чтобы получить объект DateTime , используйте командлет Get-Date . Если этот параметр не указан, ключ можно использовать немедленно.

Тип:Nullable<T>[DateTime]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ResourceId

Идентификатор ресурса Хранилища.

Тип:String
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Size

Размер ключа RSA в битах. Если оно не указано, служба будет предоставлять безопасный по умолчанию.

Тип:Nullable<T>[Int32]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Tag

Пары "ключ-значение" в виде хэш-таблицы. Например: @{key0="value0"; key1=$null; key2="value2"}

Тип:Hashtable
Aliases:Tags
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-VaultName

Указывает имя хранилища ключей, в которое добавляется этот командлет. Этот командлет создает полное доменное имя хранилища ключей на основе имени, указанного этим параметром, и текущей среды.

Тип:String
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-WhatIf

Показывает, что произойдет при запуске командлета. Командлет не выполняется.

Тип:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

PSKeyVault

Параметры: InputObject (ByValue)

String

Выходные данные

PSKeyVaultKey