Se ha publicado la versión 5 (V5) de Herramientas de AWS para PowerShell.
Para empezar a utilizar la nueva versión de Tools para PowerShell, consulte la Guía del usuario de Herramientas de AWS para PowerShell (V5), especialmente el tema sobre la Migración a la V5.
Credenciales compartidas en las Herramientas de AWS para 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 Herramientas de AWS para 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 Herramientas de AWS para PowerShell que usen un perfil que especificó un rol, las Herramientas de AWS para 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 |
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 -StoreAsmy_source_profile-AccessKeyaccess_key_id-SecretKeysecret_keyPS >Set-AWSCredential -StoreAsmy_role_profile-SourceProfilemy_source_profile-RoleArnarn:aws:iam::123456789012:role/role-i-want-to-assumePS >Get-AWSCredential -ProfileNamemy_role_profileSourceCredentials 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. Herramientas de AWS para 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_profileCreationDate 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 |
|---|---|
|
Basic Estas son las credenciales a largo plazo para un usuario de IAM. |
|
|
Sesión de: 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. |
|
|
Rol: Estas son credenciales a corto plazo para un rol de IAM que las Herramientas de AWS para PowerShell recuperan para usted. |
Opcional: Opcional: |
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 |
|
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
PS >Set-AWSCredential -ProfileLocation C:\Users\auser\.aws\credentials -ProfileName basic_profile -AccessKey access_key2 -SecretKey secret_key2PS >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 -ListProfileDetailProfileName 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 . Eso no funciona porque los cmdlets del servicio no admiten directamente los parámetros -SourceProfile
source_profile_name -RoleArn
arn:aws:iam::999999999999:role/role_nameSourceProfile 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.