Add-AzureKeyVaultKey

키 자격 증명 모음에 키를 만들거나 키를 키 자격 증명 모음으로 가져옵니다.

Warning

AzureRM PowerShell 모듈은 2024년 2월 29일부터 공식적으로 사용되지 않습니다. 사용자는 지속적인 지원 및 업데이트를 보장하기 위해 AzureRM에서 Az PowerShell 모듈로 마이그레이션하는 것이 좋습니다.

AzureRM 모듈은 여전히 작동할 수 있지만 더 이상 기본 또는 지원되지 않으므로 사용자의 재량에 따라 계속 사용할 수 있습니다. Az 모듈로 전환하는 방법에 대한 지침은 마이그레이션 리소스를 참조하세요.

Syntax

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>]

Description

Add-AzureKeyVaultKey cmdlet은 Azure Key Vault의 키 자격 증명 모음에 키를 만들거나 키를 키 자격 증명 모음으로 가져옵니다. 다음 방법 중 어느 것을 사용하여 키를 추가하려면 이 cmdlet을 사용합니다.

  • Key Vault 서비스의 HSM(하드웨어 보안 모듈)에서 키를 만듭니다.
  • Key Vault 서비스의 소프트웨어에서 키를 만듭니다.
  • 사용자 고유의 HSM(하드웨어 보안 모듈)에서 Key Vault 서비스의 HSM으로 키를 가져옵니다.
  • 컴퓨터의 .pfx 파일에서 키를 가져옵니다.
  • 컴퓨터의 .pfx 파일에서 Key Vault 서비스의 HSM(하드웨어 보안 모듈)으로 키를 가져옵니다. 이러한 작업의 경우 키 특성을 제공하거나 기본 설정을 수락할 수 있습니다. 키 자격 증명 모음의 기존 키와 동일한 이름을 가진 키를 만들거나 가져오는 경우 원래 키가 새 키에 대해 지정한 값으로 업데이트됩니다. 해당 버전의 키에 대한 버전별 URI를 사용하여 이전 값에 액세스할 수 있습니다. 키 버전 및 URI 구조에 대한 자세한 내용은 Key Vault REST API 설명서의 키 및 비밀 정보를 참조하세요. 참고: 고유한 하드웨어 보안 모듈에서 키를 가져오려면 먼저 Azure Key Vault BYOK 도구 집합을 사용하여 BYOK 패키지(.byok 파일 이름 확장명을 가진 파일)를 생성해야 합니다. 자세한 내용은 Azure Key Vault에 대한 HSM 보호 키를 생성 및 전송하는 방법을 참조 하세요. 모범 사례로, Backup-AzureKeyVaultKey cmdlet을 사용하여 키를 만들거나 업데이트한 후 백업합니다. 삭제 취소 기능이 없으므로 실수로 키를 삭제하거나 삭제한 다음 마음을 변경하는 경우 복원할 수 있는 백업이 없는 한 키를 복구할 수 없습니다.

예제

예제 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           :

이 명령은 Contoso라는 키 자격 증명 모음에 ITSoftware라는 소프트웨어 보호 키를 만듭니다.

예제 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           :

이 명령은 Contoso라는 키 자격 증명 모음에 HSM으로 보호되는 키를 만듭니다.

예제 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 변수에 확인합니다. 두 번째 명령은 Get-Date cmdlet을 사용하여 UTC로 정의된 DateTime 개체를 만듭니다. 이 개체는 2년 후의 시간을 지정합니다. 명령은 해당 날짜를 $Expires 변수에 저장합니다. 자세한 내용은 다음을 입력합니다 Get-Help Get-Date. 세 번째 명령은 Get-Date cmdlet을 사용하여 DateTime 개체를 만듭니다. 이 개체는 현재 UTC 시간을 지정합니다. 명령은 해당 날짜를 $NotBefore 변수에 저장합니다. 마지막 명령은 HSM으로 보호되는 키인 ITHsmNonDefault라는 키를 만듭니다. 이 명령은 $KeyOperations 저장된 허용된 키 작업에 대한 값을 지정합니다. 이 명령은 이전 명령에서 만든 ExpiresNotBefore 매개 변수의 시간과 심각도 및 IT에 대한 태그를 지정합니다. 새 키를 사용할 수 없습니다. Set-AzureKeyVaultKey cmdlet을 사용하여 사용하도록 설정할 수 있습니다.

예제 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           :

이 명령은 KeyFilePath 매개 변수가 지정하는 위치에서 ITByok라는 키를 가져옵니다. 가져온 키는 HSM으로 보호되는 키입니다. 사용자 고유의 하드웨어 보안 모듈에서 키를 가져오려면 먼저 Azure Key Vault BYOK 도구 집합을 사용하여 BYOK 패키지(.byok 파일 이름 확장명을 가진 파일)를 생성해야 합니다. 자세한 내용은 Azure Key Vault에 대한 HSM 보호 키를 생성 및 전송하는 방법을 참조 하세요.

예제 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 cmdlet을 사용하여 문자열을 보안 문자열로 변환한 다음 해당 문자열을 $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 cmdlet을 사용하여 문자열을 보안 문자열로 변환한 다음 해당 문자열을 $Password 변수에 저장합니다. 두 번째 명령은 Get-Date cmdlet을 사용하여 DateTime 개체를 만든 다음 해당 개체를 $Expires 변수에 저장합니다. 세 번째 명령은 심각도 및 IT에 대한 태그를 설정하는 $tags 변수를 만듭니다. 최종 명령은 지정된 위치에서 키를 HSM 키로 가져옵니다. 이 명령은 $Password 저장된 $Expires 및 암호에 저장된 만료 시간을 지정하고 $tags 저장된 태그를 적용합니다.

