Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El módulo SecretStore es un almacén de extensiones para el módulo SecretManagement de PowerShell. Almacena secretos, localmente, en archivos para el contexto de la cuenta de usuario actual y usa las API criptográficas de .NET para cifrar el contenido del archivo. El módulo SecretStore tiene varias opciones de configuración. En la configuración predeterminada, se requiere una contraseña para almacenar y acceder a secretos, y proporciona la protección más segura. SecretStore también admite el almacenamiento de metadatos sobre secretos.
Registro de un nuevo almacén
Para poder crear un nuevo secreto, debe registrar un almacén. El parámetro Name es un nombre descriptivo y puede ser cualquier cadena válida.
Register-SecretVault -Name SecretStore -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault
Importante
El módulo SecretManagement permite registrar un almacén de extensiones varias veces, ya que es posible que un almacén de extensiones admita contextos diferentes a través de VaultParameters de registro. Sin embargo, el almacén de SecretStoreactualmente siempre funciona en el ámbito de usuario que ha iniciado sesión. El registro de varios almacenes de SecretStore con nombres diferentes solo da como resultado la duplicación del mismo almacén.
Use el siguiente comando para ver una lista de almacenes registrados:
Get-SecretVault
Name ModuleName IsDefaultVault
---- ---------- --------------
Edge SecretManagement.Chromium False
SecretStore Microsoft.PowerShell.SecretStore True
En este ejemplo hay dos almacenes registrados mediante módulos de extensión diferentes.
Configuración de un almacén
Use el cmdlet para ver la Get-SecretStoreConfiguration
configuración de un almacén.
Get-SecretStoreConfiguration
Scope Authentication PasswordTimeout Interaction
----- -------------- --------------- -----------
CurrentUser Password 900 Prompt
Los almacenes de SecretStore tienen las siguientes opciones de configuración:
- Autenticación -
Password
(valor predeterminado) oNone
- PasswordTimeout -
900
segundos (valor predeterminado) - Interacción -
Prompt
(valor predeterminado) oNone
La configuración predeterminada requiere una contraseña, establece el tiempo de espera de la contraseña de sesión en 15 minutos y solicita al usuario una contraseña para desbloquear el almacén.
En el caso de escenarios de automatización no interactivos, la interacción se puede configurar para None
suprimir la solicitud del usuario. Si se requiere una contraseña, los comandos del almacén devuelven la excepción Microsoft.PowerShell.SecretStore.PasswordRequiredException si no hay ninguna contraseña de sesión válida. El Unlock-SecretStore
cmdlet se puede usar para proporcionar la contraseña de la sesión actual de PowerShell. El almacén permanece desbloqueado hasta que expire el tiempo de espera.
La configuración y los datos del almacén se almacenan en archivos independientes. La ubicación del archivo depende del sistema operativo de la plataforma.
- Para las plataformas Windows, la ubicación es:
$env:LOCALAPPDATA\Microsoft\PowerShell\secretmanagement\localstore\
- Para las plataformas que no son de Windows, la ubicación es:
$HOME/.secretmanagement/localstore/
Cambio de la configuración
Puede cambiar la configuración de un almacén mediante el Set-SecretStoreConfiguration
cmdlet . El cmdlet proporciona los parámetros Authentication, PasswordTimeout y Interaction que se usan para cambiar las propiedades de configuración correspondientes. También hay un parámetro Default para restablecer la configuración a los valores predeterminados.
Hay dos maneras de establecer la contraseña en el almacén.
- El
Set-SecretStoreConfiguration
cmdlet tiene el parámetro Password que toma un valor SecureString . - El
Set-SecretStorePassword
cmdlet cambia la contraseña del almacén. El cmdlet no toma parámetros y solo se puede usar de forma interactiva. Se le pedirán las contraseñas antiguas y nuevas.
Adición de metadatos
El módulo SecretStore permite agregar metadatos no confidenciales a los secretos. Los metadatos se pueden usar para documentar el propósito previsto de un secreto. Por ejemplo, para indicar que un secreto está pensado para una suscripción o un escenario de aplicación concretos. También puede agregar metadatos sobre la fecha de creación, la hora de expiración del secreto u otra información usada para administrar el ciclo de vida del secreto.
Los metadatos pueden ser cualquier par clave-valor arbitrario. El módulo SecretStore admite los siguientes tipos de valor para los metadatos:
- string
- int
- DateTime
Para crear un nuevo secreto con metadatos:
$metadata = @{
Purpose = 'Testing'
Expires = (Get-Date).AddDays(30)
Limit = 5
}
Set-Secret -Name TestSecret -Secret NewSecret -Metadata $metadata
Para ver los metadatos secretos, puede ejecutar el comando :
Get-SecretInfo -Name TestSecret | Format-List *
Name : TestSecret
Type : String
VaultName : SecretStore
Metadata : {[Limit, 5], [Expires, 6/23/2022 1:45:09 PM], [Purpose, Testing]}
También puede establecer metadatos para un secreto existente mediante el Set-SecretInfo
cmdlet :
Set-SecretInfo TestSecret -Metadata @{Purpose = "showing the new cmdlet"}
Get-SecretInfo -Name TestSecret | Select-Object Metadata
Metadata
--------
{[Purpose, showing the new cmdlet]}
Precaución
Esto sobrescribe los metadatos existentes con los nuevos valores.
Restablecer o quitar un almacén
El Reset-SecretStore
cmdlet restablece el almacén de SecretStore eliminando todos los datos secretos y configurando el almacén con opciones predeterminadas. Está pensado para usarse solo cuando se pierde la contraseña necesaria o los archivos de datos se dañan. Las opciones de configuración predeterminadas se pueden invalidar especificando parámetros de opción de configuración de comandos individuales.