Informations d'identification partagées dans AWS Tools for PowerShell - AWS Tools for PowerShell

Informations d'identification partagées dans AWS Tools for PowerShell

Les Tools for Windows PowerShell prennent en charge l'utilisation du fichier d'informations d'identification partagées AWS, de la même manière que l'AWS CLI et les autres kits SDK AWS. Les Tools for Windows PowerShell prennent désormais en charge la lecture et l'écriture de profils d'informations d'identification basic, session et assume role dans le fichier d'informations d'identification .NET et le fichier d'informations d'identification partagées AWS. Cette fonctionnalité est activée par un nouvel espace de noms Amazon.Runtime.CredentialManagement.

Les nouveaux types de profil et l'accès au fichier d'informations d'identification partagées AWS sont pris en charge par les paramètres suivants, qui ont été ajoutés aux applets de commande relatives aux informations d'identification, Initialize-AWSDefaultConfiguration, New-AWSCredential et Set-AWSCredential. Dans les applets de commande des services, vous pouvez faire référence à vos profils en ajoutant le paramètre commun, -ProfileName.

Utilisation d'un rôle IAM avec AWS Tools for PowerShell

Le fichier d'informations d'identification partagées AWS permet d'autres types d'accès. Par exemple, vous pouvez accéder à vos ressources AWS en utilisant un rôle IAM au lieu des informations d'identification à long terme d'un utilisateur IAM. Pour ce faire, vous devez posséder un profil standard disposant des autorisations nécessaires pour assumer le rôle. Lorsque vous demandez aux AWS Tools for PowerShell d'utiliser un profil qui a spécifié un rôle, les AWS Tools for PowerShell recherchent le profil identifié par le biais du paramètre SourceProfile. Ces informations d'identification sont utilisées pour demander des informations d'identification temporaires pour le rôle spécifié par le paramètre RoleArn. Vous pouvez éventuellement exiger l'utilisation d'un appareil MFA (Multi-Factor Authentication, authentification multifacteur) ou d'un code ExternalId lorsque le rôle est assumé par un tiers.

Nom du paramètre Description

ExternalId

ID externe défini par l'utilisateur à utiliser lors de l'endossement d'un rôle, si requis par le rôle. Cela n'est généralement requis que lorsque vous déléguez l'accès à votre compte à un tiers. Le tiers doit inclure l'ExternalId comme paramètre lorsqu'il assume le rôle assigné. Pour plus d'informations, consultez Procédure d'utilisation d'un ID externe lorsque vous accordez l'accès à vos ressources AWS à un tiers dans le guide de l'utilisateur IAM.

MfaSerial

Numéro de série MFA à utiliser lors de l'endossement d'un rôle, si requis par le rôle. Pour de plus amples informations, veuillez consulter Utilisation de l’Authentification multi-facteur (MFA) dans AWS dans le guide de l’utilisateur IAM.

RoleArn

ARN du rôle à endosser pour endosser les informations d'identification du rôle. Pour plus d'informations sur la création et l'utilisation des rôles IAM, consultez Rôles IAM dans le guide de l’utilisateur IAM.

SourceProfile

Nom du profil de la source à utiliser par les informations d'identification du rôle responsable. Les informations d'identification trouvées dans ce profil sont utilisées pour assumer le rôle spécifié par le paramètre RoleArn.

Configuration des profils pour assumer un rôle

Voici un exemple montrant comment configurer un profil source permettant d'assumer directement un rôle IAM.

La première commande crée un profil source référencé par le profil de rôle. La deuxième commande crée le profil de rôle sur la base duquel le rôle sera assumé. La troisième commande affiche les informations d'identification du profil de rôle.

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

