

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

# Configuración y uso del Herramientas de AWS para PowerShell
<a name="pstools-getting-started"></a>

En algunos de los temas de esta sección se describen los aspectos básicos del uso de las herramientas para Windows PowerShell después de [instalarlas y configurar la autenticación](pstools-getting-set-up.md). Por ejemplo, explican cómo especificar la [AWS región](pstools-installing-specifying-region.md) para la que PowerShell deben interactuar las herramientas AWS.

En otros temas de esta sección se proporciona información sobre las formas avanzadas de configurar las herramientas, el entorno y los proyectos.

**Topics**
+ [AWS Región](pstools-installing-specifying-region.md)
+ [Resolución de credencial y perfil](creds-assign.md)
+ [Configurar la identidad federada](saml-pst.md)
+ [Observabilidad](observability.md)
+ [Detección y alias de cmdlet](pstools-discovery-aliases.md)
+ [Canalización, salida e iteración](pstools-pipelines.md)
+ [Usuarios y roles](pstools-users-roles.md)
+ [Uso de credenciales heredadas](pstools-cred-legacy.md)

# Especifique la AWS región para el Herramientas de AWS para PowerShell
<a name="pstools-installing-specifying-region"></a>

Hay dos formas de especificar la AWS región que se va a utilizar al ejecutar Herramientas de AWS para PowerShell comandos:
+ Utilice el parámetro común `-Region` en comandos individuales.
+ Utilice el comando `Set-DefaultAWSRegion` para establecer una región predeterminada para todos los comandos.

Muchos AWS cmdlets fallan si las Herramientas de Windows no PowerShell pueden determinar qué región usar. Las excepciones incluyen los cmdlets de [Amazon S3](pstools-s3.md), Amazon SES y AWS Identity and Access Management, que se establecen automáticamente en un punto de enlace global de forma predeterminada.

 **Para especificar la región de un solo comando AWS ** 

Agregue el parámetro `-Region` al comando, como el siguiente.

```
PS > Get-EC2Image -Region us-west-2
```

 **Para establecer una región predeterminada para todos los comandos AWS CLI de la sesión actual** 

En la PowerShell línea de comandos, escriba el siguiente comando.

```
PS > Set-DefaultAWSRegion -Region us-west-2
```

**nota**  
Este valor persiste únicamente durante la sesión actual. Para aplicar la configuración a todas las PowerShell sesiones, añada este comando a su PowerShell perfil tal como lo hizo con el `Import-Module` comando.

 **Para ver la región predeterminada actual de todos los comandos AWS CLI** 

En la PowerShell línea de comandos, escriba el siguiente comando.

```
PS > Get-DefaultAWSRegion

Region    Name             IsShellDefault
------    ----             --------------
us-west-2 US West (Oregon) True
```

 **Para borrar la región predeterminada actual para todos los comandos AWS CLI** 

En la PowerShell línea de comandos, escriba el siguiente comando.

```
PS > Clear-DefaultAWSRegion
```

 **Para ver una lista de todas las AWS regiones disponibles** 

En la PowerShell línea de comandos, escriba el siguiente comando. La tercera columna del resultado de ejemplo identifica qué región es la predeterminada para su sesión actual.

```
PS > Get-AWSRegion

Region         Name                      IsShellDefault
------         ----                      --------------
ap-east-1      Asia Pacific (Hong Kong)  False
ap-northeast-1 Asia Pacific (Tokyo)      False
...
us-east-2      US East (Ohio)            False
us-west-1      US West (N. California)   False
us-west-2      US West (Oregon)          True
...
```

**nota**  
Es posible que se admitan algunas regiones, pero que no aparezcan en los resultados del cmdlet `Get-AWSRegion`. Por ejemplo, esto a veces también es válido para las regiones que aún no son globales. Si no puede especificar una región cuando agrega el parámetro `-Region` a un comando, intente especificar la región en un punto de enlace personalizado, como se muestra en la siguiente sección.

## Especificación de un punto de enlace personalizado o que no sea estándar
<a name="specifying-a-custom-or-nonstandard-endpoint"></a>

Especifique un punto final personalizado como URL añadiendo el parámetro `-EndpointUrl` común al PowerShell comando Tools for Windows, en el siguiente formato de ejemplo.

```
PS > Some-AWS-PowerShellCmdlet -EndpointUrl "custom endpoint URL" -Other -Parameters
```

A continuación, se muestra un ejemplo con el cmdlet `Get-EC2Instance`. En este ejemplo, el punto de enlace personalizado se encuentra en la región `us-west-2` o EE. UU. Oeste (Oregón), pero puede utilizar cualquier otra región de AWS admitida, incluidas las que no aparecen cuando se ejecuta `Get-AWSRegion`.

```
PS > Get-EC2Instance -EndpointUrl "https://service-custom-url.us-west-2.amazonaws.com" -InstanceID "i-0555a30a2000000e1"
```

## Información adicional
<a name="region-additional-info"></a>

Para obtener información adicional sobre AWS las regiones, consulte [AWS la sección Región](https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html) en la *Guía de referencia de herramientas AWS SDKs y herramientas*.

# Resolución de credencial y perfil
<a name="creds-assign"></a>

