

¡Se Herramientas de AWS para PowerShell ha lanzado la versión 5 (V5) del\$1

Para obtener información sobre los cambios más importantes y la migración de sus aplicaciones, consulte el tema [sobre migración](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html).

 [https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de credenciales heredadas
<a name="pstools-cred-legacy"></a>

En los temas de esta sección se proporciona información sobre el uso de credenciales a corto o largo plazo sin usar AWS IAM Identity Center.

**aviso**  
Para evitar riesgos de seguridad, no utilice a los usuarios de IAM para la autenticación cuando desarrolle software especialmente diseñado o trabaje con datos reales. En cambio, utilice la federación con un proveedor de identidades como [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html).

**nota**  
La información de estos temas se refiere a las circunstancias en las que necesita obtener y administrar credenciales a corto o largo plazo de forma manual. Para obtener información adicional sobre las credenciales a corto y largo plazo, consulte [Otras formas de autenticación](https://docs.aws.amazon.com/sdkref/latest/guide/access-users.html) en la *Guía de referencia de AWS SDKs and Tools*.  
Para conocer las mejores prácticas de seguridad AWS IAM Identity Center, utilícelas como se describe en[Autenticarse con AWS](creds-idc.md).

## Advertencias y directrices importantes para las credenciales
<a name="pstools-creds-warnings-and-guidelines"></a>

**Advertencias para las credenciales**
+ ***NO*** utilices las credenciales raíz de tu cuenta para acceder a AWS los recursos. Estas credenciales proporcionan acceso ilimitado a la cuenta y son difíciles de revocar.
+ ***NO*** incluya claves de acceso literales ni información sobre credenciales en los comandos o scripts. Si lo hace, corre el riesgo de exponer accidentalmente sus credenciales.
+ Tenga en cuenta que todas las credenciales almacenadas en el AWS `credentials` archivo compartido se almacenan en texto sin formato.

**Guía adicional para administrar las credenciales de forma segura**

Para obtener información general sobre cómo administrar las credenciales de forma segura, consulte AWS las credenciales de [AWS seguridad](https://docs.aws.amazon.com/general/latest/gr/Welcome.html#aws-security-credentials) en la Guía del usuario de IAM [Referencia general de AWS](https://docs.aws.amazon.com/general/latest/gr/)y las [prácticas recomendadas y los casos de uso de seguridad](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPracticesAndUseCases.html) en la Guía del [usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/). Además de esas conversaciones, tenga en cuenta lo siguiente:
+ Cree usuarios adicionales, como los usuarios del Centro de identidades de IAM y utilice sus credenciales en lugar de las credenciales de usuario raíz de AWS . Las credenciales de otros usuarios se pueden revocar si es necesario o son de naturaleza temporal. Además, puede aplicar una política a cada usuario para acceder solo a determinados recursos y acciones y, por lo tanto, adoptar una política de permisos con privilegios mínimos.
+ Use [roles de IAM para tareas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) para tareas de Amazon Elastic Container Service (Amazon ECS).
+ Use [roles de IAM](shared-credentials-in-aws-powershell.md#shared-credentials-assume-role) para aplicaciones que se ejecutan en instancias de Amazon EC2.

**Topics**
+ [Advertencias y directrices importantes](#pstools-creds-warnings-and-guidelines)
+ [AWS Credenciales](specifying-your-aws-credentials.md)
+ [Credenciales compartidas](shared-credentials-in-aws-powershell.md)

# Uso de AWS credenciales
<a name="specifying-your-aws-credentials"></a>

Cada Herramientas de AWS para PowerShell comando debe incluir un conjunto de AWS credenciales, que se utilizan para firmar criptográficamente la solicitud de servicio web correspondiente. Puede especificar las credenciales por comando, por sesión o para todas las sesiones. 

**aviso**  
Para evitar riesgos de seguridad, no utilice a los usuarios de IAM para la autenticación cuando desarrolle software especialmente diseñado o trabaje con datos reales. En cambio, utilice la federación con un proveedor de identidades como [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html).

**nota**  
La información de este tema se refiere a las circunstancias en las que necesita obtener y administrar credenciales a corto o largo plazo de forma manual. Para obtener información adicional sobre las credenciales a corto y largo plazo, consulte [Otras formas de autenticación](https://docs.aws.amazon.com/sdkref/latest/guide/access-users.html) en la Guía de *referencia de herramientas AWS SDKs y herramientas*.  
Para conocer las mejores prácticas de seguridad AWS IAM Identity Center, utilícelas como se describe en[Autenticarse con AWS](creds-idc.md).

Es recomendable que procure no exponer sus credenciales: no incluya credenciales literales en un comando. En lugar de ello, cree un perfil para cada conjunto de credenciales que desee utilizar y almacene el perfil en alguno de los dos almacenes de credenciales. Especifique el nombre de perfil correcto en el comando y las Herramientas de AWS para PowerShell recuperarán las credenciales asociadas. Para obtener información general sobre cómo administrar las AWS credenciales de forma segura, consulte [las prácticas recomendadas para administrar las claves de AWS acceso](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html) en el *Referencia general de Amazon Web Services*.

**nota**  
Necesita una AWS cuenta para obtener las credenciales y utilizar la Herramientas de AWS para PowerShell. Para crear una AWS cuenta, consulte [Primeros pasos: ¿es la primera vez que la usa AWS ?](https://docs.aws.amazon.com/accounts/latest/reference/welcome-first-time-user.html) en la *Guía AWS Account Management de referencia*.

**Topics**
+ [Ubicaciones de almacén de credenciales](#specifying-your-aws-credentials-store)
+ [Administración de perfiles](#managing-profiles)
+ [Especificación de credenciales](#specifying-your-aws-credentials-use)
+ [Orden de búsqueda de credenciales](#pstools-cred-provider-chain-legacy)
+ [Manejo de credenciales en AWS Tools for PowerShell Core](#credential-handling-in-aws-tools-for-powershell-core)

## Ubicaciones de almacén de credenciales
<a name="specifying-your-aws-credentials-store"></a>

 Herramientas de AWS para PowerShell Puede utilizar cualquiera de los dos almacenes de credenciales:
+ El almacén de AWS SDK, que cifra tus credenciales y las almacena en tu carpeta de inicio. En Windows, este almacén se encuentra en: `C:\Users\username\AppData\Local\AWSToolkit\RegisteredAccounts.json`.

  [AWS SDK para .NET](https://aws.amazon.com/sdk-for-net/) y [Toolkit for Visual Studio](https://aws.amazon.com/visualstudio/) también pueden utilizar el almacén de AWS SDK.
+ El archivo de credenciales compartidas, que también se encuentra en su carpeta principal, pero que almacena las credenciales como texto sin formato.

  De forma predeterminada, el archivo de credenciales se almacena aquí:
  + En Windows: `C:\Users\username\.aws\credentials`
  + En Mac/Linux: `~/.aws/credentials` 

  El AWS SDKs y el también AWS Command Line Interface pueden usar el archivo de credenciales. Si ejecuta un script fuera de su contexto de AWS usuario, asegúrese de copiar el archivo que contiene sus credenciales en una ubicación en la que todas las cuentas de usuario (sistema local y usuario) puedan acceder a sus credenciales.

## Administración de perfiles
<a name="managing-profiles"></a>

Los perfiles le permiten hacer referencia a diferentes conjuntos de credenciales Herramientas de AWS para PowerShell. Puede usar Herramientas de AWS para PowerShell cmdlets para administrar sus perfiles en la tienda del AWS SDK. También puede administrar los perfiles en el almacén de AWS SDK mediante [Toolkit for Visual Studio](https://docs.aws.amazon.com/AWSToolkitVS/latest/UserGuide/tkv_setup.html) o mediante programación a través de [AWS SDK para .NET](https://aws.amazon.com/sdk-for-net/). Para obtener instrucciones sobre cómo administrar los perfiles en el archivo de credenciales, consulte [Prácticas recomendadas para administrar las claves de AWS acceso](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html).

### Añadir un nuevo perfil
<a name="add-a-new-profile"></a>

Para añadir un perfil nuevo a la tienda del AWS SDK, ejecuta el comando`Set-AWSCredential`. Almacena la clave de acceso y la clave secreta en el archivo de credenciales predeterminado bajo el nombre de perfil que especifique.

```
PS > Set-AWSCredential `
                 -AccessKey AKIA0123456787EXAMPLE `
                 -SecretKey wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY `
                 -StoreAs MyNewProfile
```
+  `-AccessKey`: el ID de clave de acceso.
+  `-SecretKey`: la clave secreta.
+  `-StoreAs`: el nombre de perfil, que debe ser único. Para especificar el perfil predeterminado, utilice el nombre `default`.

### Actualizar un perfil
<a name="update-a-profile"></a>

El almacén del AWS SDK debe mantenerse manualmente. Si posteriormente cambia las credenciales en el servicio (por ejemplo, mediante la [consola de IAM](https://console.aws.amazon.com/iam/home)), la ejecución de un comando con las credenciales almacenadas localmente producirá el siguiente mensaje de error:

```
The Access Key Id you provided does not exist in our records.
```

Puede actualizar un perfil volviendo a ejecutar el comando `Set-AWSCredential` para el perfil y pasándole las nuevas claves de acceso y clave secreta.

### Mostrar perfiles
<a name="list-profiles"></a>

Puede comprobar la lista actual de nombres con el siguiente comando. En este ejemplo, un usuario llamado Shirley tiene acceso a tres perfiles que están todos almacenados en el archivo de credenciales compartidas (`~/.aws/credentials`).

```
PS > Get-AWSCredential -ListProfileDetail

ProfileName  StoreTypeName         ProfileLocation
-----------  -------------         ---------------
default      SharedCredentialsFile /Users/shirley/.aws/credentials
production   SharedCredentialsFile /Users/shirley/.aws/credentials
test         SharedCredentialsFile /Users/shirley/.aws/credentials
```

### Eliminar un perfil
<a name="remove-a-profile"></a>

Para eliminar un perfil que ya no necesite, utilice el siguiente comando.

```
PS > Remove-AWSCredentialProfile -ProfileName an-old-profile-I-do-not-need
```

El parámetro `-ProfileName` especifica el perfil que desea eliminar.

El comando obsoleto [Clear- AWSCredential](https://docs.aws.amazon.com/powershell/v5/reference/items/Clear-AWSCredential.html) sigue disponible por motivos de compatibilidad con versiones anteriores, pero `Remove-AWSCredentialProfile` es preferible.

## Especificación de credenciales
<a name="specifying-your-aws-credentials-use"></a>

Hay varias formas de especificar credenciales. La forma preferida es identificar un perfil en lugar de incorporar credenciales literales en la línea de comandos. Herramientas de AWS para PowerShell localiza el perfil mediante el orden de búsqueda que se describe en [Orden de búsqueda de credenciales](#pstools-cred-provider-chain-legacy).

En Windows, AWS las credenciales almacenadas en el almacén del AWS SDK se cifran con la identidad del usuario de Windows que ha iniciado sesión. No se pueden descifrar usando otra cuenta, ni usar en un dispositivo que sea diferente del dispositivo en el que se crearon originalmente. Para realizar tareas que requieren credenciales de otro usuario, como una cuenta de usuario en la que se va a ejecutar una tarea programada, configure un perfil de credenciales, tal y como se ha descrito en la sección anterior, que pueda utilizar cuando inicie sesión en el equipo como ese usuario. Inicie sesión como el usuario que realiza tareas para completar los pasos de configuración de credenciales y crear un perfil que funcione para ese usuario. A continuación, cierre la sesión y vuelva a iniciar sesión con sus propias credenciales para configurar la tarea programada.

**nota**  
Utilice el parámetro `-ProfileName` común para especificar un perfil. Este parámetro es equivalente al `-StoredCredentials` parámetro de versiones anteriores. Herramientas de AWS para PowerShell Aún se admite `-StoredCredentials` para la compatibilidad con versiones anteriores.

### Perfil predeterminado (recomendado)
<a name="default-profile-recommended"></a>

Todas AWS SDKs las herramientas de administración pueden encontrar sus credenciales automáticamente en su equipo local si las credenciales están almacenadas en un perfil denominado`default`. Por ejemplo, si tiene un perfil denominado `default` en el equipo local, no es necesario que ejecute el cmdlet `Initialize-AWSDefaultConfiguration` ni el cmdlet `Set-AWSCredential`. Las herramientas utilizan automáticamente los datos de acceso y la clave secreta almacenados en ese perfil. Para utilizar una región de AWS que no sea su región predeterminada (los resultados de `Get-DefaultAWSRegion`), puede ejecutar `Set-DefaultAWSRegion` y especificar una región.

Si su perfil no se llama `default`, pero desea utilizarlo como perfil predeterminado para la sesión actual, ejecute `Set-AWSCredential` para definirlo como perfil predeterminado.

Si bien la ejecución `Initialize-AWSDefaultConfiguration` permite especificar un perfil predeterminado para cada PowerShell sesión, el cmdlet carga las credenciales del perfil con el nombre personalizado, pero sobrescribe el `default` perfil con el nombre asignado.

Le recomendamos que no ejecute `Initialize-AWSDefaultConfiguration` a menos que esté ejecutando una PowerShell sesión en una instancia de Amazon EC2 que no se haya lanzado con un perfil de instancia y desee configurar el perfil de credenciales manualmente. Tenga en cuenta que el perfil de credenciales en este caso no contendría credenciales. El perfil de credenciales que resulta de la ejecución de `Initialize-AWSDefaultConfiguration` en una instancia EC2 no almacena directamente las credenciales, sino que apunta a metadatos de instancia (que proporcionan credenciales temporales que cambian automáticamente). Sin embargo, almacena la región de la instancia. Otra situación que podría requerir la ejecución de `Initialize-AWSDefaultConfiguration` se da si desea ejecutar una llamada en una región que no sea la región en la que se está ejecutando la instancia. Al ejecutar este comando se invalida de forma permanente la región almacenada en los metadatos de la instancia.

```
PS > Initialize-AWSDefaultConfiguration -ProfileName MyProfileName -Region us-west-2
```

**nota**  
Las credenciales predeterminadas se incluyen en la tienda de AWS SDK bajo el nombre del `default` perfil. El comando sobrescribe cualquier perfil existente con ese nombre.

Si la instancia de EC2 se lanzó con un perfil de instancia, obtiene PowerShell automáticamente AWS las credenciales y la información de la región del perfil de la instancia. No hay necesidad de ejecutar `Initialize-AWSDefaultConfiguration`. No es necesario ejecutar el `Initialize-AWSDefaultConfiguration` cmdlet en una instancia EC2 lanzada con un perfil de instancia, ya que utiliza los mismos datos del perfil de instancia que PowerShell ya utiliza de forma predeterminada.

### Perfil de sesión
<a name="session-profile"></a>

Utilice `Set-AWSCredential` para especificar un perfil predeterminado para una determinada sesión. Este perfil invalida cualquier perfil predeterminado durante la sesión. Se recomienda su uso si desea usar un perfil con nombre personalizado en la sesión en lugar del perfil `default` actual.

```
PS > Set-AWSCredential -ProfileName MyProfileName
```

**nota**  
En las versiones de Tools para Windows PowerShell anteriores a la 1.1, el `Set-AWSCredential` cmdlet no funcionaba correctamente y sobrescribía el perfil especificado por "». MyProfileName Se recomienda utilizar una versión más reciente de las Herramientas para Windows. PowerShell

### Perfil de comando
<a name="command-profile"></a>

En comandos individuales, puede agregar el parámetro `-ProfileName` para especificar un perfil que se aplique solo a ese comando. Este perfil invalida todos los perfiles predeterminados o de sesión, como se muestra en el ejemplo.

```
PS > Get-EC2Instance -ProfileName MyProfileName
```

**nota**  
Cuando especifica un perfil de sesión o predeterminado, también puede añadir un parámetro `-Region` para invalidar una región de sesión o predeterminada. Para obtener más información, consulte [Especifique la AWS región para el Herramientas de AWS para PowerShell](pstools-installing-specifying-region.md). En el siguiente ejemplo se especifica un perfil y una región predeterminados.  

```
PS > Initialize-AWSDefaultConfiguration -ProfileName MyProfileName -Region us-west-2
```

De forma predeterminada, se supone que el archivo de credenciales AWS compartidas se encuentra en la carpeta principal del usuario (`C:\Users\username\.aws``~/.aws`en Windows o Linux). Para especificar un archivo de credenciales en otra ubicación, incluya el parámetro `-ProfileLocation` y especifique la ruta del archivo de credenciales. En el siguiente ejemplo se especifica un archivo de credenciales no predeterminado para un comando específico.

```
PS > Get-EC2Instance -ProfileName MyProfileName -ProfileLocation C:\aws_service_credentials\credentials
```

**nota**  
Si ejecuta un PowerShell script durante un período en el que normalmente no ha iniciado sesión AWS(por ejemplo, ejecuta un PowerShell script como una tarea programada fuera del horario laboral habitual), añada el `-ProfileLocation` parámetro cuando especifique el perfil que quiere usar y establezca el valor en la ruta del archivo que almacena las credenciales. Para asegurarse de que el Herramientas de AWS para PowerShell script se ejecuta con las credenciales de cuenta correctas, debe añadir el `-ProfileLocation` parámetro siempre que el script se ejecute en un contexto o proceso que no utilice una AWS cuenta. También puede copiar su archivo de credenciales en una ubicación que esté accesible al sistema local o en otra cuenta que usen sus scripts para realizar tareas.

## Orden de búsqueda de credenciales
<a name="pstools-cred-provider-chain-legacy"></a>

Al ejecutar un comando, Herramientas de AWS para PowerShell busca las credenciales en el orden siguiente. Se detiene cuando encuentra credenciales utilizables.

1. Credenciales literales que están incrustadas como parámetros en la línea de comandos.

   Es absolutamente recomendable que utilice perfiles en lugar de incluir credenciales literales en las líneas de comandos.

1. Credenciales especificadas por el comando `-Credential`.

1. Nombre o ubicación del perfil que se especificó mediante el AWSCredential cmdlet [Set-](https://docs.aws.amazon.com/powershell/v5/reference/items/Set-AWSCredential.html).
   + Si especificas solo un nombre de perfil, el comando busca el perfil especificado en el almacén del AWS SDK y, si no existe, el perfil especificado en el archivo de credenciales AWS compartidas de la ubicación predeterminada.
   + Si especifica solo una ubicación de perfil, el comando busca el perfil `default` desde ese archivo de credenciales.
   + Si especifica un nombre y una ubicación, el comando busca el perfil especificado en ese archivo de credenciales.

   Si no se encuentra el perfil o la ubicación especificados, el comando genera una excepción. La búsqueda continúa con los pasos siguientes únicamente si no ha especificado un perfil o una ubicación.

1. Credenciales que se crean a partir de las `AWS_ACCESS_KEY_ID` variables de `AWS_SESSION_TOKEN` entorno y`AWS_SECRET_ACCESS_KEY`, si las tres variables tienen un valor.

1. El perfil de credenciales con el nombre especificado por la variable de `AWS_PROFILE` entorno.

1. El perfil predeterminado, en el orden que se indica a continuación:

   1. El `default` perfil de la tienda AWS de SDK.

   1. El `default` perfil del AWS `credentials` archivo compartido.

   1. El `AWS PS Default` perfil de la tienda AWS de SDK.

1. Si el comando se ejecuta en una instancia de Amazon EC2 configurada para utilizar un rol de IAM, se accede a las credenciales temporales de la instancia EC2 desde el perfil de instancias.

   Para obtener más información sobre el uso de roles de IAM para instancias de Amazon EC2, [consulte Concesión de acceso con un](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-hosm.html) rol en [AWS SDK para .NET la](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) Guía para desarrolladores.

Si la búsqueda no puede encontrar las credenciales especificadas, el comando produce una excepción.

Para obtener información adicional sobre las variables de entorno y los perfiles de credenciales, consulte los siguientes temas de la [guía de referencia AWS SDKs y herramientas](https://docs.aws.amazon.com/sdkref/latest/guide/): [variables de entorno](https://docs.aws.amazon.com/sdkref/latest/guide/environment-variables.html), [lista de variables de entorno](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html#EVarSettings) y archivos de [configuración y credenciales compartidos](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html).

## Manejo de credenciales en AWS Tools for PowerShell Core
<a name="credential-handling-in-aws-tools-for-powershell-core"></a>

Los cmdlets de los cmdlets AWS Tools for PowerShell Core aceptan claves de AWS acceso y secretas o los nombres de los perfiles de credenciales cuando se ejecutan, de forma similar a. AWS Tools for Windows PowerShell Cuando se ejecutan en Windows, ambos módulos tienen acceso al archivo del almacén de credenciales de AWS SDK para .NET (almacenado en el archivo `AppData\Local\AWSToolkit\RegisteredAccounts.json` de cada usuario). 

Este archivo almacena las claves en formato cifrado y no se puede usar en otro equipo. Es el primer archivo en el que se Herramientas de AWS para PowerShell busca un perfil de credenciales y también es el archivo en el que se almacenan los perfiles de credenciales. Herramientas de AWS para PowerShell [Para obtener más información sobre el archivo de almacén de AWS SDK para .NET credenciales, consulte Configuración de credenciales. AWS](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-config-creds.html) El PowerShell módulo Herramientas para Windows no admite actualmente la escritura de credenciales en otros archivos o ubicaciones.

Ambos módulos pueden leer los perfiles del archivo de credenciales AWS compartido que utilizan otros AWS SDKs y el AWS CLI. En Windows, la ubicación predeterminada de este archivo es `C:\Users\<userid>\.aws\credentials`. En plataformas distintas de Windows, este archivo se almacena en `~/.aws/credentials`. Se puede usar el parámetro `-ProfileLocation` para apuntar a un nombre de archivo o ubicación de archivo distintos de los predeterminados.

El almacén de credenciales del SDK guarda sus credenciales de forma cifrada mediante la criptografía APIs de Windows. No APIs están disponibles en otras plataformas, por lo que el AWS Tools for PowerShell Core módulo utiliza exclusivamente el archivo de credenciales AWS compartido y admite la escritura de nuevos perfiles de credenciales en el archivo de credenciales compartido.

**Los siguientes scripts de ejemplo que utilizan el `Set-AWSCredential` cmdlet muestran las opciones para gestionar los perfiles de credenciales en Windows con el Shell o el Shell. AWSPower AWSPower** ** NetCore**módulos.

```
# Writes a new (or updates existing) profile with name "myProfileName"
# in the encrypted SDK store file

Set-AWSCredential -AccessKey akey -SecretKey skey -StoreAs myProfileName

# Checks the encrypted SDK credential store for the profile and then
# falls back to the shared credentials file in the default location

Set-AWSCredential -ProfileName myProfileName

# Bypasses the encrypted SDK credential store and attempts to load the
# profile from the ini-format credentials file "mycredentials" in the
# folder C:\MyCustomPath

Set-AWSCredential -ProfileName myProfileName -ProfileLocation C:\MyCustomPath\mycredentials
```

Los siguientes ejemplos muestran el comportamiento del **AWSPowerShell. NetCore**módulo en los sistemas operativos Linux o macOS.

```
# Writes a new (or updates existing) profile with name "myProfileName"
# in the default shared credentials file ~/.aws/credentials

Set-AWSCredential -AccessKey akey -SecretKey skey -StoreAs myProfileName

# Writes a new (or updates existing) profile with name "myProfileName"
# into an ini-format credentials file "~/mycustompath/mycredentials"

Set-AWSCredential -AccessKey akey -SecretKey skey -StoreAs myProfileName -ProfileLocation ~/mycustompath/mycredentials

# Reads the default shared credential file looking for the profile "myProfileName"

Set-AWSCredential -ProfileName myProfileName

# Reads the specified credential file looking for the profile "myProfileName"

Set-AWSCredential -ProfileName myProfileName -ProfileLocation ~/mycustompath/mycredentials
```

# Credenciales compartidas en Herramientas de AWS para PowerShell
<a name="shared-credentials-in-aws-powershell"></a>

Las herramientas para Windows PowerShell admiten el uso del archivo de credenciales AWS compartidas, al igual que el AWS CLI y otros AWS SDKs. Las herramientas para Windows PowerShell ahora admiten la lectura y escritura de `basic` perfiles de `assume role` credenciales tanto en el archivo de credenciales de.NET como en el archivo de credenciales AWS compartido. `session` Esta funcionalidad se permite gracias a un nuevo espacio de nombres `Amazon.Runtime.CredentialManagement`.

**aviso**  
Para evitar riesgos de seguridad, no utilice a los usuarios de IAM para la autenticación cuando desarrolle software especialmente diseñado o trabaje con datos reales. En cambio, utilice la federación con un proveedor de identidades como [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html).

**nota**  
La información de este tema se refiere a las circunstancias en las que necesita obtener y administrar credenciales a corto o largo plazo de forma manual. Para obtener información adicional sobre las credenciales a corto y largo plazo, consulte [Otras formas de autenticarse](https://docs.aws.amazon.com/sdkref/latest/guide/access-users.html) en la Guía de referencia de *herramientas AWS SDKs y herramientas*.  
Para conocer las mejores prácticas de seguridad AWS IAM Identity Center, utilícelas como se describe en[Autenticarse con AWS](creds-idc.md).

[https://docs.aws.amazon.com/powershell/v5/reference/items/New-AWSCredential.html](https://docs.aws.amazon.com/powershell/v5/reference/items/New-AWSCredential.html) En los cmdlets del servicio, puede hacer referencia a sus perfiles añadiendo el parámetro común `-ProfileName`.

## Uso de un rol de IAM con Herramientas de AWS para PowerShell
<a name="shared-credentials-assume-role"></a>

El archivo de credenciales AWS compartido permite tipos de acceso adicionales. Por ejemplo, puede acceder a sus AWS recursos mediante un rol de IAM en lugar de las credenciales a largo plazo de un usuario de IAM. Para ello, debe tener un perfil estándar que tenga permisos para asumir el rol. Cuando le indica Herramientas de AWS para PowerShell que utilice un perfil que especifique un rol, Herramientas de AWS para PowerShell busca el perfil identificado por el `SourceProfile` parámetro. Estas credenciales se utilizan para solicitar credenciales temporales para el rol especificado por el parámetro `RoleArn`. Opcionalmente, puede requerir el uso de un dispositivo de autenticación multifactor (MFA) o un código `ExternalId` cuando un tercero asuma el rol.


****  

| Nombre del parámetro | Description (Descripción) | 
| --- | --- | 
|  ExternalId  |  El ID externo definido por el usuario que se utilizará al asumir un rol, si así lo requiere el rol. Normalmente, esto solo es necesario cuando delega el acceso a su cuenta a un tercero. El tercero debe incluir el ExternalId como parámetro al asumir el rol asignado. Para obtener más información, consulte [Cómo utilizar un identificador externo al conceder acceso a sus AWS recursos a un tercero](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) en la *Guía del usuario de IAM*.  | 
|  MfaSerial  |  El número de serie de MFA que se utilizará al asumir un rol, si así lo requiere el rol. Para obtener más información, consulte [Uso de la autenticación multifactor (MFA) en AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html) en la *Guía del usuario de IAM*.  | 
|  RoleArn  |  El ARN del rol que se va a asumir al asumir las credenciales del rol. Para obtener más información acerca de la creación y el uso de roles, consulte [Roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) en la *Guía del usuario de IAM*.  | 
|  SourceProfile  |  El nombre del perfil de origen que se va a usar al asumir las credenciales del rol. Las credenciales encontradas en este perfil se utilizan para asumir el rol especificado por el parámetro `RoleArn`.  | 

### Configuración de perfiles para asumir un rol
<a name="setup"></a>

El siguiente es un ejemplo que muestra cómo configurar un perfil de origen que permite asumir directamente un rol de IAM. 

El primer comando crea un perfil de origen al que hace referencia el perfil de rol. El segundo comando crea el perfil de rol que el rol debe asumir. El tercer comando muestra las credenciales del perfil de rol.

```
PS > Set-AWSCredential -StoreAs my_source_profile -AccessKey access_key_id -SecretKey secret_key
PS > Set-AWSCredential -StoreAs my_role_profile -SourceProfile my_source_profile -RoleArn arn:aws:iam::123456789012:role/role-i-want-to-assume
PS > Get-AWSCredential -ProfileName my_role_profile

SourceCredentials                  RoleArn                                              RoleSessionName                           Options
-----------------                  -------                                              ---------------                           -------
Amazon.Runtime.BasicAWSCredentials arn:aws:iam::123456789012:role/role-i-want-to-assume aws-dotnet-sdk-session-636238288466144357 Amazon.Runtime.AssumeRoleAWSCredentialsOptions
```

Para usar este perfil de rol con los cmdlets de PowerShell servicio Tools for Windows, añada el parámetro `-ProfileName` común al comando para hacer referencia al perfil de rol. En el siguiente ejemplo, se utiliza el perfil de rol definido en el ejemplo anterior para acceder al [Get-S3Bucket](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-S3Bucket.html)cmdlet. Herramientas de AWS para PowerShell busca las credenciales`my_source_profile`, las usa para llamar `AssumeRole` en nombre del usuario y, a continuación, usa esas credenciales de rol temporales para llamar. `Get-S3Bucket`

```
PS > Get-S3Bucket -ProfileName my_role_profile

CreationDate           BucketName
------------           ----------
2/27/2017 8:57:53 AM   4ba3578c-f88f-4d8b-b95f-92a8858dac58-bucket1
2/27/2017 10:44:37 AM  2091a504-66a9-4d69-8981-aaef812a02c3-bucket2
```

## Uso de tipos de perfiles de credenciales
<a name="using-the-credential-profile-types"></a>

Para establecer un tipo de perfil de credenciales, debe conocer qué parámetros proporcionan la información requerida por el tipo de perfil.


****  

| Tipo de credenciales | Parámetros que debe utilizar | 
| --- | --- | 
|  **Básica** Estas son las credenciales a largo plazo para un usuario de IAM.  |  `-AccessKey`  `-SecretKey`  | 
|  **Sesión**: Estas son las credenciales a corto plazo de un rol de IAM que se recuperan manualmente, por ejemplo, llamando directamente al STSRole cmdlet [Use-](https://docs.aws.amazon.com/powershell/v5/reference/items/Use-STSRole.html).  |  `-AccessKey`  `-SecretKey` `-SessionToken`  | 
|  **Rol**: Estas son credenciales a corto plazo para un rol de IAM que las Herramientas de AWS para PowerShell recuperan para usted.  |  `-SourceProfile` `-RoleArn`  Opcional: `-ExternalId` Opcional: `-MfaSerial`  | 

## El parámetro común `ProfileLocation`
<a name="the-profileslocation-common-parameter"></a>

Puede utilizar `-ProfileLocation` para escribir en el archivo de credenciales compartidas, así como para indicar a un cmdlet que lea el archivo de credenciales. Al agregar el `-ProfileLocation` parámetro, se controla si Tools for Windows PowerShell utiliza el archivo de credenciales compartido o el archivo de credenciales .NET. En la siguiente tabla se describe cómo funciona el parámetro en Herramientas para Windows. PowerShell


****  

| Valor de ubicación del perfil | Comportamiento de resolución del perfil | 
| --- | --- | 
|  null (no establecido) o vacío  |  En primer lugar, busca en el archivo de credenciales de .NET un perfil con el nombre especificado. Si no encuentra el perfil, busque en el archivo de credenciales AWS compartidas en`(user's home directory)\.aws\credentials`.  | 
|  La ruta a un archivo en el formato de archivo de credenciales AWS compartidas  |  Busca solo en el archivo especificado el perfil con el nombre designado.  | 

### Guardar las credenciales en un archivo de credenciales
<a name="save-credentials-to-a-credentials-file"></a>

Para escribir y guardar credenciales en uno de los dos archivos de credenciales, ejecute el cmdlet `Set-AWSCredential`. El siguiente ejemplo le muestra cómo hacerlo. El primer comando utiliza `Set-AWSCredential` con `-ProfileLocation` para agregar claves de acceso y secretas a un perfil especificado por el parámetro `-ProfileName`. En la segunda línea, ejecute el cmdlet [Get-Content](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-content) para mostrar el contenido del archivo de credenciales.

```
PS > Set-AWSCredential -ProfileLocation C:\Users\auser\.aws\credentials -ProfileName basic_profile -AccessKey access_key2 -SecretKey secret_key2
PS > Get-Content C:\Users\auser\.aws\credentials

aws_access_key_id=access_key2
aws_secret_access_key=secret_key2
```

## Visualización de los perfiles de credenciales
<a name="showing-credential-profiles"></a>

Ejecute el AWSCredential cmdlet [Get-](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-AWSCredential.html) y añada el `-ListProfileDetail` parámetro para obtener los tipos y ubicaciones de los archivos de credenciales y una lista de nombres de perfil.

```
PS > Get-AWSCredential -ListProfileDetail

ProfileName                     StoreTypeName         ProfileLocation
-----------                     -------------         ---------------
source_profile                  NetSDKCredentialsFile
assume_role_profile             NetSDKCredentialsFile
basic_profile                   SharedCredentialsFile C:\Users\auser\.aws\credentials
```

## Eliminar perfiles de credenciales
<a name="removing-credential-profiles"></a>

Para eliminar los perfiles de credenciales, ejecute el nuevo cmdlet [Remove](https://docs.aws.amazon.com/powershell/v5/reference/items/Remove-AWSCredentialProfile.html) - Profile. AWSCredential [Clear- AWSCredential](https://docs.aws.amazon.com/powershell/v5/reference/items/Clear-AWSCredential.html) está en desuso, pero sigue disponible por motivos de compatibilidad con versiones anteriores.

## Notas importantes
<a name="important-notes"></a>

Solo [Initialize- AWSDefault Configuration](https://docs.aws.amazon.com/powershell/v5/reference/items/Initialize-AWSDefaultConfiguration.html), [New- AWSCredential](https://docs.aws.amazon.com/powershell/v5/reference/items/New-AWSCredential.html) y [Set- AWSCredential](https://docs.aws.amazon.com/powershell/v5/reference/items/Set-AWSCredential.html) admiten los parámetros de los perfiles de rol. No se pueden especificar los parámetros de rol directamente en un comando como `Get-S3Bucket -SourceProfile source_profile_name -RoleArn arn:aws:iam::999999999999:role/role_name`. Eso no funciona porque los cmdlets del servicio no admiten directamente los parámetros `SourceProfile` o `RoleArn`. En su lugar, debe almacenar esos parámetros en un perfil y, a continuación, llamar al comando con el parámetro `-ProfileName`.