Pour utiliser ce profil de rôle avec les applets de commande de service des Tools for Windows PowerShell, ajoutez le paramètre commun -ProfileName à la commande pour référencer le profil de rôle. L'exemple suivant utilise le profil de rôle défini dans l'exemple précédent pour accéder à l'applet de commande Get-S3Bucket. Les AWS Tools for PowerShell recherchent les informations d'identification dans my_source_profile, utilisent ces informations d'identification pour appeler AssumeRole au nom de l'utilisateur, puis utilisent ces informations d'identification de rôle temporaires pour appeler 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

Utilisation des types de profil d'informations d'identification

Pour définir un type de profil d'informations d'identification, déterminez les paramètres qui fournissent les informations requises par le type de profil.

Type d'informations d'identification Paramètres que vous devez utiliser

Base

Ce sont les informations d'identification à long terme d'un utilisateur IAM

-AccessKey

-SecretKey

Session :

Il s'agit des informations d'identification à court terme d'un rôle IAM que vous récupérez manuellement, par exemple en appelant directement l'applet de commande Use-STSRole.

-AccessKey

-SecretKey

-SessionToken

Rôle :

Il s'agit d'informations d'identification à court terme d'un rôle IAM que les AWS Tools for PowerShell récupèrent pour vous.

-SourceProfile

-RoleArn

facultatif : -ExternalId

facultatif : -MfaSerial

Paramètre commun ProfilesLocation

Vous pouvez utiliser -ProfileLocation pour écrire dans le fichier d'informations d'identification partagées, ainsi que pour demander à une applet de commande de lire à partir du fichier d'informations d'identification. L'ajout du paramètre -ProfileLocation détermine si les Tools for Windows PowerShell utilisent le fichier d'informations d'identification partagées ou le fichier d'informations d'identification .NET. Le tableau suivant décrit comment le paramètres fonctionne dans les Tools for Windows PowerShell.

Valeur de l'emplacement du profil Comportement de résolution du profil

null (non défini) ou vide

Tout d'abord, recherchez dans le fichier d'informations d'identification .NET un profil portant le nom spécifié. Si le profil est introuvable, recherchez le fichier d'informations d'identification partagées AWS à l'adresse (user's home directory)\.aws\credentials.

Chemin d'accès d'un fichier dans le format de fichier d'informations d'identification partagées AWS

Recherchez un profil portant le nom indiqué uniquement dans le fichier spécifié.

Enregistrement des informations d'identification dans un fichier d'informations d'identification

Pour écrire et enregistrer les informations d'identification dans l'un des deux fichiers d'informations d'identification, exécutez l'applet de commande Set-AWSCredential. L'exemple suivant illustre la marche à suivre. La première commande utilise Set-AWSCredential avec -ProfileLocation pour ajouter des clés d'accès et des clés secrètes à un profil spécifié par le paramètre -ProfileName. Dans la deuxième ligne, exécutez l'applet de commande Get-Content pour afficher le contenu du fichier d'informations d'identification.

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

Affichage de vos profils d'informations d'identification

Exécutez l'applet de commande Get-AWSCredential et ajoutez le paramètre -ListProfileDetail pour renvoyer les types et les emplacements des fichiers d'informations d'identification, ainsi qu'une liste des noms de profils.

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

Suppression des profils d'informations d'identification

Pour supprimer les profils d'informations d'identification, exécutez la nouvelle applet de commande Remove-AWSCredentialProfile. Clear-AWSCredential est obsolète, mais est toujours disponible pour la rétrocompatibilité.

Remarques importantes

Seules les applets de commande Initialize-AWSDefaultConfiguration, New-AWSCredential et Set-AWSCredential prennent en charge les paramètres des profils de rôle. Vous ne pouvez pas spécifier les paramètres de rôle directement dans une commande telle que Get-S3Bucket -SourceProfile source_profile_name -RoleArn arn:aws:iam::999999999999:role/role_name. Cela ne fonctionne pas, car les applets de commande de service ne prennent pas directement en charge les paramètres SourceProfile ou RoleArn. Au lieu de cela, vous devez stocker ces paramètres dans un profil, puis appeler la commande avec le paramètre -ProfileName.