매개 변수

-Confirm

cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.

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

-DefaultProfile

Azure와의 통신에 사용되는 자격 증명, 계정, 테넌트 및 구독

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

-Destination

Key Vault 서비스에서 키를 소프트웨어 보호 키 또는 HSM 보호 키로 추가할지 여부를 지정합니다. 유효한 값은 HSM 및 소프트웨어입니다. 참고: HSM을 대상으로 사용하려면 HSM을 지원하는 키 자격 증명 모음이 있어야 합니다. Azure Key Vault에 대한 서비스 계층 및 기능에 대한 자세한 내용은 Azure Key Vault 가격 책정 웹 사이트를 참조하세요. 이 매개 변수는 새 키를 만들 때 필요합니다. KeyFilePath 매개 변수를 사용하여 키를 가져오는 경우 이 매개 변수는 선택 사항입니다.

  • 이 매개 변수를 지정하지 않고 이 cmdlet이 .byok 파일 이름 확장명을 가진 키를 가져오면 해당 키를 HSM으로 보호된 키로 가져옵니다. cmdlet은 해당 키를 소프트웨어 보호 키로 가져올 수 없습니다.
  • 이 매개 변수를 지정하지 않고 이 cmdlet이 .pfx 파일 이름 확장명을 가진 키를 가져오면 키를 소프트웨어로 보호된 키로 가져옵니다.
Type:String
Accepted values:HSM, Software, HSM, Software
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Disable

추가하는 키가 사용 안 함의 초기 상태로 설정되었음을 나타냅니다. 키를 사용하려고 하면 실패합니다. 나중에 사용하도록 설정하려는 키를 미리 로드하는 경우 이 매개 변수를 사용합니다.

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

-Expires

이 cmdlet이 추가하는 키의 만료 시간을 DateTime 개체로 지정합니다. 이 매개 변수는 UTC(협정 세계시)를 사용합니다. DateTime 개체를 가져오려면 Get-Date cmdlet을 사용합니다. 자세한 내용은 다음을 입력합니다 Get-Help Get-Date. 이 매개 변수를 지정하지 않으면 키가 만료되지 않습니다.

Type:Nullable<T>[DateTime]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Vault 개체입니다.

Type:PSKeyVault
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-KeyFilePassword

가져온 파일의 암호를 SecureString 개체로 지정합니다. SecureString 개체를 가져오려면 ConvertTo-SecureString cmdlet을 사용합니다. 자세한 내용은 다음을 입력합니다 Get-Help ConvertTo-SecureString. .pfx 파일 이름 확장명을 가진 파일을 가져오려면 이 암호를 지정해야 합니다.

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

-KeyFilePath

이 cmdlet에서 가져오는 키 자료가 포함된 로컬 파일의 경로를 지정합니다. 유효한 파일 이름 확장명은 .byok 및 .pfx입니다.

  • 파일이 .byok 파일인 경우 키를 가져온 후 HSM에 의해 자동으로 보호되며 이 기본값을 재정의할 수 없습니다.
  • 파일이 .pfx 파일인 경우 키는 가져온 후 소프트웨어에 의해 자동으로 보호됩니다. 이 기본값을 재정의 하려면 키가 HSM으로 보호되도록 대상 매개 변수를 HSM으로 설정합니다. 이 매개 변수 를 지정하면 대상 매개 변수는 선택 사항입니다.
Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-KeyOps

이 cmdlet이 추가하는 키를 사용하여 수행할 수 있는 작업 배열을 지정합니다. 이 매개 변수를 지정하지 않으면 모든 작업을 수행할 수 있습니다. 이 매개 변수에 허용되는 값은 JWK(JSON Web Key) 사양에 정의된 쉼표로 구분된 키 작업 목록입니다.

  • Encrypt
  • 암호 해독
  • 줄 바꿈
  • 래핑 해제
  • Sign
  • 확인
Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

키 자격 증명 모음에 추가할 키의 이름을 지정합니다. 이 cmdlet은 이 매개 변수가 지정하는 이름, 키 자격 증명 모음의 이름 및 현재 환경에 따라 키의 FQDN(정규화된 do기본 이름)을 생성합니다. 이름은 0-9, a-z, A-Z 및 -(대시 기호)만 포함하는 길이가 1~63자인 문자열이어야 합니다.

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

-NotBefore

키를 사용할 수 없는 DateTime 개체로 시간을 지정합니다. 이 매개 변수는 UTC를 사용합니다. DateTime 개체를 가져오려면 Get-Date cmdlet을 사용합니다. 이 매개 변수를 지정하지 않으면 키를 즉시 사용할 수 있습니다.

Type:Nullable<T>[DateTime]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ResourceId

자격 증명 모음 리소스 ID입니다.

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

-Size

RSA 키 크기(비트)입니다. 지정하지 않으면 서비스는 안전한 기본값을 제공합니다.

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Tag

해시 테이블 형식의 키-값 쌍입니다. 예: @{key0="value0"; key1=$null; key2="value2"}

Type:Hashtable
Aliases:Tags
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VaultName

이 cmdlet이 키를 추가할 키 자격 증명 모음의 이름을 지정합니다. 이 cmdlet은 이 매개 변수가 지정하는 이름과 현재 환경에 따라 키 자격 증명 모음의 FQDN을 생성합니다.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
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

입력

PSKeyVault

매개 변수: InputObject(ByValue)

String

출력

PSKeyVaultKey