View a markdown version of this page

Compartido AWS archivo de credenciales - AWS SDK para .NET (V4)

¡Ya está disponible la AWS SDK para .NET versión 4 (V4) del!

Para obtener información sobre los cambios importantes y la migración de sus aplicaciones, consulte el tema sobre https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html migración.

Orange button with text "Click here for details".

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.

Compartido AWS archivo de credenciales

(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 demás AWS SDK pueden usar este archivo. También lo pueden usar los AWS CLI AWS kits de herramientas de Visual Studio y VS JetBrains Code. AWS Tools for Windows PowerShell

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 mejores prácticas de seguridad AWS IAM Identity Center, utilícelo tal como se describe enAutenticando con AWS.

Información general

De forma predeterminada, el archivo de AWS credenciales compartidas se encuentra en el .aws directorio de tu directorio principal y se denomina credentials ~/.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.

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

Puede administrar los perfiles del archivo de AWS credenciales compartidas de varias maneras.

Ejemplos de administración de perfiles

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.

El archivo de AWS credenciales compartidas casi siempre tendrá un perfil denominado predeterminado. 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

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 del espacio de Amazon.Runtime.CredentialManagement nombres: CredentialProfileOptions, y CredentialProfile. 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. Utiliza las siguientes clases del espacio de Amazon.Runtime.CredentialManagement nombres: CredentialProfile y. SharedCredentialsFile También usa la RegionEndpoint clase del espacio de nombres de 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

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

Cómo usa su aplicación este archivo

  • Resolución automática: el SDK lee automáticamente los perfiles de este archivo. Establezca un nombre de perfil mediante AWSConfigs.AWSProfileName la variable de AWS_PROFILE entorno o confíe en el [default] perfil. Para obtener más información, consulte Resolución de credencial y perfil.

  • Acceso explícito en el código: carga un perfil específico mediante programación y transfiere sus credenciales a un cliente de servicio. Para obtener más información, consulte Cree un AmazonS3Client mediante la clase SharedCredentialsFile.