## Orden de búsqueda de credenciales
<a name="cred-provider-chain-main"></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. Un nombre de perfil o una ubicación de 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 EC2 instancia de Amazon que está configurada para usar un rol de IAM, se accede a las credenciales temporales de la EC2 instancia desde el perfil de la instancia.

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

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 de AWS SDKs and Tools](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](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html#EVarSettings) de entorno y [archivos de configuración y credenciales compartidos](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html).

# Configure la identidad federada con Herramientas de AWS para PowerShell
<a name="saml-pst"></a>

Para permitir que los usuarios de su organización accedan a AWS los recursos, debe configurar un método de autenticación estándar y repetible para garantizar la seguridad, la auditabilidad, el cumplimiento y la capacidad de permitir la separación de funciones y cuentas. Si bien es habitual ofrecer a los usuarios la posibilidad de acceder AWS APIs, sin un acceso a la API federado, también habría que crear usuarios AWS Identity and Access Management (IAM), lo que no sirve para nada utilizar la federación. En este tema se describe la compatibilidad con el SAML (lenguaje de marcado de aserciones de seguridad) en la solución de acceso federado Herramientas de AWS para PowerShell que facilita el acceso federado.

La compatibilidad con SAML Herramientas de AWS para PowerShell le permite proporcionar a sus usuarios un acceso federado a los servicios. AWS El SAML es un formato de estándar abierto y basado en XML para transmitir los datos de autenticación y autorización de los usuarios entre servicios; en particular, entre un proveedor de identidad (como los Servicios de [federación de Active Directory) y un proveedor de servicios](https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/ad-fs-overview) (como). AWS Para obtener más información acerca de SAML y su funcionamiento, consulte [SAML](https://en.wikipedia.org/wiki/Security_Assertion_Markup_Language) en Wikipedia o [SAML Technical Specifications](https://www.oasis-open.org/standard/saml/) en el sitio web de Organization for the Advancement of Structured Information Standards (OASIS). La compatibilidad con SAML en el Herramientas de AWS para PowerShell es compatible con SAML 2.0.

## Requisitos previos
<a name="saml-pst-prerequisites"></a>

Antes de intentar usar la compatibilidad de SAML por primera vez, debe disponer de lo siguiente.
+ Una solución de identidad federada que esté integrada de forma correcta a su cuenta de AWS para poder tener acceso a la consola usando solo las credenciales de su organización. Para obtener más información sobre cómo hacerlo específicamente para los Servicios de federación de Active Directory, consulte [Acerca de la federación de SAML 2.0](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) en la *Guía del usuario de IAM* y en la entrada del blog titulada Cómo [habilitar la federación para AWS usar Windows Active Directory, AD FS y](https://aws.amazon.com/blogs/security/enabling-federation-to-aws-using-windows-active-directory-adfs-and-saml-2-0/) SAML 2.0. Aunque la entrada de blog explica el procedimiento para AD FS 2.0, los pasos son similares si ejecuta AD FS 3.0.
+ La versión 3.1.31.0 o posterior de la instalada en la Herramientas de AWS para PowerShell estación de trabajo local.

## Cómo obtiene un usuario con identidad federada el acceso federado al servicio AWS APIs
<a name="saml-pst-federated-process"></a>

El siguiente proceso describe, de forma general, cómo AD FS federa a un usuario de Active Directory (AD) para obtener acceso a los recursos. AWS 

![\[Diagram showing federated user access flow to AWS resources via AD FS and Security Token Service.\]](http://docs.aws.amazon.com/es_es/powershell/v5/userguide/images/powershell_ADFSauth_using_vsd.png)


1. El cliente en el equipo del usuario federado se autentica en AD FS.

1. Si la autenticación se realiza correctamente, AD FS envía al usuario una aserción SAML.

1. El cliente del usuario envía la aserción de SAML al AWS Security Token Service (STS) como parte de una solicitud de federación de SAML.

1. STS devuelve una respuesta de SAML que contiene credenciales AWS temporales para una función que el usuario puede asumir.

1. El usuario accede AWS al servicio APIs al incluir esas credenciales temporales en la solicitud realizada por. Herramientas de AWS para PowerShell

## Cómo funciona SAML Support en Herramientas de AWS para PowerShell
<a name="saml-pst-overview"></a>

En esta sección, se describe cómo los Herramientas de AWS para PowerShell cmdlets permiten a los usuarios configurar la federación de identidades basada en SAML.

![\[Diagram showing SAML-based federation flow between organization, AD FS, AWS, and service APIs.\]](http://docs.aws.amazon.com/es_es/powershell/v5/userguide/images/Powershell_SamlAuth_using_vsd.png)


1. Herramientas de AWS para PowerShell se autentica en AD FS con las credenciales actuales del usuario de Windows o, de forma interactiva, cuando el usuario intenta ejecutar un cmdlet que requiere credenciales para realizar llamadas. AWS

1. AD FS autentica al usuario.

1. AD FS genera una respuesta de autenticación SAML 2.0 que incluye una afirmación; el objetivo de la afirmación es identificar al usuario y proporcionar información sobre él. Herramientas de AWS para PowerShell extrae la lista de las funciones autorizadas del usuario de la afirmación de SAML.

1. Herramientas de AWS para PowerShell reenvía la solicitud de SAML, incluidos los nombres de recursos de Amazon (ARN) del rol solicitado, a STS mediante la llamada a la API. `AssumeRoleWithSAMLRequest`

1. Si la solicitud SAML es válida, STS devuelve una respuesta que contiene `AccessKeyId`, `SecretAccessKey` y `SessionToken` de AWS . Estas credenciales duran 3 600 segundos (1 hora).

1. El usuario ahora tiene credenciales válidas para trabajar con cualquier AWS servicio al APIs que el rol del usuario esté autorizado a acceder. Herramientas de AWS para PowerShell aplica automáticamente estas credenciales para cualquier llamada posterior a la AWS API y las renueva automáticamente cuando caducan.
**nota**  
Cuando las credenciales caducan y se necesitan nuevas credenciales, Herramientas de AWS para PowerShell vuelve a autenticarse automáticamente con AD FS y obtiene credenciales nuevas durante la hora siguiente. Para los usuarios de cuentas unidas al dominio, este proceso se produce silenciosamente. En el caso de las cuentas que no están unidas a un dominio, Herramientas de AWS para PowerShell pide a los usuarios que introduzcan sus credenciales antes de poder volver a autenticarse.

## Cómo utilizar los cmdlets de configuración de SAML PowerShell
<a name="saml-pst-config-cmdlets"></a>

Herramientas de AWS para PowerShell incluye dos cmdlets nuevos que admiten SAML.
+  AD FS`Set-AWSSamlEndpoint` configura el punto de enlace de AD-FS, asigna un nombre descriptivo al punto de enlace y, de forma opcional, describe el tipo de autenticación del punto de enlace.
+  `Set-AWSSamlRoleProfile` crea o edita el perfil de cuenta de usuario que desea asociar a un punto de enlace de AD FS, identificado mediante la especificación del nombre descriptivo proporcionado en el cmdlet `Set-AWSSamlEndpoint`. Cada perfil de rol se asigna a un único rol que el usuario tiene permiso para realizar.

  Al igual que con los perfiles de AWS credenciales, se asigna un nombre descriptivo al perfil de rol. Puede usar el mismo nombre descriptivo con el `Set-AWSCredential` cmdlet o como valor del `-ProfileName` parámetro para cualquier cmdlet que invoque el servicio. AWS APIs

Abra una sesión nueva. Herramientas de AWS para PowerShell Si ejecuta la PowerShell versión 3.0 o una versión posterior, el Herramientas de AWS para PowerShell módulo se importa automáticamente al ejecutar cualquiera de sus cmdlets. Si ejecuta la PowerShell versión 2.0, debe importar el módulo manualmente ejecutando el cmdlet ``Import-Module``, como se muestra en el siguiente ejemplo.

```
PS > Import-Module "C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowerShell\AWSPowerShell.psd1"
```

### Cómo ejecutar los cmdlets `Set-AWSSamlEndpoint` y `Set-AWSSamlRoleProfile`
<a name="how-to-run-the-set-awssamlendpoint-and-set-awssamlroleprofile-cmdlets"></a>

1. En primer lugar, configure el valor del punto de enlace del sistema AD FS. La forma más sencilla de hacer esto es almacenar el punto de enlace en una variable, tal y como se muestra en este paso. Asegúrese de reemplazar la cuenta de marcador de posición y el nombre de host de AD FS por su IDs propia cuenta y el nombre de host de AD FS. IDs Especifique el nombre de host de AD FS en el parámetro `Endpoint`.

   ```
   PS > $endpoint = "https://adfs.example.com/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices"
   ```

1. Para crear el valor del punto de enlace, ejecute el cmdlet `Set-AWSSamlEndpoint` especificando el valor correcto para el parámetro `AuthenticationType`. Los valores válidos son `Basic`, `Digest`, `Kerberos`, `Negotiate` y `NTLM`. Si no especifica este parámetro, el valor predeterminado es `Kerberos`.

   ```
   PS > $epName = Set-AWSSamlEndpoint -Endpoint $endpoint -StoreAs ADFS-Demo -AuthenticationType NTLM
   ```

   El cmdlet devuelve el nombre descriptivo que asignó mediante el parámetro `-StoreAs`, para que pueda utilizarlo cuando ejecute `Set-AWSSamlRoleProfile` en la línea siguiente.

1. Ahora, ejecute el cmdlet `Set-AWSSamlRoleProfile` para autenticarse con el proveedor de identidad de AD FS y obtener el conjunto de roles (en la aserción SAML) que el usuario tiene permiso para realizar.

   El cmdlet `Set-AWSSamlRoleProfile` utiliza el conjunto de roles devueltos para pedir al usuario que seleccione el rol que desea asociar con el perfil especificado o para validar que los datos del rol proporcionados en los parámetros están presentes (si no están presentes, se le pedirá al usuario que los elija). Si el usuario está autorizado para un único rol, el cmdlet asocia el rol con el perfil automáticamente, sin preguntarle al usuario. No es necesario proporcionar credenciales para configurar un perfil para su uso con una cuenta unida al dominio.

   ```
   PS > Set-AWSSamlRoleProfile -StoreAs SAMLDemoProfile -EndpointName $epName
   ```

   Como alternativa, en el caso de non-domain-joined las cuentas, puede proporcionar las credenciales de Active Directory y, a continuación, seleccionar una AWS función a la que el usuario tenga acceso, como se muestra en la siguiente línea. Esto es útil si tiene cuentas de usuario de Active Directory diferentes para diferenciar los roles dentro de su organización (por ejemplo, funciones de administración).

   ```
   PS > $credential = Get-Credential -Message "Enter the domain credentials for the endpoint"
   PS > Set-AWSSamlRoleProfile -EndpointName $epName -NetworkCredential $credential -StoreAs SAMLDemoProfile
   ```

1. En cualquier caso, el cmdlet `Set-AWSSamlRoleProfile` le pide que elija el rol que debe almacenarse en el perfil. En el ejemplo siguiente se muestran dos roles disponibles: `ADFS-Dev` y `ADFS-Production`. El administrador de AD FS asocia los roles de IAM con las credenciales de inicio de sesión de AD.

   ```
   Select Role
   Select the role to be assumed when this profile is active
   [1] 1 - ADFS-Dev  [2] 2 - ADFS-Production  [?] Help (default is "1"):
   ```

   También puede especificar un rol sin la solicitud introduciendo los parámetros `RoleARN`, `PrincipalARN` y, opcionalmente, `NetworkCredential`. Si el rol especificado no aparece en la aserción devuelta por la autenticación, se le pedirá al usuario que elija entre los roles disponibles.

   ```
   PS > $params = @{ "NetworkCredential"=$credential, "PrincipalARN"="{arn:aws:iam::012345678912:saml-provider/ADFS}", "RoleARN"="{arn:aws:iam::012345678912:role/ADFS-Dev}"
   }
   PS > $epName | Set-AWSSamlRoleProfile @params -StoreAs SAMLDemoProfile1 -Verbose
   ```

1. Puede crear perfiles para todos los roles en un solo comando añadiendo el parámetro `StoreAllRoles`, tal y como se muestra en el siguiente código. Tenga en cuenta que el nombre del rol se utiliza como nombre de perfil.

   ```
   PS > Set-AWSSamlRoleProfile -EndpointName $epName -StoreAllRoles
   ADFS-Dev
   ADFS-Production
   ```

### Cómo utilizar los perfiles de rol para ejecutar cmdlets que requieren credenciales AWS
<a name="how-to-use-role-profiles-to-run-cmdlets-that-require-aws-credentials"></a>

Para ejecutar cmdlets que requieren AWS credenciales, puede usar los perfiles de rol definidos en el AWS archivo de credenciales compartido. Proporcione el nombre de un perfil de rol `Set-AWSCredential` (o el valor de cualquier `ProfileName` parámetro del Herramientas de AWS para PowerShell) para obtener automáticamente AWS las credenciales temporales para el rol que se describe en el perfil.

Aunque utilice un único perfil de rol cada vez, puede cambiar de un perfil a otro dentro de una sesión del shell. El cmdlet `Set-AWSCredential` no autentica ni obtiene credenciales cuando se ejecuta por sí solo; el cmdlet registra que desea usar un perfil de rol especificado. Hasta que ejecuta un cmdlet que requiera credenciales de AWS , no se produce la autenticación ni la solicitud de credenciales.

Ahora puede usar las AWS credenciales temporales que obtuvo con el `SAMLDemoProfile` perfil para trabajar con el AWS servicio APIs. En las secciones siguientes se muestran ejemplos de cómo utilizar los perfiles de rol.

### Ejemplo 1: Definir un rol predeterminado con `Set-AWSCredential`
<a name="example-1-set-a-default-role-with-set-awscredential"></a>

En este ejemplo se establece un rol predeterminado para una Herramientas de AWS para PowerShell sesión mediante`Set-AWSCredential`. A continuación, puede ejecutar cmdlets que requieran credenciales y que estén autorizados por el rol especificado. En este ejemplo se muestran todas las instancias de Amazon Elastic Compute Cloud en la región EE. UU. Oeste (Oregón) que están asociadas con el perfil especificado con el cmdlet `Set-AWSCredential`.

```
PS > Set-AWSCredential -ProfileName SAMLDemoProfile
PS > Get-EC2Instance -Region us-west-2 | Format-Table -Property Instances,GroupNames

Instances                                                   GroupNames
---------                                                   ----------
{TestInstance1}                                             {default}
{TestInstance2}                                             {}
{TestInstance3}                                             {launch-wizard-6}
{TestInstance4}                                             {default}
{TestInstance5}                                             {}
{TestInstance6}                                             {AWS-OpsWorks-Default-Server}
```

### Ejemplo 2: cambiar los perfiles de los roles durante una PowerShell sesión
<a name="example-2-change-role-profiles-during-a-powershell-session"></a>

En este ejemplo, se enumeran todos los buckets de Amazon S3 disponibles en la AWS cuenta del rol asociado al `SAMLDemoProfile` perfil. En el ejemplo se muestra que, si bien es posible que haya utilizado otro perfil al principio de la Herramientas de AWS para PowerShell sesión, puede cambiar los perfiles especificando un valor diferente para el `-ProfileName` parámetro con los cmdlets que lo admitan. Esta es una tarea habitual para los administradores que gestionan Amazon S3 desde la línea de PowerShell comandos.

```
PS > Get-S3Bucket -ProfileName SAMLDemoProfile

CreationDate                                                BucketName
------------                                                ----------
7/25/2013 3:16:56 AM                                        amzn-s3-demo-bucket
4/15/2015 12:46:50 AM                                       amzn-s3-demo-bucket1
4/15/2015 6:15:53 AM                                        amzn-s3-demo-bucket2
1/12/2015 11:20:16 PM                                       amzn-s3-demo-bucket3
```

Tenga en cuenta que el cmdlet `Get-S3Bucket` especifica el nombre del perfil que se creó al ejecutar el cmdlet `Set-AWSSamlRoleProfile`. Este comando puede ser útil si ha definido un perfil de rol anteriormente en su sesión (por ejemplo, ejecutando el cmdlet `Set-AWSCredential`) y desea utilizar un perfil de rol diferente para el cmdlet `Get-S3Bucket`. El administrador de perfiles pone credenciales temporales a disposición del cmdlet `Get-S3Bucket`.

Aunque las credenciales caduquen al cabo de una hora (un límite impuesto por STS), Herramientas de AWS para PowerShell actualiza automáticamente las credenciales solicitando una nueva aserción SAML cuando las herramientas detectan que las credenciales actuales han caducado.

Para los usuarios unidos a un dominio, este proceso se produce sin interrupción, porque durante la autenticación se usa la identidad de Windows del usuario actual. En el non-domain-joined caso de las cuentas de usuario, Herramientas de AWS para PowerShell muestra una solicitud de PowerShell credenciales en la que se solicita la contraseña del usuario. El usuario proporciona las credenciales, que se usan para volver a autenticarle y obtener una nueva aserción.

### Ejemplo 3: Obtener instancias en una región
<a name="example-3-get-instances-in-a-region"></a>

En el siguiente ejemplo, se muestran todas las instancias de Amazon EC2 en la región Asia-Pacífico (Sídney) que están asociadas con la cuenta que usa el perfil `ADFS-Production`. Este comando es útil para devolver todas las instancias de Amazon EC2 de una región.

```
PS > (Get-Ec2Instance -ProfileName ADFS-Production -Region ap-southeast-2).Instances | Select InstanceType, @{Name="Servername";Expression={$_.tags | where key -eq "Name" | Select Value -Expand Value}}

 InstanceType                                                Servername
 ------------                                                ----------
 t2.small                                                    DC2
 t1.micro                                                    NAT1
 t1.micro                                                    RDGW1
 t1.micro                                                    RDGW2
 t1.micro                                                    NAT2
 t2.small                                                    DC1
 t2.micro                                                    BUILD
```

## Lecturas adicionales
<a name="saml-pst-reading"></a>

Para obtener información general sobre cómo implementar el acceso a la API federado, consulte [Cómo implementar una solución general para el API/CLI acceso federado mediante](https://aws.amazon.com/blogs/security/how-to-implement-a-general-solution-for-federated-apicli-access-using-saml-2-0/) SAML 2.0.

[Si tiene preguntas o comentarios de soporte, visite los foros de AWS desarrolladores sobre creación de [PowerShell scripts](https://forums.aws.amazon.com/forum.jspa?forumID=149) o desarrollo de.NET.](https://forums.aws.amazon.com/forum.jspa?forumID=61)

# Observabilidad
<a name="observability"></a>

La observabilidad es la medida en que se puede deducir el estado actual de un sistema a partir de los datos que emite. Los datos emitidos se denominan comúnmente telemetría. [Para obtener información adicional sobre la telemetría al utilizar AWS los servicios, consulte [Observabilidad](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/observability.html) en la Guía para desarrolladores.AWS SDK para .NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/)

El siguiente código muestra un ejemplo de cómo se puede habilitar la observabilidad en. Herramientas de AWS para PowerShell

```
<#
    This is an example of generating telemetry for AWS Tools for PowerShell.
    Each cmdlet that interacts with an Amazon Web Service creates a trace containing spans
    for underlying processes and AWS SDK for .NET operations.
    This example is written using PowerShell 7 and .NET 8.
    It requires the installation of the .NET CLI tool.
    Note that implementation varies by the exporter/endpoint, which is not specified in this example.
    For more information, see https://opentelemetry.io/docs/languages/net/exporters/.
#>

# Set this value to a common folder path on your computer for local development of code repositories.
$devProjectsPath = [System.IO.Path]::Join('C:', 'Dev', 'Repos')

# If these values are changed, update the hardcoded method invocation toward the end of this script.
# Values must follow constraints for namespaces and classes.
$telemetryProjectName = 'ExampleAWSPowerShellTelemetryImplementation'
$serviceName = 'ExamplePowerShellService'

# This example supposes that the OTLP exporter requires these two properties,
# but some exporters require different properties or no properties.
$telemetryEndPoint = 'https://example-endpoint-provider.io'
$telemetryHeaders = 'x-example-header=abc123'

$dllsPath = [System.IO.Path]::Join($devProjectsPath, $telemetryProjectName, 'bin', 'Release', 'net8.0', 'publish')

$telemetryProjectPath = [System.IO.Path]::Join($devProjectsPath, $telemetryProjectName)

# This script is designed to recreate the example telemetry project each time it's executed.
Remove-Item -Path $telemetryProjectPath -Recurse -Force -ErrorAction 'SilentlyContinue'
$null = New-Item -Path $devProjectsPath -Name $telemetryProjectName -ItemType 'Directory'

<#
    Create and build a C#-based .NET 8 project that implements
    OpenTelemetry Instrumentation for the AWS Tools for PowerShell.
#>

Set-Location -Path $telemetryProjectPath

dotnet new classlib

# Other exporters are available.
# For more information, see https://opentelemetry.io/docs/languages/net/exporters/.
dotnet add package OpenTelemetry.Exporter.OpenTelemetryProtocol
dotnet add package OpenTelemetry.Instrumentation.AWS

$classContent = @"
using OpenTelemetry;
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;

namespace Example.Telemetry;

public class AWSToolsForPowerShellTelemetry
{
    public static void InitializeAWSInstrumentation()
    {
        Sdk.CreateTracerProviderBuilder()
        .ConfigureResource(e => e.AddService("$ServiceName"))
        .AddAWSInstrumentation()
        // Exporters vary so options might need to be changed or omitted.
        .AddOtlpExporter(options =>
        {
            options.Endpoint = new Uri("$telemetryEndPoint");
            options.Headers = "$telemetryHeaders";
        })
        .Build();
    }
}
"@

$csFilePath = [System.IO.Path]::Join($telemetryProjectPath, ($serviceName + '.cs'))
Set-Content -Path $csFilePath -Value $classContent

dotnet build
dotnet publish -c Release

<#
    Add additional modules here for any other cmdlets that you require. 
    Beyond this point, additional AWS Tools for PowerShell modules will fail to import
    due to conflicts with the AWS SDK for .NET assemblies that are added next.
#>

Import-Module -Name 'AWS.Tools.Common'
Import-Module -Name 'AWS.Tools.DynamoDBv2'


# Load assemblies for the telemetry project, excluding the AWS SDK for .NET assemblies
# that were already loaded by importing AWS Tools for PowerShell modules.
$dlls = (Get-ChildItem $dllsPath -Filter *.dll -Recurse ).FullName
$AWSSDKAssembliesAlreadyLoaded = [Threading.Thread]::GetDomain().GetAssemblies().Location | Where-Object {$_ -like '*AWSSDK*' } | Split-Path -Leaf
$dlls.Where{$AWSSDKAssembliesAlreadyLoaded -notcontains ($_ | Split-Path -Leaf)}.ForEach{Add-Type -Path $_}

# Invoke the method defined earlier in this script.
[Example.Telemetry.AWSToolsForPowerShellTelemetry]::InitializeAWSInstrumentation()

<#
    Now telemetry will be exported for AWS Tools for PowerShell cmdlets
    that are invoked directly or indirectly.
    Execute this cmdlet or execute your own PowerShell script.
#>
Get-DDBTable -TableName 'DotNetTests-HashTable' -Region 'us-east-1'
```

# Detección y alias de cmdlet
<a name="pstools-discovery-aliases"></a>

En esta sección, se muestra cómo enumerar los servicios compatibles con Herramientas de AWS para PowerShell, cómo mostrar el conjunto de cmdlets que proporciona para respaldar esos servicios y cómo buscar nombres de cmdlets alternativos (también denominados alias) para acceder a esos servicios. Herramientas de AWS para PowerShell 

## Detección de cmdlets
<a name="pstools-cmdlet-discovery"></a>

Todas las operaciones AWS de servicio (o APIs) se documentan en la Guía de referencia de la API de cada servicio. Por ejemplo, consulte la [Referencia de la API de IAM](https://docs.aws.amazon.com/IAM/latest/APIReference/). En la mayoría de los casos, existe una one-to-one correspondencia entre una API de AWS servicio y un AWS PowerShell cmdlet. Para obtener el nombre del cmdlet que corresponde al nombre de una API de AWS servicio, ejecute el AWS `Get-AWSCmdletName` cmdlet con el `-ApiOperation` parámetro y el nombre de la API de servicio. AWS Por ejemplo, para obtener todos los nombres de cmdlet posibles que se basen en cualquier API de `DescribeInstances` AWS servicio disponible, ejecute el siguiente comando:

```
PS > Get-AWSCmdletName -ApiOperation DescribeInstances

CmdletName        ServiceOperation    ServiceName                    CmdletNounPrefix
----------        ----------------    -----------                    ----------------
Get-EC2Instance   DescribeInstances   Amazon Elastic Compute Cloud   EC2
Get-GMLInstance   DescribeInstances   Amazon GameLift Service        GML
```

El parámetro `-ApiOperation` es el parámetro predeterminado, por lo que puede omitir el nombre del parámetro. El siguiente ejemplo es equivalente al anterior:

```
PS > Get-AWSCmdletName DescribeInstances
```

Si conoce los nombres de la API y del servicio, puede incluir el `-Service` parámetro junto con el prefijo del sustantivo del cmdlet o parte del nombre del servicio. AWS Por ejemplo, el prefijo sustantivo del cmdlet para Amazon es. EC2 `EC2` Para obtener el nombre del cmdlet que corresponde a la `DescribeInstances` API del EC2 servicio de Amazon, ejecuta uno de los siguientes comandos. Todos ellos dan como resultado la misma salida:

```
PS > Get-AWSCmdletName -ApiOperation DescribeInstances -Service EC2
PS > Get-AWSCmdletName -ApiOperation DescribeInstances -Service Compute
PS > Get-AWSCmdletName -ApiOperation DescribeInstances -Service "Compute Cloud"

CmdletName        ServiceOperation    ServiceName                    CmdletNounPrefix
----------        ----------------    -----------                    ----------------
Get-EC2Instance   DescribeInstances   Amazon Elastic Compute Cloud   EC2
```

Los valores de los parámetros en estos comandos no distinguen entre mayúsculas y minúsculas.

Si no conoce el nombre de la API del AWS servicio deseado o del AWS servicio, puede usar el `-ApiOperation` parámetro, junto con el patrón que debe coincidir y el `-MatchWithRegex` parámetro. Por ejemplo, para obtener todos los nombres de cmdlet disponibles que contienen `SecurityGroup`, ejecute el siguiente comando:

```
PS > Get-AWSCmdletName -ApiOperation SecurityGroup -MatchWithRegex

CmdletName                                    ServiceOperation                            ServiceName                        CmdletNounPrefix
----------                                    ----------------                            -----------                        ----------------
Approve-ECCacheSecurityGroupIngress           AuthorizeCacheSecurityGroupIngress          Amazon ElastiCache                 EC
Get-ECCacheSecurityGroup                      DescribeCacheSecurityGroups                 Amazon ElastiCache                 EC
New-ECCacheSecurityGroup                      CreateCacheSecurityGroup                    Amazon ElastiCache                 EC
Remove-ECCacheSecurityGroup                   DeleteCacheSecurityGroup                    Amazon ElastiCache                 EC
Revoke-ECCacheSecurityGroupIngress            RevokeCacheSecurityGroupIngress             Amazon ElastiCache                 EC
Add-EC2SecurityGroupToClientVpnTargetNetwrk   ApplySecurityGroupsToClientVpnTargetNetwork Amazon Elastic Compute Cloud       EC2
Get-EC2SecurityGroup                          DescribeSecurityGroups                      Amazon Elastic Compute Cloud       EC2
Get-EC2SecurityGroupReference                 DescribeSecurityGroupReferences             Amazon Elastic Compute Cloud       EC2
Get-EC2StaleSecurityGroup                     DescribeStaleSecurityGroups                 Amazon Elastic Compute Cloud       EC2
Grant-EC2SecurityGroupEgress                  AuthorizeSecurityGroupEgress                Amazon Elastic Compute Cloud       EC2
Grant-EC2SecurityGroupIngress                 AuthorizeSecurityGroupIngress               Amazon Elastic Compute Cloud       EC2
New-EC2SecurityGroup                          CreateSecurityGroup                         Amazon Elastic Compute Cloud       EC2
Remove-EC2SecurityGroup                       DeleteSecurityGroup                         Amazon Elastic Compute Cloud       EC2
Revoke-EC2SecurityGroupEgress                 RevokeSecurityGroupEgress                   Amazon Elastic Compute Cloud       EC2
Revoke-EC2SecurityGroupIngress                RevokeSecurityGroupIngress                  Amazon Elastic Compute Cloud       EC2
Update-EC2SecurityGroupRuleEgressDescription  UpdateSecurityGroupRuleDescriptionsEgress   Amazon Elastic Compute Cloud       EC2
Update-EC2SecurityGroupRuleIngressDescription UpdateSecurityGroupRuleDescriptionsIngress  Amazon Elastic Compute Cloud       EC2
Edit-EFSMountTargetSecurityGroup              ModifyMountTargetSecurityGroups             Amazon Elastic File System         EFS
Get-EFSMountTargetSecurityGroup               DescribeMountTargetSecurityGroups           Amazon Elastic File System         EFS
Join-ELBSecurityGroupToLoadBalancer           ApplySecurityGroupsToLoadBalancer           Elastic Load Balancing             ELB
Set-ELB2SecurityGroup                         SetSecurityGroups                           Elastic Load Balancing V2          ELB2
Enable-RDSDBSecurityGroupIngress              AuthorizeDBSecurityGroupIngress             Amazon Relational Database Service RDS
Get-RDSDBSecurityGroup                        DescribeDBSecurityGroups                    Amazon Relational Database Service RDS
New-RDSDBSecurityGroup                        CreateDBSecurityGroup                       Amazon Relational Database Service RDS
Remove-RDSDBSecurityGroup                     DeleteDBSecurityGroup                       Amazon Relational Database Service RDS
Revoke-RDSDBSecurityGroupIngress              RevokeDBSecurityGroupIngress                Amazon Relational Database Service RDS
Approve-RSClusterSecurityGroupIngress         AuthorizeClusterSecurityGroupIngress        Amazon Redshift                    RS
Get-RSClusterSecurityGroup                    DescribeClusterSecurityGroups               Amazon Redshift                    RS
New-RSClusterSecurityGroup                    CreateClusterSecurityGroup                  Amazon Redshift                    RS
Remove-RSClusterSecurityGroup                 DeleteClusterSecurityGroup                  Amazon Redshift                    RS
Revoke-RSClusterSecurityGroupIngress          RevokeClusterSecurityGroupIngress           Amazon Redshift                    RS
```

Si conoce el nombre del AWS servicio pero no la API del AWS servicio, incluya tanto el `-MatchWithRegex` parámetro como el `-Service` parámetro para limitar la búsqueda a un solo servicio. Por ejemplo, para obtener todos los nombres de los cmdlets que contienen `SecurityGroup` únicamente el EC2 servicio Amazon, ejecute el siguiente comando

```
PS > Get-AWSCmdletName -ApiOperation SecurityGroup -MatchWithRegex -Service EC2

CmdletName                                    ServiceOperation                            ServiceName                  CmdletNounPrefix
----------                                    ----------------                            -----------                  ----------------
Add-EC2SecurityGroupToClientVpnTargetNetwrk   ApplySecurityGroupsToClientVpnTargetNetwork Amazon Elastic Compute Cloud EC2
Get-EC2SecurityGroup                          DescribeSecurityGroups                      Amazon Elastic Compute Cloud EC2
Get-EC2SecurityGroupReference                 DescribeSecurityGroupReferences             Amazon Elastic Compute Cloud EC2
Get-EC2StaleSecurityGroup                     DescribeStaleSecurityGroups                 Amazon Elastic Compute Cloud EC2
Grant-EC2SecurityGroupEgress                  AuthorizeSecurityGroupEgress                Amazon Elastic Compute Cloud EC2
Grant-EC2SecurityGroupIngress                 AuthorizeSecurityGroupIngress               Amazon Elastic Compute Cloud EC2
New-EC2SecurityGroup                          CreateSecurityGroup                         Amazon Elastic Compute Cloud EC2
Remove-EC2SecurityGroup                       DeleteSecurityGroup                         Amazon Elastic Compute Cloud EC2
Revoke-EC2SecurityGroupEgress                 RevokeSecurityGroupEgress                   Amazon Elastic Compute Cloud EC2
Revoke-EC2SecurityGroupIngress                RevokeSecurityGroupIngress                  Amazon Elastic Compute Cloud EC2
Update-EC2SecurityGroupRuleEgressDescription  UpdateSecurityGroupRuleDescriptionsEgress   Amazon Elastic Compute Cloud EC2
Update-EC2SecurityGroupRuleIngressDescription UpdateSecurityGroupRuleDescriptionsIngress  Amazon Elastic Compute Cloud EC2
```

Si conoce el nombre del comando AWS Command Line Interface (AWS CLI), puede usar el `-AwsCliCommand` parámetro y el nombre del AWS CLI comando deseado para obtener el nombre del cmdlet que se basa en la misma API. Por ejemplo, para obtener el nombre del cmdlet que corresponde a la llamada de `authorize-security-group-ingress` AWS CLI comando en el EC2 servicio de Amazon, ejecute el siguiente comando:

```
PS > Get-AWSCmdletName -AwsCliCommand "aws ec2 authorize-security-group-ingress"

CmdletName                    ServiceOperation              ServiceName                  CmdletNounPrefix
----------                    ----------------              -----------                  ----------------
Grant-EC2SecurityGroupIngress AuthorizeSecurityGroupIngress Amazon Elastic Compute Cloud EC2
```

El `Get-AWSCmdletName` cmdlet solo necesita el nombre del AWS CLI comando suficiente para identificar el servicio y la API. AWS 

Para obtener una lista de todos los cmdlets de Tools for PowerShell Core, ejecute el PowerShell `Get-Command` cmdlet, como se muestra en el siguiente ejemplo.

```
PS > Get-Command -Module AWSPowerShell.NetCore
```

Puede ejecutar el mismo comando con `-Module AWSPowerShell` para ver los cmdlets en las AWS Tools for Windows PowerShell.

El cmdlet `Get-Command` genera la lista de cmdlets en orden alfabético. Tenga en cuenta que, de forma predeterminada, la lista se ordena por PowerShell verbo y no por sustantivo. PowerShell 

Para ordenar los resultados por servicio en su lugar, ejecute el siguiente comando:

```
PS > Get-Command -Module AWSPowerShell.NetCore | Sort-Object Noun,Verb
```

Para filtrar los cmdlets devueltos por el `Get-Command` cmdlet, canalice el resultado al cmdlet. PowerShell `Select-String` Por ejemplo, para ver el conjunto de cmdlets que funcionan con las regiones, ejecute el siguiente comando: AWS 

```
PS > Get-Command -Module AWSPowerShell.NetCore | Select-String region

Clear-DefaultAWSRegion
Copy-HSM2BackupToRegion
Get-AWSRegion
Get-DefaultAWSRegion
Get-EC2Region
Get-LSRegionList
Get-RDSSourceRegion
Set-DefaultAWSRegion
```

También puede encontrar cmdlets para un servicio específico filtrando por el prefijo de servicio de los nombres de cmdlet. Para ver la lista de prefijos de servicio disponibles, ejecute `Get-AWSPowerShellVersion -ListServiceVersionInfo`. El siguiente ejemplo devuelve cmdlets compatibles con el servicio Amazon CloudWatch Events.

```
PS > Get-Command -Module AWSPowerShell -Noun CWE*

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Add-CWEResourceTag                                 3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Disable-CWEEventSource                             3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Disable-CWERule                                    3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Enable-CWEEventSource                              3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Enable-CWERule                                     3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Get-CWEEventBus                                    3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Get-CWEEventBusList                                3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Get-CWEEventSource                                 3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Get-CWEEventSourceList                             3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Get-CWEPartnerEventSource                          3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Get-CWEPartnerEventSourceAccountList               3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Get-CWEPartnerEventSourceList                      3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Get-CWEResourceTag                                 3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Get-CWERule                                        3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Get-CWERuleDetail                                  3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Get-CWERuleNamesByTarget                           3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Get-CWETargetsByRule                               3.3.563.1  AWSPowerShell.NetCore
Cmdlet          New-CWEEventBus                                    3.3.563.1  AWSPowerShell.NetCore
Cmdlet          New-CWEPartnerEventSource                          3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Remove-CWEEventBus                                 3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Remove-CWEPartnerEventSource                       3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Remove-CWEPermission                               3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Remove-CWEResourceTag                              3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Remove-CWERule                                     3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Remove-CWETarget                                   3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Test-CWEEventPattern                               3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Write-CWEEvent                                     3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Write-CWEPartnerEvent                              3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Write-CWEPermission                                3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Write-CWERule                                      3.3.563.1  AWSPowerShell.NetCore
Cmdlet          Write-CWETarget                                    3.3.563.1  AWSPowerShell.NetCore
```

## Nomenclatura y alias de cmdlets
<a name="pstools-cmdlet-naming-aliases"></a>

Los cmdlets de cada servicio se basan en los métodos proporcionados por el AWS SDK Herramientas de AWS para PowerShell para el servicio. Sin embargo, debido a las convenciones PowerShell de nomenclatura obligatorias, el nombre de un cmdlet puede ser diferente del nombre de la llamada a la API o del método en el que se basa. Por ejemplo, el `Get-EC2Instance` cmdlet se basa en el método Amazon EC2`DescribeInstances`.

En algunos casos, el nombre de cmdlet puede ser similar a un nombre de método, pero realizar una función diferente. Por ejemplo, el método `GetObject` de Amazon S3 recupera un objeto de Amazon S3. Sin embargo, el cmdlet `Get-S3Object` devuelve *información* sobre un objeto de Amazon S3 en lugar del propio objeto.

```
PS > Get-S3Object -BucketName text-content -Key aws-tech-docs

ETag         : "df000002a0fe0000f3c000004EXAMPLE"
BucketName   : aws-tech-docs
Key          : javascript/frameset.js
LastModified : 6/13/2011 1:24:18 PM
Owner        : Amazon.S3.Model.Owner
Size         : 512
StorageClass : STANDARD
```

Para obtener un objeto S3 con Herramientas de AWS para PowerShell, ejecute el `Read-S3Object` cmdlet:

```
PS > Read-S3Object -BucketName text-content -Key text-object.txt -file c:\tmp\text-object-download.text

Mode          LastWriteTime            Length Name
----          -------------            ------ ----
-a---         11/5/2012   7:29 PM      20622  text-object-download.text
```

**nota**  
La ayuda sobre cmdlets de un AWS cmdlet proporciona el nombre de la API del AWS SDK en la que se basa el cmdlet.  
[Para obtener más información sobre los verbos estándar y sus significados, PowerShell consulte Verbos aprobados para comandos. PowerShell ](https://learn.microsoft.com/en-us/powershell/scripting/developer/cmdlet/approved-verbs-for-windows-powershell-commands)

Todos los AWS cmdlets que usan el `Remove` verbo (y el `Stop-EC2Instance` cmdlet cuando se agrega el `-Terminate` parámetro) solicitan confirmación antes de continuar. Para eludir la confirmación, añada el parámetro `-Force` a su comando.

**importante**  
AWS Los cmdlets no admiten el modificador. `-WhatIf`

### Alias
<a name="pstools-aliases"></a>

La configuración del Herramientas de AWS para PowerShell instala un archivo de alias que contiene los alias de muchos de los cmdlets. AWS Tal vez estos alias le resulten más intuitivos que los nombres de cmdlet. Por ejemplo, los nombres de los servicios y los nombres de los métodos AWS del SDK sustituyen a los PowerShell verbos y sustantivos en algunos alias. Un ejemplo es el alias `EC2-DescribeInstances`.

Otros alias usan verbos que, aunque no siguen las PowerShell convenciones estándar, pueden describir mejor la operación real. Por ejemplo, el archivo de alias asocia el alias `Get-S3Content` al cmdlet `Read-S3Object`.

```
PS > Set-Alias -Name Get-S3Content -Value Read-S3Object
```

El archivo de alias se encuentra en el directorio de instalación. Herramientas de AWS para PowerShell Para cargar los alias en su entorno, use la notación *dot-source* en el archivo. A continuación se muestra un ejemplo basado en Windows.

```
PS > . "C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowershell\AWSAliases.ps1"
```

Para un shell de Linux o macOS, podría ser así:

```
. ~/.local/share/powershell/Modules/AWSPowerShell.NetCore/3.3.563.1/AWSAliases.ps1
```

Para mostrar todos los Herramientas de AWS para PowerShell alias, ejecute el siguiente comando. Este comando usa el `?` alias del PowerShell `Where-Object` cmdlet y la `Source` propiedad para filtrar únicamente los alias que provienen del módulo. `AWSPowerShell.NetCore`

```
PS > Get-Alias | ? Source -like "AWSPowerShell.NetCore"

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           Add-ASInstances                                    3.3.343.0  AWSPowerShell
Alias           Add-CTTag                                          3.3.343.0  AWSPowerShell
Alias           Add-DPTags                                         3.3.343.0  AWSPowerShell
Alias           Add-DSIpRoutes                                     3.3.343.0  AWSPowerShell
Alias           Add-ELBTags                                        3.3.343.0  AWSPowerShell
Alias           Add-EMRTag                                         3.3.343.0  AWSPowerShell
Alias           Add-ESTag                                          3.3.343.0  AWSPowerShell
Alias           Add-MLTag                                          3.3.343.0  AWSPowerShell
Alias           Clear-AWSCredentials                               3.3.343.0  AWSPowerShell
Alias           Clear-AWSDefaults                                  3.3.343.0  AWSPowerShell
Alias           Dismount-ASInstances                               3.3.343.0  AWSPowerShell
Alias           Edit-EC2Hosts                                      3.3.343.0  AWSPowerShell
Alias           Edit-RSClusterIamRoles                             3.3.343.0  AWSPowerShell
Alias           Enable-ORGAllFeatures                              3.3.343.0  AWSPowerShell
Alias           Find-CTEvents                                      3.3.343.0  AWSPowerShell
Alias           Get-ASACases                                       3.3.343.0  AWSPowerShell
Alias           Get-ASAccountLimits                                3.3.343.0  AWSPowerShell
Alias           Get-ASACommunications                              3.3.343.0  AWSPowerShell
Alias           Get-ASAServices                                    3.3.343.0  AWSPowerShell
Alias           Get-ASASeverityLevels                              3.3.343.0  AWSPowerShell
Alias           Get-ASATrustedAdvisorCheckRefreshStatuses          3.3.343.0  AWSPowerShell
Alias           Get-ASATrustedAdvisorChecks                        3.3.343.0  AWSPowerShell
Alias           Get-ASATrustedAdvisorCheckSummaries                3.3.343.0  AWSPowerShell
Alias           Get-ASLifecycleHooks                               3.3.343.0  AWSPowerShell
Alias           Get-ASLifecycleHookTypes                           3.3.343.0  AWSPowerShell
Alias           Get-AWSCredentials                                 3.3.343.0  AWSPowerShell
Alias           Get-CDApplications                                 3.3.343.0  AWSPowerShell
Alias           Get-CDDeployments                                  3.3.343.0  AWSPowerShell
Alias           Get-CFCloudFrontOriginAccessIdentities             3.3.343.0  AWSPowerShell
Alias           Get-CFDistributions                                3.3.343.0  AWSPowerShell
Alias           Get-CFGConfigRules                                 3.3.343.0  AWSPowerShell
Alias           Get-CFGConfigurationRecorders                      3.3.343.0  AWSPowerShell
Alias           Get-CFGDeliveryChannels                            3.3.343.0  AWSPowerShell
Alias           Get-CFInvalidations                                3.3.343.0  AWSPowerShell
Alias           Get-CFNAccountLimits                               3.3.343.0  AWSPowerShell
Alias           Get-CFNStackEvents                                 3.3.343.0  AWSPowerShell

...
```

Para agregar sus propios alias a este archivo, puede que necesite aumentar el valor de la [variable PowerShell de `$MaximumAliasCount` preferencias a un valor superior](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_preference_variables?view=powershell-6) a 5500. El valor predeterminado es 4096 y puede elevarlo a un máximo de 32 768. Para ello, haga lo siguiente.

```
PS > $MaximumAliasCount = 32768
```

Para verificar que el cambio se ha realizado correctamente, escriba el nombre de la variable para que muestre su valor actual.

```
PS > $MaximumAliasCount
32768
```

# Canalización, salida e iteración en el Herramientas de AWS para PowerShell
<a name="pstools-pipelines"></a>

## Canalización
<a name="pstools-pipelining"></a>

PowerShell anima a los usuarios a conectar los cmdlets a [canalizaciones](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_pipelines) que dirijan la salida de un cmdlet a la entrada del siguiente. En el siguiente ejemplo, se muestra este comportamiento cuando se utiliza el. Herramientas de AWS para PowerShell El comando obtiene y, a continuación, detiene todas las EC2 instancias de Amazon en la región predeterminada actual.

```
PS > Get-EC2Instance | Stop-EC2Instance
```

## Salida del cmdlet
<a name="pstools-output"></a>

Para facilitar la canalización, es AWS SDK para .NET posible que algunos datos de las respuestas del se descarten de forma predeterminada. El resultado de los Herramientas de AWS para PowerShell cmdlets no se ha modificado para incluir las instancias de respuesta y resultado del servicio como `Note` propiedades del objeto de colección emitido. En cambio, en el caso de las llamadas que emiten una única colección como salida, la colección ahora se enumera en la canalización. PowerShell Esto significa que los datos de respuesta y resultados del SDK no pueden existir en la canalización porque no hay ningún objeto de recopilación al que puedan adjuntarse.

Aunque es probable que la mayoría de los usuarios no necesiten estos datos, pueden resultar útiles para fines de diagnóstico, ya que permiten ver exactamente lo que se envió y lo que se recibió de las llamadas de AWS servicio subyacentes que realizó el cmdlet. Los cmdlets pueden usar el `-Select *` parámetro y el argumento para devolver la respuesta completa del servicio.

Para ilustrar cómo se pueden devolver todos los datos de una respuesta, considere los siguientes ejemplos.

El primer ejemplo simplemente devuelve una lista de buckets de Amazon S3. Este es el comportamiento predeterminado.

```
PS > Get-S3Bucket

CreationDate           BucketName
------------           ----------
9/22/2023 10:54:35 PM  amzn-s3-demo-bucket1
9/22/2023 11:04:37 AM  amzn-s3-demo-bucket2
9/22/2023 12:54:34 PM  amzn-s3-demo-bucket3
```

El segundo ejemplo devuelve un objeto de AWS SDK para .NET respuesta. Como `-Select *` se especificó, el resultado incluye toda la respuesta de la API, que contiene el conjunto de cubos de la `Buckets` propiedad. En este ejemplo, el `Format-List` cmdlet no es estrictamente necesario, pero está presente para garantizar que se muestren todas las propiedades.

```
PS > Get-S3Bucket -Select * | Format-List

LoggedAt          : 10/1/2023 9:45:52 AM
Buckets           : {amzn-s3-demo-bucket1, amzn-s3-demo-bucket2,
                    amzn-s3-demo-bucket3}
Owner             : Amazon.S3.Model.Owner
ContinuationToken :
ResponseMetadata  : Amazon.Runtime.ResponseMetadata
ContentLength     : 0
HttpStatusCode    : OK
```

## Iteración a través de datos paginados
<a name="pstools-iteration"></a>

En las siguientes secciones se describen los distintos tipos de iteración posibles.

### Iteración automática
<a name="pstools-iteration-auto"></a>

En el caso de los servicios APIs que imponen un número máximo predeterminado de objetos devueltos para una llamada determinada o que admiten conjuntos de resultados paginables, la mayoría de los cmdlets implementan la iteración automática, lo que habilita el comportamiento predeterminado de "». page-to-completion En este escenario, un cmdlet realiza tantas llamadas como sea necesario en su nombre para devolver el conjunto de datos completo a la canalización.

En el siguiente ejemplo, que usa el [Get-S3Object](https://docs.aws.amazon.com/powershell/v5/reference/index.html?page=Get-S3Object.html&tocid=Get-S3Object)cmdlet, la `$result` variable contiene `S3Object` instancias para cada clave de un depósito llamado`amzn-s3-demo-bucket1`, lo que puede ser un conjunto de datos muy grande.

```
PS > $result = Get-S3Object -BucketName amzn-s3-demo-bucket1
```

En el siguiente ejemplo, se reduce el número de resultados de cada página durante la iteración automática del valor predeterminado de 1000 a 500. El ejemplo realiza el doble de llamadas de iteración automática porque solo se devuelve la mitad de los resultados por cada llamada.

```
PS > $result = Get-S3Object -BucketName amzn-s3-demo-bucket1 -MaxKey 500
```

### Deshabilita la iteración automática
<a name="pstools-iteration-disable-auto"></a>

Si desea que las Herramientas PowerShell devuelvan solo la primera página de datos, puede añadir el `-NoAutoIteration` parámetro para evitar que se devuelvan páginas de datos adicionales.

En el siguiente ejemplo, se utilizan los `-MaxKey` parámetros `-NoAutoIteration` y para limitar el número de `S3Object` instancias devueltas a no más de las 500 primeras que se encuentren en el depósito.

```
PS > $result = Get-S3Object -BucketName amzn-s3-demo-bucket1 -MaxKey 500 -NoAutoIteration
```

Para determinar si había más datos disponibles pero no se devolvieron, usa el `-Select *` parámetro y el argumento y comprueba si hay un valor en la siguiente propiedad del token.

En el ejemplo siguiente se muestra `$true` si hay más de 500 objetos en el depósito o si `$false` no.

```
PS > $result = Get-S3Object -BucketName amzn-s3-demo-bucket1 -MaxKey 500 -NoAutoIteration -Select *
PS > $null -eq $result.NextMarker
```

**nota**  
Los nombres de la siguiente propiedad de respuesta del token y del parámetro del cmdlet varían de un cmdlet a otro. Para obtener más información, consulte la documentación de ayuda de cada cmdlet.

### Iteración manual
<a name="pstools-iteration-manual"></a>

En el siguiente ejemplo, se devuelven todos los objetos S3 de un bucket mediante un bucle [do](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_do), que evalúa la condición después de cada iteración. El `do` bucle realiza iteraciones hasta que se `Get-S3Object` establece `$result.NextMarker` en`$null`, lo que indica que no quedan más datos paginados. La salida del bucle se asigna a la `$s3Objects` variable.

```
$s3Objects = do
{
    $splatParams = @{
        BucketName = 'amzn-s3-demo-bucket1'
        MaxKey = 500 
        Marker = $result.NextMarker 
        NoAutoIteration = $true
        Select = '*'
    }
    $result = Get-S3Object @splatParams
    
    $result.S3Objects
}
while ($null -ne $result.NextMarker)
```

En este ejemplo, se utilizan PowerShell [salpicaduras](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_splatting) para evitar que una línea de código larga se produzca al declarar los parámetros y argumentos en línea.

# Información adicional acerca de los usuarios y los roles
<a name="pstools-users-roles"></a>

Para ejecutar Herramientas para PowerShell comandos AWS, debe tener una combinación de usuarios, conjuntos de permisos y funciones de servicio que sea adecuada para sus tareas.

Los usuarios, conjuntos de permisos y roles de servicio específicos que cree, así como la forma en que los utilice, dependerán de sus necesidades. A continuación, se muestra información adicional sobre por qué se podrían usar y cómo crearlos.

## Usuarios y conjuntos de permisos
<a name="net-dg-users-roles-user"></a>

Aunque es posible utilizar una cuenta de usuario de IAM con credenciales de larga duración para acceder a los servicios de AWS , esta práctica ya no es recomendable y se debe evitar. Incluso durante el desarrollo, se recomienda crear usuarios y conjuntos de permisos AWS IAM Identity Center y utilizar credenciales temporales proporcionadas por una fuente de identidad.

Para el desarrollo, puede usar el usuario que ha creado o que le han proporcionado en [Autenticarse con AWS](creds-idc.md). Si tiene Consola de administración de AWS los permisos adecuados, también puede crear diferentes conjuntos de permisos con los privilegios mínimos para ese usuario o crear nuevos usuarios específicamente para proyectos de desarrollo, proporcionando conjuntos de permisos con los privilegios mínimos. El curso de acción que elija, si corresponde, depende de las circunstancias.

Para obtener más información sobre estos usuarios y conjuntos de permisos y sobre cómo crearlos, consulte [Autenticación y acceso](https://docs.aws.amazon.com/sdkref/latest/guide/access.html) en la *AWS SDKs Guía de referencia sobre herramientas* y [Introducción](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) en la *Guía del AWS IAM Identity Center usuario*.

## Roles de servicio
<a name="net-dg-users-roles-service-role"></a>

Puede configurar un rol de AWS servicio para acceder a AWS los servicios en nombre de los usuarios. Este tipo de acceso es adecuado si varias personas van a ejecutar tu aplicación de forma remota; por ejemplo, en una EC2 instancia de Amazon que hayas creado para este fin.

El proceso de creación de un rol de servicio varía en función de la situación, pero básicamente es el siguiente.

1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Seleccione **Roles** y, a continuación, **Crear rol**.

1. Elija el **AWS servicio**, busque y seleccione **EC2**(por ejemplo) y, a continuación, elija el caso de **EC2**uso (por ejemplo).

1. Elija **Siguiente** y seleccione las [políticas adecuadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) para los AWS servicios que utilizará su aplicación.
**aviso**  
***NO*** elija la **AdministratorAccess**política porque esa política permite permisos de lectura y escritura en casi todo el contenido de su cuenta.

1. Elija **Siguiente**. Ingrese un **nombre de rol**, una **descripción** y las etiquetas que desee.

   Encontrará información sobre las etiquetas en [Controlar el acceso mediante etiquetas de AWS recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) en la [Guía del usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/).

1. Seleccione **Crear rol**.

Puede encontrar información de alto nivel acerca de los roles de IAM en [Identidades de IAM (usuarios, grupos de usuarios y roles)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_iam-roles) en la [Guía del usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/). Encuentre información detallada sobre los roles en el tema [Roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html).

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