

¡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.

# 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`.