Share via


Set-Secret

SecretManagement 등록된 자격 증명 모음에 비밀을 추가합니다.

Syntax

Set-Secret
   [-Name] <String>
   -SecureStringSecret <SecureString>
   [[-Vault] <String>]
   [[-Metadata] <Hashtable>]
   [-NoClobber]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-Secret
   [-Name] <String>
   -Secret <Object>
   [[-Vault] <String>]
   [[-Metadata] <Hashtable>]
   [-NoClobber]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-Secret
   -SecretInfo <SecretInformation>
   [-Vault] <String>
   [-NoClobber]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

이 cmdlet은 자격 증명 모음에 이름으로 비밀 값을 추가합니다. 자격 증명 모음 이름을 지정하지 않으면 비밀이 기본 자격 증명 모음에 추가됩니다. 해당 이름의 비밀이 있으면 덮어씁니다. 확장 자격 증명 모음에서 지원하는 경우 비밀에 추가 데이터를 포함할 수 있습니다.

기본 매개 변수 집합은 SecureString 개체를 사용합니다. 비밀 값을 지정하지 않고 명령을 실행하면 cmdlet에서 SecureString을 입력하라는 메시지를 표시합니다. 문자열의 텍스트는 콘솔에 표시되지 않습니다.

예제

예 1

Set-Secret -Name Secret1 -Secret "SecretValue"
Get-Secret -Name Secret1

System.Security.SecureString

다음은 일반 텍스트 값이 인 라는 Secret1 비밀을 추가하는 예제입니다 SecretValue. 자격 증명 모음 이름이 지정되지 않으므로 비밀이 현재 사용자의 기본 자격 증명 모음에 추가됩니다. Get-Secret 는 비밀이 추가되었음을 보여줍니다.

예 2

PS C:\> Set-Secret -Name Secret2 -Vault LocalStore

cmdlet Set-Secret at command pipeline position 1
Supply values for the following parameters:
SecureStringSecret: ***********

PS C:\> Get-Secret -Name Secret2
System.Security.SecureString

다음은 자격 증명 모음에 라는 Secret2 비밀을 추가하는 예제입니다 LocalStore . 비밀 값이 제공되지 않으므로 cmdlet은 SecureString 값을 묻는 메시지를 표시합니다. 콘솔은 입력할 때 문자열 값을 숨깁니다. Get-Secret 는 비밀이 추가되었음을 보여줍니다.

예제 3

$Metadata = @{ Expiration = ([datetime]::new(2022, 5, 1)) }
Set-Secret -Name TargetSecret -Secret $targetToken -Vault LocalStore -Metadata $Metadata
Get-SecretInfo -Name TargetSecret | Select-Object Name,Metadata

Name         Metadata
----         --------
TargetSecret {[Expiration, 5/1/2022 12:00:00 AM]}

다음은 자격 증명 모음에 LocalStore 비밀의 만료 날짜를 나타내는 메타데이터가 포함된 비밀을 TargetSecret 추가하는 예제입니다. Get-SecretInfo 는 새로 만든 비밀에 대한 메타데이터를 검색합니다.

예제 4

$Metadata = @{ Expiration = ([datetime]::new(2022, 5, 1)) }
Set-Secret -Name PublishSecret -Secret $targetToken -Vault LocalStore2 -Metadata $Metadata

Set-Secret: Cannot store secret PublishSecret. Vault LocalStore2 does not support secret metadata.

다음은 자격 증명 모음에 추가 메타데이터를 LocalStore2 사용하여 라는 PublishSecret 비밀을 추가하는 예제입니다. 그러나 자격 증명 모음 LocalStore2 은 비밀 메타데이터를 지원하지 않으며 작업은 오류를 반환합니다.

매개 변수

-Confirm

cmdlet을 실행하기 전에 확인을 요청합니다.

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

-Metadata

자격 증명 모음의 비밀과 연결할 키-값 쌍을 포함하는 Hashtable 을 지정합니다. 지정된 확장 자격 증명 모음이 비밀 메타데이터를 지원하지 않을 수 있습니다. 자격 증명 모음이 메타데이터를 지원하지 않으면 작업이 실패하고 오류가 반환됩니다. 해시 테이블의 메타데이터 값은 다음 형식 중 하나여야 합니다.

  • string
  • int
  • DateTime

메타데이터는 자격 증명 모음에 안전하게 저장되지 않습니다. 메타데이터에는 중요한 정보가 포함되어서는 안 됩니다.

Type:Hashtable
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

추가하거나 업데이트할 비밀의 이름을 지정합니다. 와일드카드 문자(*)는 허용되지 않습니다.

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

-NoClobber

동일한 이름의 비밀이 자격 증명 모음에 이미 있는 경우 명령이 오류를 반환하도록 합니다. 기본적으로 이 cmdlet은 이미 있는 경우 비밀을 새 값으로 업데이트합니다.

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

-Secret

비밀의 값을 지정합니다. 개체는 지원되는 형식 중 하나여야 합니다.

  • Byte[]
  • String
  • SecureString
  • PSCredential
  • Hashtable
Type:Object
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-SecretInfo

에서 반환Get-SecretInfo된 저장된 비밀을 설명하는 SecretInformation 개체를 지정합니다. 이렇게 하면 한 확장 자격 증명 모음에서 다른 확장 자격 증명 모음으로 비밀을 복사할 수 있습니다.

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

-SecureStringSecret

비밀의 값을 SecretString 개체로 지정합니다.

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

-Vault

비밀을 추가하거나 업데이트할 자격 증명 모음의 이름을 지정합니다. 와일드카드 문자(*)는 허용되지 않습니다. 기본적으로 비밀은 현재 사용자의 기본 자격 증명 모음에 추가되거나 업데이트됩니다.

Type:String
Position:2
Default value:None
Required:False
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

입력

Hashtable

출력

None

참고

Name 매개 변수를 사용하여 를 실행 Set-Secret 하여 비밀의 이름을 지정하면 cmdlet은 자격 증명 모음 확장에서 구현된 를 호출 GetSecret() 합니다. Set-Secret 는 사용자가 제공한 대로 이름을 전달합니다. 자격 증명 모음 확장은 해당 이름으로 비밀을 조회합니다. 일치 Set-Secret 항목을 반환하는 경우 GetGecret()NoClobber 매개 변수를 사용하지 않는 한 비밀을 덮어씁니다. 자격 증명 모음 확장은 항상 수신하는 비밀 정보를 씁니다.

이름에 대/소문자 구분 비교를 사용할지 여부를 결정하는 것은 자격 증명 모음 확장 구현에 달려 있습니다. 예를 들어 Microsoft.PowerShell.SecretStore 확장 자격 증명 모음의 비밀 이름은 대/소문자를 구분하지 않습니다. 전달 Set-Secret 한 이름이 SecretStore 자격 증명 모음의 기존 비밀 이름과 대/소문자별로만 다른 경우 이름을 제공한 새 값으로 덮어씁니다.