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 programmatiques de AWS ressources à l'aide de l' AWS API AWS CLI or (à l'aide des AWS SDK). 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 passez un appel à l'aide d'informations d'identification de sécurité temporaires, l'appel 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 AWS SDK, 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 pour 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 à des utilisateurs de confiance des informations d'identification de sécurité temporaires qui peuvent contrôler l'accès à vos AWS ressources. Pour plus d'informations sur AWS STS, voirInformations d'identification de sécurité temporaires dans IAM. AWS STS est un service global dont le point de terminaison par défaut est situé à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' AWS STS API vers des points de terminaison situés dans l'une des régions prises 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 AWS CLI commandes ou du code dans une instance EC2, il est recommandé d'utiliser des rôles pour Amazon EC2 pour obtenir des informations d'identification. 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 programmation une AWS STS API similaire AssumeRole et vous extrayez les informations d'identification et le jeton de session qui en résultent. Vous utilisez ensuite ces valeurs comme informations d'identification pour les appels suivants à AWS. L'exemple suivant montre un pseudocode expliquant comment utiliser les informations d'identification de sécurité temporaires si vous utilisez un AWS SDK :

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. Vous trouverez la documentation de tous les AWS SDK sur la page de AWS documentation principale, dans la section 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 profile paramètre est supposé être un profil dans le fichier AWS CLI de configuration. 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 AWS CLI commandes, les AWS CLI informations d'identification sont recherchées dans un ordre spécifique, d'abord dans les variables d'environnement, puis dans le fichier de configuration. Par conséquent, une fois que vous avez placé les informations d'identification temporaires dans les variables d'environnement, elles AWS CLI utilisent ces informations d'identification par défaut. (Si vous spécifiez un profile paramètre dans la commande, les variables d'environnement AWS CLI sont ignorées. Ils apparaissent plutôt AWS CLI dans le fichier de configuration, qui vous permet de remplacer les informations d'identification des variables d'environnement si nécessaire.)

L'exemple suivant montre comment définir les variables d'environnement pour les informations d'identification de sécurité temporaires, puis appeler une AWS CLI commande. Comme aucun profile paramètre n'est inclus dans la AWS CLI commande, AWS CLI elle recherche d'abord les informations d'identification dans les variables d'environnement et utilise donc 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 des demandes d'API HTTPS directes à AWS, vous pouvez signer ces demandes avec les informations d'identification de sécurité temporaires que vous obtenez du 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 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 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 la section Signature des demandes d' AWS API dans le Références générales AWS.

En savoir plus

Pour plus d'informations sur l'utilisation AWS STS avec d'autres AWS services, consultez les liens suivants :