

¡Se AWS SDK para .NET ha publicado la versión 4 (V4) 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/sdk-for-net/v4/developer-guide/net-dg-v4.html).

 [https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.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.

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

 AWS SDK para .NET Busca las credenciales en un orden determinado y utiliza el primer conjunto disponible para la aplicación actual.

**Orden de búsqueda de credenciales**

1. Credenciales que se establecen de forma explícita en el cliente AWS de servicio, tal y como se describe en[Acceso a las credenciales y perfiles en una aplicación](creds-locate.md).
**nota**  
Este tema está en la sección [Consideraciones especiales](special-considerations.md) porque no es el método preferido para especificar credenciales.

1. [Sesión AWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSessionAWSCredentials.html) que se crea a partir de las variables de `AWS_SESSION_TOKEN` entorno y `AWS_ACCESS_KEY_ID``AWS_SECRET_ACCESS_KEY`, si las tres variables tienen un valor.

1.  [Básicas AWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TBasicAWSCredentials.html) que se crean a partir de las variables de `AWS_SECRET_ACCESS_KEY` entorno `AWS_ACCESS_KEY_ID` y, si ambas variables tienen un valor.

1. [AssumeRoleWithWebIdentityCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAssumeRoleWithWebIdentityCredentials.html)que se crean a partir de las variables de `AWS_ROLE_ARN` entorno `AWS_WEB_IDENTITY_TOKEN_FILE` y, si ambas variables tienen un valor.

1. Un perfil de credenciales con el nombre especificado por un valor en [AWSConfigs. AWSProfile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigs.html#properties)Nombre.

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

1. El perfil de credenciales `[default]`.

1. El [proveedor de credenciales del contenedor](https://docs.aws.amazon.com/sdkref/latest/guide/feature-container-credentials.html).

1. Metadatos de EC2 instancias de Amazon.

Si tu aplicación se ejecuta en una EC2 instancia de Amazon, por ejemplo, en un entorno de producción, utiliza un rol de IAM tal y como se describe en[Concesión de acceso mediante un rol de IAM](net-dg-hosm.md). De lo contrario, por ejemplo, en las pruebas preliminares, guarda tus credenciales en un archivo que utilice el formato de archivo de AWS credenciales al que tiene acceso tu aplicación web en el servidor.

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

## Resolución de perfiles
<a name="net-dg-config-creds-profile-resolution"></a>

Existen dos mecanismos de almacenamiento diferentes para las credenciales, por lo que es importante entender cómo configurarlos AWS SDK para .NET para utilizarlos. El [AWSConfigs. AWSProfilesLa propiedad de ubicación](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigs.html) controla la forma en AWS SDK para .NET que busca los perfiles de credenciales.


****  

| AWSProfilesLocation | Comportamiento de resolución de perfiles | 
| --- | --- | 
|  null (no establecido) o vacío  |  Busque en SDK Store si la plataforma lo admite y, a continuación, busque el archivo de credenciales de AWS compartido en la [ubicación predeterminada](creds-file.md). Si el perfil no está en ninguna de esas ubicaciones, busque en `~/.aws/config` (Linux o macOS) o en `%USERPROFILE%\.aws\config` (Windows).  | 
|  La ruta a un archivo en el formato de archivo de AWS credenciales  |  Busque *solo* en el archivo especificado el perfil con el nombre indicado.  | 

## Uso de credenciales de cuentas de usuario federado
<a name="net-dg-config-creds-saml"></a>

Las aplicaciones que lo utilizan AWS SDK para .NET ([AWSSDK.Core](https://www.nuget.org/packages/AWSSDK.Core/) versión 3.1.6.0 y posteriores) pueden usar cuentas de usuario federadas a través de los Servicios de federación de Active Directory (AD FS) para acceder a los AWS servicios mediante el lenguaje de marcado de aserciones de seguridad (SAML).

La compatibilidad del acceso federado significa que los usuarios pueden autenticarse mediante su Active Directory. Las credenciales temporales se conceden al usuario automáticamente. Estas credenciales temporales, que son válidas durante una hora, se utilizan cuando la aplicación invoca los servicios. AWS El SDK gestiona la administración de las credenciales temporales. Para las cuentas de usuario unidas a un dominio, si su aplicación realiza una llamada, pero las credenciales han caducado, el usuario vuelve a autenticarse automáticamente y se conceden credenciales actualizadas (En el caso de las cuentas que no están unidas a un dominio, se le pide al usuario que introduzca las credenciales antes de volver a autenticarse).

Para utilizar este soporte en su aplicación.NET, primero debe configurar el perfil de rol mediante un PowerShell cmdlet. Para saber cómo, consulte la [documentación de AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/saml-pst.html).

Después de configurar el perfil del rol, haga referencia al perfil en la aplicación. [Existen varias formas de hacerlo, una de las cuales es mediante el. AWSConfigs AWSProfileAsigne un nombre](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigs.html) a la propiedad del mismo modo que lo haría con otros perfiles de credenciales.

[El *AWS Security Token Service*ensamblaje (AWSSDK. SecurityToken](https://www.nuget.org/packages/AWSSDK.SecurityToken/)) proporciona el soporte de SAML para obtener AWS credenciales. Para usar credenciales de cuentas de usuario federado, asegúrese de que este ensamblado está disponible para la aplicación.

## Especificación de roles o credenciales temporales
<a name="net-dg-config-creds-assign-role"></a>

En el caso de las aplicaciones que se ejecutan en EC2 instancias de Amazon, la forma más segura de gestionar las credenciales es utilizar funciones de IAM, tal y como se describe en[Concesión de acceso mediante un rol de IAM](net-dg-hosm.md).

Para los escenarios de aplicación en los que el software ejecutable está disponible para los usuarios externos a su organización, recomendamos que diseñe el software para usar *credenciales de seguridad temporales*. Además de proporcionar un acceso restringido a AWS los recursos, estas credenciales tienen la ventaja de caducar después de un período de tiempo específico. Para obtener más información sobre cómo usar credenciales de seguridad temporales, consulte lo siguiente:
+  [Credenciales de seguridad temporales](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) 
+  [Grupos de identidades de Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html)

## Uso de credenciales de proxy
<a name="net-dg-config-creds-proxy"></a>

Si su software se comunica con AWS él a través de un proxy, puede especificar las credenciales del proxy utilizando la `ProxyCredentials` propiedad de la `Config` clase de un servicio. La clase `Config` de un servicio suele formar parte del espacio de nombres principal del servicio. Los ejemplos incluyen los siguientes: [AmazonCloudDirectoryConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/CloudDirectory/TCloudDirectoryConfig.html)en [Amazon. ](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/CloudDirectory/NCloudDirectory.html)CloudDirectory[namespace y [AmazonGameLiftConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/GameLift/TGameLiftConfig.html)en Amazon. GameLift](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/GameLift/NGameLift.html)espacio de nombres.

Para [Amazon S3](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html), por ejemplo, puede utilizar un código similar al siguiente, donde `SecurelyStoredUserName` y `SecurelyStoredPassword` son el nombre de usuario y la contraseña del proxy especificados en un [NetworkCredential](https://learn.microsoft.com/en-us/dotnet/api/system.net.networkcredential)objeto.

```
AmazonS3Config config = new AmazonS3Config();
config.ProxyCredentials = new NetworkCredential(SecurelyStoredUserName, SecurelyStoredPassword);
```

**nota**  
Las versiones anteriores del SDK usaban `ProxyUsername` y `ProxyPassword`, pero estas propiedades están obsoletas.