Uso del archivo de credenciales de AWS compartido - AWS SDK for .NET

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 del archivo de credenciales de AWS compartido

(Asegúrese de revisar las advertencias y las directrices de credenciales importantes).

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. Los otros AWS SDK pueden usar este archivo. También lo pueden utilizar la AWS CLI, las AWS Tools for Windows PowerShell y los kits de herramientas de AWS para Visual Studio, JetBrains y VS Code.

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.

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 en la Guía de referencia de herramientas y AWS SDK.

Para conocer las prácticas recomendadas de seguridad, use AWS IAM Identity Center, como se describe en Configuración de la autenticación de SDK.

Información general

El archivo de credenciales de AWS compartido se encuentra de forma predeterminada en el directorio .aws del directorio principal y se denomina credentials; es decir, ~/.aws/credentials (Linux o macOS) o %USERPROFILE%\.aws\credentials (Windows). Para obtener información sobre otras ubicaciones, consulte Ubicación de archivos compartidos en la Guía de referencia de herramientas y AWS SDK. Consulte también Acceso a las credenciales y perfiles en una aplicación.

El archivo de credenciales de AWS compartido es un archivo de texto sin formato y tiene un formato determinado. Para obtener información sobre el formato de los archivos de credenciales de AWS, consulte Formato de los archivos de credenciales en la Guía de referencia de herramientas y AWS SDK.

Los perfiles del archivo de credenciales de AWS compartido se pueden administrar de varias formas.

  • Con un editor de texto para crear y actualizar el archivo de credenciales de AWS compartido

  • Con el espacio de nombres Amazon.Runtime.CredentialManagement de la API de AWS SDK for .NET, como explicaremos más adelante en este tema

  • Con los comandos y procedimientos de AWS Tools for PowerShell y los kits de herramientas de AWS para Visual Studio, JetBrains y VS Code

  • Con comandos de AWS CLI; por ejemplo, aws configure set aws_access_key_id y aws configure set aws_secret_access_key

Ejemplos de administración de perfiles

En las siguientes secciones se muestran ejemplos de perfiles del archivo de credenciales de AWS compartido. 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.

El archivo de credenciales de AWS compartido casi siempre tendrá un perfil denominado default. Aquí es donde AWS SDK for .NET busca las credenciales cuando 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

En este ejemplo se muestra cómo crear un perfil y guardarlo en el archivo de credenciales de AWS compartido mediante programación. Se utilizan las siguientes clases del espacio de nombres Amazon.Runtime.CredentialManagement: CredentialProfileOptions, CredentialProfile y SharedCredentialsFile.

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

En este ejemplo se muestra cómo actualizar mediante programación el perfil que creado anteriormente. Se utilizan las siguientes clases del espacio de nombres Amazon.Runtime.CredentialManagement: CredentialProfile y SharedCredentialsFile. También se usa la clase RegionEndpoint del espacio de nombres Amazon.

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

La región de AWS también se puede establecer en otras ubicaciones y mediante otros métodos. Para obtener más información, consulte Configuración de la región de AWS.