Acceso a las credenciales y perfiles en una aplicación - 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.

Acceso a las credenciales y perfiles en una aplicación

El método preferido para usar credenciales es dejar que AWS SDK for .NET las encuentre y recupere en su nombre, tal y como se describe en Resolución de credencial y perfil.

Con todo, también puede configurar la aplicación para recuperar perfiles y credenciales de forma activa y luego usar explícitamente dichas credenciales al crear un cliente de servicio de AWS.

Para recuperar perfiles y credenciales de forma activa, utilice las clases del espacio de nombres Amazon.Runtime.CredentialManagement.

  • Para encontrar un perfil en un archivo que usa el formato de archivo de credenciales de AWS (ya sea el archivo de credenciales de AWS compartido en su ubicación predeterminada o un archivo de credenciales personalizado), utilice la clase SharedCredentialsFile. En aras de una mayor brevedad, en este texto los archivos con este formato a veces se denominarán simplemente archivos de credenciales.

  • Para encontrar un perfil en SDK Store, use la clase NetSDKCredentialsFile.

  • Para buscar tanto en un archivo de credenciales como en SDK Store, según la configuración de una propiedad de clase, use la clase CredentialProfileStoreChain.

    Esta clase se puede usar para encontrar perfiles. También se puede usar para solicitar credenciales de AWS directamente en lugar de usar la clase AWSCredentialsFactory (se describe a continuación).

  • Para recuperar o crear varios tipos de credenciales de un perfil, utilice la clase AWSCredentialsFactory.

En las siguientes secciones se muestran ejemplos de estas clases.

Ejemplos de la clase CredentialProfileStoreChain

Se pueden obtener credenciales o perfiles de la clase CredentialProfileStoreChain con los métodos TryGetAWSCredentials o TryGetProfile. La propiedad ProfilesLocation de la clase determina el comportamiento de los métodos del siguiente modo:

  • Si ProfilesLocation es nula o está vacía, busque en SDK Store si la plataforma la admite y, a continuación, busque el archivo de credenciales de AWS compartido en la ubicación predeterminada.

  • Si la propiedad ProfilesLocation contiene un valor, busque en el archivo de credenciales especificado en la propiedad.

Obtención de credenciales desde SDK Store o un archivo de credenciales de AWS compartido

En este ejemplo se muestra cómo obtener credenciales mediante la clase CredentialProfileStoreChain y cómo usarlas a continuación para crear un objeto AmazonS3Client. Las credenciales pueden proceder de SDK Store o del archivo de credenciales de AWS compartido en la ubicación predeterminada.

En este ejemplo también se usa la clase Amazon.Runtime.AWSCredentials.

var chain = new CredentialProfileStoreChain(); AWSCredentials awsCredentials; if (chain.TryGetAWSCredentials("some_profile", out awsCredentials)) { // Use awsCredentials to create an Amazon S3 service client using (var client = new AmazonS3Client(awsCredentials)) { var response = await client.ListBucketsAsync(); Console.WriteLine($"Number of buckets: {response.Buckets.Count}"); } }

Obtención de un perfil desde SDK Store o un archivo de credenciales de AWS compartido

En este ejemplo se muestra cómo obtener un perfil mediante la clase CredentialProfileStoreChain. Las credenciales pueden proceder de SDK Store o del archivo de credenciales de AWS compartido en la ubicación predeterminada.

En este ejemplo también se usa la clase CredentialProfile.

var chain = new CredentialProfileStoreChain(); CredentialProfile basicProfile; if (chain.TryGetProfile("basic_profile", out basicProfile)) { // Use basicProfile }

Obtención de credenciales desde un archivo de credenciales personalizado

En este ejemplo se muestra cómo obtener credenciales mediante la clase CredentialProfileStoreChain. Las credenciales proceden de un archivo que usa el formato de archivo de credenciales de AWS, pero que se encuentra en otra ubicación.

En este ejemplo también se usa la clase Amazon.Runtime.AWSCredentials.

var chain = new CredentialProfileStoreChain("c:\\Users\\sdkuser\\customCredentialsFile.ini"); AWSCredentials awsCredentials; if (chain.TryGetAWSCredentials("basic_profile", out awsCredentials)) { // Use awsCredentials to create an AWS service client }

Ejemplos de las clases SharedCredentialsFile y AWSCredentialsFactory

Creación de un objeto AmazonS3Client mediante la clase SharedCredentialsFile

En este ejemplo se muestra cómo encontrar un perfil en el archivo de credenciales de AWS compartido, cómo crear credenciales de AWS desde el perfil y, a continuación, cómo utilizar esas credenciales para crear un objeto AmazonS3Client. En el ejemplo se usa la clase SharedCredentialsFile.

En este ejemplo se usan también las clases CredentialProfile y Amazon.Runtime.AWSCredentials.

CredentialProfile basicProfile; AWSCredentials awsCredentials; var sharedFile = new SharedCredentialsFile(); if (sharedFile.TryGetProfile("basic_profile", out basicProfile) && AWSCredentialsFactory.TryGetAWSCredentials(basicProfile, sharedFile, out awsCredentials)) { // use awsCredentials to create an Amazon S3 service client using (var client = new AmazonS3Client(awsCredentials, basicProfile.Region)) { var response = await client.ListBucketsAsync(); Console.WriteLine($"Number of buckets: {response.Buckets.Count}"); } }
nota

La clase NetSdkCredentialsFile se puede usar exactamente de la misma manera, salvo que se crearía una instancia de un nuevo objeto NetSdkCredentialsFile y no de un objeto SharedCredentialsFile.