Credenciales compartidas en las AWS Tools for PowerShell - AWS Tools for PowerShell

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.

Credenciales compartidas en las AWS Tools for PowerShell

Las Tools for Windows PowerShell son compatibles con el uso del archivo de credenciales compartidas de AWS de forma similar a la AWS CLI y otros SDK de AWS. Las Tools for Windows PowerShell ahora permiten la lectura y la escritura de los perfiles de credenciales basic, session y assume role en el archivo de credenciales de .NET y el archivo de credenciales compartidas de AWS. Esta funcionalidad se permite gracias a un nuevo espacio de nombres Amazon.Runtime.CredentialManagement.

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 Configurar la autenticación de herramientas.

Los nuevos tipos de perfiles y el acceso al archivo de credenciales compartidas de AWS se admiten a través de los siguientes parámetros, que se han añadido a los cmdlets relacionados con credenciales, Initialize-AWSDefaultConfiguration, New-AWSCredential y Set-AWSCredential. En los cmdlets del servicio, puede hacer referencia a sus perfiles añadiendo el parámetro común -ProfileName.

Uso de un rol de IAM con las AWS Tools for PowerShell

El archivo de credenciales compartidas de AWS facilita tipos adicionales de acceso. Por ejemplo, puede acceder a los recursos de AWS mediante un rol de IAM en lugar de las credenciales a largo plazo de un usuario de IAM. Para ello, debe tener un perfil estándar que tenga permisos para asumir el rol. Cuando se indica a las AWS Tools for PowerShell que usen un perfil que especificó un rol, las AWS Tools for PowerShell buscan el perfil identificado por el parámetro SourceProfile. Estas credenciales se utilizan para solicitar credenciales temporales para el rol especificado por el parámetro RoleArn. Opcionalmente, puede requerir el uso de un dispositivo de autenticación multifactor (MFA) o un código ExternalId cuando un tercero asuma el rol.

Nombre del parámetro Descripción

ExternalId

El ID externo definido por el usuario que se utilizará al asumir un rol, si así lo requiere el rol. Normalmente, esto solo es necesario cuando delega el acceso a su cuenta a un tercero. El tercero debe incluir el ID externo como parámetro al asumir el rol asignado. Para obtener más información, consulte Cómo utilizar un ID externo cuando se otorga acceso a los recursos de AWS a terceros en la Guía del usuario de IAM.

MfaSerial

El número de serie de MFA que se utilizará al asumir un rol, si así lo requiere el rol. Para obtener más información, consulte Uso de la autenticación multifactor (MFA) en AWS en la Guía del usuario de IAM.

RoleArn

El ARN del rol que se va a asumir al asumir las credenciales del rol. Para obtener más información acerca de la creación y el uso de roles, consulte Roles de IAM en la Guía del usuario de IAM.

SourceProfile

El nombre del perfil de origen que se va a usar al asumir las credenciales del rol. Las credenciales encontradas en este perfil se utilizan para asumir el rol especificado por el parámetro RoleArn.

Configuración de perfiles para asumir un rol

El siguiente es un ejemplo que muestra cómo configurar un perfil de origen que permite asumir directamente un rol de IAM.

El primer comando crea un perfil de origen al que hace referencia el perfil de rol. El segundo comando crea el perfil de rol que el rol debe asumir. El tercer comando muestra las credenciales del perfil de rol.

PS > Set-AWSCredential -StoreAs my_source_profile -AccessKey access_key_id -SecretKey secret_key PS > Set-AWSCredential -StoreAs my_role_profile -SourceProfile my_source_profile -RoleArn arn:aws:iam::123456789012:role/role-i-want-to-assume PS > Get-AWSCredential -ProfileName my_role_profile SourceCredentials RoleArn RoleSessionName Options ----------------- ------- --------------- ------- Amazon.Runtime.BasicAWSCredentials arn:aws:iam::123456789012:role/role-i-want-to-assume aws-dotnet-sdk-session-636238288466144357 Amazon.Runtime.AssumeRoleAWSCredentialsOptions

Para utilizar este perfil de rol con los cmdlets del servicio de Tools for Windows PowerShell, agregue el parámetro común -ProfileName al comando para hacer referencia al perfil de rol. En el ejemplo siguiente se utiliza el perfil de rol definido en el ejemplo anterior para tener acceso al cmdlet Get-S3Bucket. AWS Tools for PowerShell busca las credenciales en my_source_profile, usa esas credenciales para llamar a AssumeRole en nombre del usuario y, a continuación, utiliza esas credenciales de rol temporales para llamar a Get-S3Bucket.

