

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

# Uso de credenciales heredadas
<a name="net-dg-legacy-creds"></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 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 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="net-dg-config-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 sus archivos de aplicación. Si lo hace, puede crear un riesgo de exposición accidental de sus credenciales si, por ejemplo, carga el proyecto en un repositorio público.
+ ***NO*** incluya archivos que contengan credenciales en el área del proyecto.
+ 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) para aplicaciones que se ejecutan en instancias de Amazon EC2.
+ Use [credenciales temporales](creds-assign.md#net-dg-config-creds-assign-role) o variables de entorno de aplicaciones disponibles para los usuarios ajenos a su organización.

**Topics**
+ [Advertencias y directrices importantes para las credenciales](#net-dg-config-creds-warnings-and-guidelines)
+ [Uso del archivo de AWS credenciales compartido](creds-file.md)
+ [Uso de SDK Store (solo Windows)](sdk-store.md)

# Uso del archivo de AWS credenciales compartido
<a name="creds-file"></a>

(Asegúrese de revisar las [advertencias y las directrices de credenciales importantes](net-dg-legacy-creds.md#net-dg-config-creds-warnings-and-guidelines)).

Una forma de proporcionar credenciales para las aplicaciones consiste en crear perfiles en el *archivo de credenciales de AWS compartido* y, a continuación, almacenar las credenciales en esos perfiles. Este archivo puede ser utilizado por el otro AWS SDKs. También lo pueden usar los [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) AWS kits de herramientas de [Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/) y [VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/). [AWS Tools for Windows PowerShell[JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/)](https://docs.aws.amazon.com/powershell/latest/userguide/)

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

## Información general
<a name="creds-file-general-info"></a>

De forma predeterminada, el archivo de AWS credenciales compartidas se encuentra en el `.aws` directorio de su directorio principal y tiene un nombre`credentials`, es decir, `~/.aws/credentials` (Linux o macOS) o `%USERPROFILE%\.aws\credentials` (Windows). Para obtener información sobre ubicaciones alternativas, consulte [Ubicación de los archivos compartidos](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html) en la *[Guía de referencia de herramientas AWS SDKs y herramientas](https://docs.aws.amazon.com/sdkref/latest/guide/overview.html)*. Consulte también [Acceso a las credenciales y perfiles en una aplicación](creds-locate.md).

El archivo de AWS credenciales compartidas es un archivo de texto sin formato y tiene un formato determinado. Para obtener información sobre el formato de los archivos de AWS credenciales, consulte [Formato del archivo de credenciales](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-creds) en la *Guía de referencia de AWS SDKs and Tools*.

Puede administrar los perfiles del archivo de AWS credenciales compartido de varias maneras.
+ Utilice cualquier editor de texto para crear y actualizar el archivo de AWS credenciales compartidas.
+ Utilice [Amazon.Runtime. CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html)espacio de nombres de la AWS SDK para .NET API, como se muestra más adelante en este tema.
+ [Utilice comandos y procedimientos para los [Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.html)AWS kits de herramientas de [Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/credentials.html) y VS [JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/setup-credentials.html)Code.](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-credentials.html)
+ Con comandos de [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html); por ejemplo, `aws configure set aws_access_key_id` y `aws configure set aws_secret_access_key`

## Ejemplos de administración de perfiles
<a name="creds-file-examples"></a>

En las siguientes secciones se muestran ejemplos de perfiles en el archivo de AWS credenciales compartidas. Algunos de los ejemplos muestran el resultado, que se puede obtener mediante cualquiera de los métodos de administración de credenciales mencionados anteriormente. En otros ejemplos se muestra cómo utilizar un método en particular.

### El perfil predeterminado.
<a name="creds-file-default"></a>

El archivo de AWS credenciales compartidas casi siempre tendrá un perfil denominado *default*. Aquí es donde AWS SDK para .NET busca las credenciales si no hay otros perfiles definidos.

El perfil `[default]` suele parecerse a lo siguiente.

```
[default]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
```

### Creación de un perfil mediante programación
<a name="creds-file-create-programmatically"></a>

En este ejemplo, se muestra cómo crear un perfil y guardarlo en el archivo de AWS credenciales compartidas mediante programación. [Utiliza las siguientes clases de Amazon.Runtime. CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html)espacio de nombres: [CredentialProfileOptions](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TCredentialProfileOptions.html), y. [CredentialProfile[SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSharedCredentialsFile.html)](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TCredentialProfile.html)

```
using Amazon.Runtime.CredentialManagement;
...

// Do not include credentials in your code.
WriteProfile("my_new_profile", SecurelyStoredKeyID, SecurelyStoredSecretAccessKey);
...

void WriteProfile(string profileName, string keyId, string secret)
{
    Console.WriteLine($"Create the [{profileName}] profile...");
    var options = new CredentialProfileOptions
    {
        AccessKey = keyId,
        SecretKey = secret
    };
    var profile = new CredentialProfile(profileName, options);
    var sharedFile = new SharedCredentialsFile();
    sharedFile.RegisterProfile(profile);
}
```

**aviso**  
Por lo general, un código como este no debería estar en la aplicación. Si lo incluye en su aplicación, tome las debidas precauciones para garantizar que las claves de texto sin formato no puedan verse en el código, en la red o incluso en la memoria del ordenador.

Este es el perfil que se ha creado en este ejemplo.

```
[my_new_profile]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
```

### Actualización de un perfil existente mediante programación
<a name="creds-file-update-programmatically"></a>

En este ejemplo se muestra cómo actualizar mediante programación el perfil que creado anteriormente. [Utiliza las siguientes clases de Amazon.Runtime. CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html)espacio de nombres: y. [CredentialProfile[SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSharedCredentialsFile.html)](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TCredentialProfile.html) También usa la [RegionEndpoint](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TRegionEndpoint.html)clase del espacio de nombres [Amazon](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/N.html).

```
using Amazon.Runtime.CredentialManagement;
...

AddRegion("my_new_profile", RegionEndpoint.USWest2);
...

void AddRegion(string profileName, RegionEndpoint region)
{
    var sharedFile = new SharedCredentialsFile();
    CredentialProfile profile;
    if (sharedFile.TryGetProfile(profileName, out profile))
    {
        profile.Region = region;
        sharedFile.RegisterProfile(profile);
    }
}
```

A continuación se muestra el perfil actualizado.

```
[my_new_profile]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
region=us-west-2
```

**nota**  
También puede configurar la AWS región en otras ubicaciones y mediante otros métodos. Para obtener más información, consulte [Configuración de AWS la región para AWS SDK para .NETAWS Región](net-dg-region-selection.md).

# Uso de SDK Store (solo Windows)
<a name="sdk-store"></a>

(Asegúrese de revisar las [advertencias y directrices importantes](net-dg-legacy-creds.md#net-dg-config-creds-warnings-and-guidelines)).

En Windows, la *tienda de SDK* es otro lugar para crear perfiles y almacenar credenciales cifradas para AWS SDK para .NET la aplicación. Está en `%USERPROFILE%\AppData\Local\AWSToolkit\RegisteredAccounts.json`. Puede usar SDK Store durante el desarrollo como alternativa al [archivo de credenciales de AWS compartido](creds-file.md).

**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, consulta [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).

## Información general
<a name="sdk-store-general-info"></a>

SDK Store reporta las siguientes ventajas:
+ Las credenciales almacenadas en SDK Store se cifran, y SDK Store reside en el directorio de inicio del usuario. Esto limita el riesgo de exposición accidental de sus credenciales.
+ SDK Store también proporciona credenciales a [AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/) y a [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/AWSToolkitVS/latest/UserGuide/).

Los perfiles de SDK Store son específicos de un usuario determinado en un host concreto. No puede copiarlos en otros hosts ni en otros usuarios. Esto quiere decir que los perfiles de SDK Store que estén en su equipo de desarrollo no se pueden reutilizar en otros hosts o equipos de desarrollador. Esto significa también que no se pueden usar perfiles de SDK Store en aplicaciones de producción.

Los perfiles de SDK Store se pueden administrar de varias maneras:
+ Con la interfaz de usuario gráfica (GUI) del [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/credentials.html)
+ Utilice [Amazon.Runtime. CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html)espacio de nombres de la AWS SDK para .NET API, como se muestra más adelante en este tema.
+ Con comandos de [AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.html); por ejemplo, `Set-AWSCredential` y `Remove-AWSCredentialProfile`

## Ejemplos de administración de perfiles
<a name="sdk-store-examples"></a>

En los siguientes ejemplos se muestra cómo crear y actualizar un perfil mediante programación en SDK Store.

### Creación de un perfil mediante programación
<a name="sdk-store-create-programmatically"></a>

En este ejemplo se muestra cómo crear un perfil y guardarlo en SDK Store mediante programación. [Utiliza las siguientes clases de Amazon.Runtime. ](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html)CredentialManagement[namespace: [CredentialProfileOptions](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TCredentialProfileOptions.html), [CredentialProfile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TCredentialProfile.html)y Net File. SDKCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TNetSDKCredentialsFile.html)

```
using Amazon.Runtime.CredentialManagement;
...

// Do not include credentials in your code.
WriteProfile("my_new_profile", SecurelyStoredKeyID, SecurelyStoredSecretAccessKey);
...

void WriteProfile(string profileName, string keyId, string secret)
{
    Console.WriteLine($"Create the [{profileName}] profile...");
    var options = new CredentialProfileOptions
    {
        AccessKey = keyId,
        SecretKey = secret
    };
    var profile = new CredentialProfile(profileName, options);
    var netSdkStore = new NetSDKCredentialsFile();
    netSdkStore.RegisterProfile(profile);
}
```

**aviso**  
Por lo general, un código como este no debería estar en la aplicación. Si lo está, tome las debidas precauciones para garantizar que las claves de texto sin formato no puedan verse en el código, en la red o incluso en la memoria del ordenador.

Este es el perfil que se ha creado en este ejemplo.

```
"[generated GUID]" : {
    "AWSAccessKey" : "01000000D08...[etc., encrypted access key ID]",
    "AWSSecretKey" : "01000000D08...[etc., encrypted secret access key]",
    "ProfileType"  : "AWS",
    "DisplayName"  : "my_new_profile",
}
```

### Actualización de un perfil existente mediante programación
<a name="sdk-store-update-programmatically"></a>

En este ejemplo se muestra cómo actualizar mediante programación el perfil que creado anteriormente. [Utiliza las siguientes clases de Amazon.Runtime. ](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html)CredentialManagement[namespace: [CredentialProfile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TCredentialProfile.html)y Net File. SDKCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TNetSDKCredentialsFile.html) También usa la [RegionEndpoint](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TRegionEndpoint.html)clase del espacio de nombres [Amazon](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/N.html).

```
using Amazon.Runtime.CredentialManagement;
...

AddRegion("my_new_profile", RegionEndpoint.USWest2);
...

void AddRegion(string profileName, RegionEndpoint region)
{
    var netSdkStore = new NetSDKCredentialsFile();
    CredentialProfile profile;
    if (netSdkStore.TryGetProfile(profileName, out profile))
    {
        profile.Region = region;
        netSdkStore.RegisterProfile(profile);
    }
}
```

A continuación se muestra el perfil actualizado.

```
"[generated GUID]" : {
    "AWSAccessKey" : "01000000D08...[etc., encrypted access key ID]",
    "AWSSecretKey" : "01000000D08...[etc., encrypted secret access key]",
    "ProfileType"  : "AWS",
    "DisplayName"  : "my_new_profile",
    "Region"       : "us-west-2"
}
```

**nota**  
También puede configurar la AWS región en otras ubicaciones y mediante otros métodos. Para obtener más información, consulte [Configuración de AWS la región para AWS SDK para .NETAWS Región](net-dg-region-selection.md).