Utilisation d'informations d'identification temporaires avec des ressources AWS - AWS Identity and Access Management

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation d'informations d'identification temporaires avec des ressources AWS

Vous pouvez utiliser des informations d'identification de sécurité temporaires pour effectuer des demandes de programmation de ressources AWS à l'aide de l’interface AWS CLI ou de l'API AWS (à l'aide des kits SDK AWS). Les informations d'identification temporaires fournissent les mêmes autorisations que les informations d'identification de sécurité à long terme, telles que les informations d'identification de l'utilisateur IAM. Toutefois, il existe quelques différences :

  • Lorsque vous effectuez un appel à l'aide des informations d'identification de sécurité temporaires, celui-ci doit inclure un jeton de session qui est renvoyé avec ces informations d'identification temporaires. AWS utilise le jeton de session pour valider les informations d'identification de sécurité temporaires.

  • Les informations d'identification temporaires arrivent à expiration après un intervalle spécifique. Une fois les informations d'identification temporaires arrivées à expiration, tous les appels que vous effectuez avec elles échoueront. Vous devez donc générer un nouvel ensemble d'informations d'identification temporaires. Les informations d'identification temporaires ne peuvent pas être étendues ou actualisées au-delà de l'intervalle spécifié d'origine.

  • Lorsque vous utilisez des informations d'identification temporaires pour effectuer une demande, votre principal peut inclure un ensemble d’étiquettes. Ces balises proviennent de balises de session et de balises attachées au rôle que vous endossez. Pour de plus amples informations sur les balises de session, veuillez consulter Transmission des balises de session AWS STS.

Si vous utilisez les AWSSDK, le AWS Command Line Interface(AWS CLI) ou les outils pour Windows PowerShell, la manière d'obtenir et d'utiliser les informations d'identification de sécurité temporaires varie selon le contexte. Si vous exécutez du code ou AWS CLI des PowerShell commandes Tools for Windows dans une instance EC2, vous pouvez tirer parti des rôles d'Amazon EC2. Sinon, vous pouvez appeler une API AWS STS pour obtenir les informations d'identification temporaires, puis les utiliser explicitement pour effectuer des appels aux services AWS.

Note

Vous pouvez utiliser AWS Security Token Service (AWS STS) pour créer et fournir aux utilisateurs de confiance des informations d'identification de sécurité temporaires permettant de contrôler l'accès à vos ressources AWS. Pour de plus amples informations sur AWS STS, veuillez consulter Informations d'identification de sécurité temporaires dans IAM. AWS STS est un service global qui dispose d'un point de terminaison par défaut à l'adresse https://sts.amazonaws.com. Ce point de terminaison se trouve dans la région USA Est (Virginie du Nord), bien que les informations d'identification que vous obtenez de ce point de terminaison et d'autres soient valides dans le monde entier. Ces informations d'identification fonctionnent avec les services et les ressources dans n'importe quelle région. Vous pouvez également choisir d'effectuer des appels d'API AWS STS aux points de terminaison de n'importe quelle région prise en charge. Cela permet de réduire la latence en effectuant les demandes depuis les serveurs situés dans une région géographiquement plus proche de vous. Quelle que soit la région d'où proviennent vos informations d'identification, elles fonctionnent dans le monde entier. Pour plus d’informations, veuillez consulter Gérer AWS STS dans un Région AWS.

Utilisation d'informations d'identification temporaires dans les instances Amazon EC2

Si vous souhaitez exécuter des commandes de la AWS CLI ou du code dans une instance EC2, pour obtenir des informations d'identification, nous vous recommandons d'utiliser les rôles pour Amazon EC2. Vous créez un rôle IAM qui spécifie les autorisations que vous souhaitez accorder aux applications qui s'exécutent sur les instances EC2. Lorsque vous lancez l'instance, vous associez le rôle à cette instance.

Les PowerShell commandes Applications et Outils pour Windows qui s'exécutent sur l'instance peuvent ensuite obtenir des informations d'identification de sécurité temporaires automatiques à partir des métadonnées de l'instance. AWS CLI Vous n'avez pas besoin d'obtenir explicitement les informations d'identification de sécurité temporaires. Les AWS SDK et les AWS CLI outils pour Windows obtiennent PowerShell automatiquement les informations d'identification du service de métadonnées d'instance EC2 (IMDS) et les utilisent. Les informations d'identification temporaires disposent d'autorisations que vous définissez pour le rôle associé à l'instance.

Pour plus d'informations et d'exemples, consultez ce qui suit :

Utilisation d'informations d'identification de sécurité temporaires avec les kits SDK AWS

Pour utiliser des informations d'identification de sécurité temporaires dans le code, vous appelez par programme une API AWS STS comme AssumeRole et extrayez les informations d'identification et le jeton de session résultant. Vous utilisez ensuite ces valeurs comme informations d'identification pour les appels ultérieurs à AWS. L'exemple de pseudo-code suivant explique comment utiliser des informations d'identification de sécurité temporaires si vous utilisez utiliser un kit SDK AWS :