PS > Get-S3Bucket -ProfileName my_role_profile CreationDate BucketName ------------ ---------- 2/27/2017 8:57:53 AM 4ba3578c-f88f-4d8b-b95f-92a8858dac58-bucket1 2/27/2017 10:44:37 AM 2091a504-66a9-4d69-8981-aaef812a02c3-bucket2

Uso de tipos de perfiles de credenciales

Para establecer un tipo de perfil de credenciales, debe conocer qué parámetros proporcionan la información requerida por el tipo de perfil.

Tipo de credenciales Parámetros que debe utilizar

Básica

Estas son las credenciales a largo plazo para un usuario de IAM.

-AccessKey

-SecretKey

Sesión:

Estas son las credenciales a corto plazo para un rol de IAM que se recupera de forma manual, por ejemplo, llamando directamente al cmdlet Use-STSRole.

-AccessKey

-SecretKey

-SessionToken

Rol:

Estas son credenciales a corto plazo para un rol de IAM que las AWS Tools for PowerShell recuperan para usted.

-SourceProfile

-RoleArn

opcional: -ExternalId

opcional: -MfaSerial

El parámetro común ProfilesLocation

Puede utilizar -ProfileLocation para escribir en el archivo de credenciales compartidas, así como para indicar a un cmdlet que lea el archivo de credenciales. La incorporación del parámetro -ProfileLocation permite controlar si Tools for Windows PowerShell utiliza el archivo de credenciales compartidas o el archivo de credenciales de .NET. En la siguiente tabla, se describe el funcionamiento del parámetro en Tools for Windows PowerShell.

Valor de ubicación del perfil Comportamiento de resolución del perfil

null (no establecido) o vacío

En primer lugar, busca en el archivo de credenciales de .NET un perfil con el nombre especificado. Si no se encuentra el perfil, busque en el archivo de credenciales compartidas de AWS en (user's home directory)\.aws\credentials.

La ruta a un archivo en el formato del archivo de credenciales compartidas de AWS

Busca solo en el archivo especificado el perfil con el nombre designado.

Guardar las credenciales en un archivo de credenciales

Para escribir y guardar credenciales en uno de los dos archivos de credenciales, ejecute el cmdlet Set-AWSCredential. El siguiente ejemplo le muestra cómo hacerlo. El primer comando utiliza Set-AWSCredential con -ProfileLocation para agregar claves de acceso y secretas a un perfil especificado por el parámetro -ProfileName. En la segunda línea, ejecute el cmdlet Get-Content para mostrar el contenido del archivo de credenciales.

PS > Set-AWSCredential -ProfileLocation C:\Users\auser\.aws\credentials -ProfileName basic_profile -AccessKey access_key2 -SecretKey secret_key2 PS > Get-Content C:\Users\auser\.aws\credentials aws_access_key_id=access_key2 aws_secret_access_key=secret_key2

Visualización de los perfiles de credenciales

Ejecute el cmdlet Get-AWSCredential y añada el parámetro -ListProfileDetail para devolver los tipos de archivos de credenciales y las ubicaciones, y una lista de nombres de perfil.

PS > Get-AWSCredential -ListProfileDetail ProfileName StoreTypeName ProfileLocation ----------- ------------- --------------- source_profile NetSDKCredentialsFile assume_role_profile NetSDKCredentialsFile basic_profile SharedCredentialsFile C:\Users\auser\.aws\credentials

Eliminar perfiles de credenciales

Para eliminar perfiles de credenciales, ejecute el nuevo cmdlet Remove-AWSCredentialProfile. Clear-awsCredential está obsoleto, pero aún está disponible por motivos de compatibilidad con versiones anteriores.

Notas importantes

Solo Initialize-AWSDefaultConfiguration, New-AWSCredential y Set-AWSCredential admiten los parámetros para perfiles de rol. No se pueden especificar los parámetros de rol directamente en un comando como Get-S3Bucket -SourceProfile source_profile_name -RoleArn arn:aws:iam::999999999999:role/role_name. Eso no funciona porque los cmdlets del servicio no admiten directamente los parámetros SourceProfile o RoleArn. En su lugar, debe almacenar esos parámetros en un perfil y, a continuación, llamar al comando con el parámetro -ProfileName.