assumeRoleResult = AssumeRole(role-arn); tempCredentials = new SessionAWSCredentials( assumeRoleResult.AccessKeyId, assumeRoleResult.SecretAccessKey, assumeRoleResult.SessionToken); s3Request = CreateAmazonS3Client(tempCredentials);

Pour un exemple écrit en Python (en utilisant l'AWS SDK for Python (Boto)), veuillez consulter Passage à un rôle IAM (AWS API). Cet exemple montre comment appeler AssumeRole pour obtenir des informations d'identification de sécurité temporaires, puis utiliser ces informations d'identification pour appeler Amazon S3.

Pour plus d'informations sur la façon d'appeler AssumeRole, GetFederationToken et d'autres opérations d'API, consultez la Référence sur l'API AWS Security Token Service. Pour plus d'informations sur l'obtention des informations d'identification de sécurité temporaires et du jeton de session à partir des résultats, consultez la documentation du kit SDK que vous utilisez. La documentation de tous les kits SDK AWS se trouve sur la page principale de la documentation AWS, dans la section Kits SDK et boîtes à outils.

Vous devez vérifier que vous obtenez un nouvel ensemble d'informations d'identification avant que les anciennes arrivent à expiration. Dans certains kits SDK, vous pouvez utiliser un fournisseur qui gère le processus d'actualisation des informations d'identification pour vous. Consultez la documentation du kit SDK que vous utilisez.

Utilisation d'informations d'identification de sécurité temporaires avec la AWS CLI

Vous pouvez utiliser les informations d'identification de sécurité temporaires avec l’interface AWS CLI. Cela peut vous être utile lors de test de politiques.

À l'aide de l'AWS CLI, vous pouvez appeler une API AWS STS telle que AssumeRole ou GetFederationToken, puis capturer la sortie obtenue. L'exemple suivant illustre un appel à AssumeRole qui envoie la sortie dans un fichier. Dans l'exemple, le paramètre profile est supposé être un profil dans le fichier de configuration AWS CLI. Il est également supposé référencer les informations d'identification d'un utilisateur IAM qui a les autorisations d'endosser le rôle.

aws sts assume-role --role-arn arn:aws:iam::123456789012:role/role-name --role-session-name "RoleSession1" --profile IAM-user-name > assume-role-output.txt

Une fois l'exécution de la commande terminée, vous pouvez extraire l'ID de clé d'accès, la clé d'accès secrète et le jeton de session de la variable. Vous pouvez le faire manuellement ou à l'aide d'un script. Vous pouvez ensuite affecter ces valeurs aux variables d'environnement.

Lorsque vous exécutez des commandes de la AWS CLI, la AWS CLI recherche les informations d'identification dans un ordre spécifique : d'abord dans les variables d'environnement, puis dans le fichier de configuration. Par conséquent, après avoir placé les informations d'identification temporaires dans les variables d'environnement, l’interface AWS CLI les utilise par défaut. (Si vous spécifiez un paramètre profile dans la commande, la AWS CLI ignore les variables d'environnement. À la place, la AWS CLI cherche dans le fichier de configuration, ce qui vous permet de remplacer les informations d'identification dans les variables d'environnement au besoin.)

L'exemple de pseudo-code suivant explique comment définir les variables d'environnement pour les informations d'identification de sécurité temporaires, puis comment appeler une commande AWS CLI. Du fait qu'aucun paramètre profile n'est inclus dans la commande AWS CLI, l’interface AWS CLI recherche d'abord les informations d'identification dans les variables d'environnement et utilise les informations d'identification temporaires.

Linux

$ export AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE $ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY $ export AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of session token> $ aws ec2 describe-instances --region us-west-1

Windows

C:\> SET AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE C:\> SET AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY C:\> SET AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of token> C:\> aws ec2 describe-instances --region us-west-1

Utilisation d'informations d'identification de sécurité temporaires avec des opérations d'API

Si vous envoyez directement des demandes d'API HTTPS à AWS, vous pouvez signer ces demandes avec les informations d'identification temporaires obtenues auprès d'AWS Security Token Service (AWS STS). Pour ce faire, vous utilisez l'ID de clé d'accès et la clé d'accès secrète que vous recevez d'AWS STS. Vous utilisez l'ID de clé d'accès et la clé d'accès secrète de la même façon que vous utiliseriez des informations d'identification à long terme pour signer une demande. Vous ajoutez également à votre demande d'API le jeton de session que vous recevez de AWS STS. Vous ajoutez le jeton de session à un en-tête HTTP ou à un paramètre de chaîne de requête appelé X-Amz-Security-Token. Vous ajoutez le jeton de session à l'en-tête HTTP ou au paramètre de chaîne de requête, mais pas les deux. Pour plus d'informations sur la signature des demandes d'API HTTPS, consultez Signature des demandes d'API AWS dans Références générales AWS.

En savoir plus

Pour de plus amples informations sur l'utilisation de AWS STS avec d'autres services AWS, veuillez consulter les liens suivants :