Sécurisation des clés d’accès
Toute personne qui dispose de votre clé d'accès a le même niveau d'accès à vos ressources AWS que vous. Par conséquent, AWS déploie des moyens importants pour protéger vos clés d'accès et, conformément à notre modèle de responsabilité partagée
Développez les sections suivantes pour obtenir des conseils qui vous aideront à protéger vos clés d'accès.
Note
Votre organisation peut avoir des exigences de sécurité et des stratégies différentes de celles décrites dans cette rubrique. Les suggestions fournies ici doivent être considérées comme des directives générales.
Le meilleur moyen de protéger votre compte est de n'avoir aucune clé d'accès pour votre Utilisateur racine d'un compte AWS. À moins d'avoir impérativement besoin des clés d'accès de l'utilisateur root (ce qui est rare), il est préférable de ne pas les générer. Créez plutôt un utilisateur administratif dans AWS IAM Identity Center pour les tâches administratives quotidiennes. Pour plus d'informations sur la création d'un utilisateur administratif dans IAM Identity Center, veuillez consulter la rubrique Getting started dans le Guide de l'utilisateur IAM Identity Center.
Si vous disposez déjà de clés d'accès d'utilisateur root pour votre compte, nous vous recommandons ce qui suit : recherchez dans vos applications les endroits où vous utilisez actuellement des clés d'accès (le cas échéant) et remplacez les clés d'accès de l'utilisateur root par celles de l'utilisateur IAM. Ensuite, désactivez et supprimez les clés d'accès de l'utilisateur root. Pour plus d'informations sur les modalités de mise à jour des clés d'accès, veuillez consulter . Mise à jour des clés d’accès
Dans de nombreux cas, vous n'avez pas besoin d'une clé d'accès à long terme qui n'expire jamais (comme dans le cas d'un utilisateur IAM). Au lieu de cela, vous pouvez créer des rôles IAM et générer des informations d'identification de sécurité temporaires. Les informations d'identification de sécurité temporaires consistent en un ID de clé d'accès et une clé d'accès secrète, mais elles comprennent également un jeton de sécurité qui indique la date d'expiration des informations d'identification.
Les clés d'accès à long terme, telles que celles associées aux utilisateurs IAM et à l'utilisateur root, demeurent valides jusqu'à ce que vous les révoquiez manuellement. Cependant, les informations d'identification de sécurité temporaires obtenues via les rôles IAM et d'autres fonctionnalités d'AWS Security Token Service expirent après une courte période de temps. Utilisez les informations d'identification de sécurité temporaires pour vous aider à réduire les risques en cas de compromission accidentelle des informations d'identification.
Utilisez un rôle IAM et les informations d'identification de sécurité temporaires dans les cas suivants :
-
Une application ou des scripts AWS CLI sont en cours d'exécution sur une instance Amazon EC2. N'utilisez pas les clés d'accès directement dans votre application. Ne transmettez pas les clés d'accès à l'application, ne les intégrez pas à l'application et ne laissez pas l'application les lire depuis n'importe quelle source. Définissez plutôt un rôle IAM qui dispose des autorisations adéquates pour votre application et lancez l'instance Amazon Elastic Compute Cloud (Amazon EC2) avec des rôles pour EC2. Cela permet d'associer un rôle IAM à l'instance Amazon EC2. Cette pratique permet également à l'application d'obtenir des informations d'identification de sécurité temporaires qu'elle peut à son tour utiliser pour effectuer des appels à AWS. Les kits AWS SDK et l'AWS Command Line Interface (AWS CLI) peuvent obtenir des informations d'identification temporaires de manière automatique à partir du rôle.
-
Vous devez accorder l'accès entre comptes. Utilisez un rôle IAM pour établir une relation d'approbation entre les comptes, puis accordez aux utilisateurs d'un compte des autorisations limitées pour accéder au compte approuvé. Pour de plus amples informations, consultez Didacticiel IAM : déléguer l'accès entre des comptes AWS à l'aide des rôles IAM.
-
Vous disposez d'une application mobile. N'intégrez pas les clés d'accès à l'application, même dans un espace de stockage chiffré. Au lieu de cela, utilisez Amazon Cognito
pour gérer les identités de l'utilisateur dans votre application. Ce service vous permet d'authentifier les utilisateurs à l'aide de Login with Amazon, Facebook, Google ou tout autre fournisseur d'identité compatible avec OpenID Connect (OIDC). Vous pouvez ensuite utiliser le fournisseur d'informations d'identification d'Amazon Cognito pour gérer les informations d'identification que votre application utilise pour effectuer des requêtes à AWS. -
Vous voulez utiliser la fédération dans AWS et votre organisation prend en charge SAML 2.0. Si vous travaillez pour une organisation disposant d'un fournisseur d'identité prenant en charge SAML 2.0, configurez le fournisseur pour qu'il utilise SAML. Vous pouvez utiliser SAML pour échanger des informations d'authentification avec AWS et récupérer un ensemble d'informations d'identification de sécurité temporaires. Pour de plus amples informations, consultez Fédération SAML 2.0.
-
Vous voulez utiliser la fédération dans AWS et votre organisation dispose d'un magasin d'identités sur site. Si les utilisateurs peuvent s'authentifier au sein de votre organisation, vous pouvez écrire une application capable de délivrer des informations d'identification de sécurité temporaires pour accéder aux ressources AWS. Pour de plus amples informations, consultez Activation de l’accès du fournisseur d’identité personnalisé à la console AWS.
-
Utilisez les conditions des politiques IAM pour n’autoriser l’accès qu’à partir des réseaux attendus. Vous pouvez limiter où et comment vos clés d’accès sont utilisées en mettant en œuvre des politiques IAM avec des conditions qui spécifient et n’autorisent que les réseaux attendus, tels que vos adresses IP publiques ou vos clouds privés virtuels (VPC). De cette façon, vous savez que les clés d’accès ne peuvent être utilisées qu’à partir de réseaux attendus et acceptables.
Note
Utilisez-vous une instance Amazon EC2 avec une application ayant besoin d'accéder par programmation aux ressources AWS ? Dans ce cas, utilisez les rôles IAM pour EC2.
Si vous devez créer des clés d'accès pour un accès programmatique à AWS, créez-les pour les utilisateurs IAM, en ne leur accordant que les autorisations dont ils ont besoin.
Respectez les précautions suivantes pour protéger les clés d'accès des utilisateurs IAM :
-
N'intégrez pas de clés d'accès directement dans le code. Les kits AWS SDK
et les outils de ligne de commande AWS vous permettent de placer les clés d'accès à des emplacements connus, afin que vous n'ayez pas à les conserver dans le code. Placez les clés d'accès à l'un des emplacements suivants :
-
Le fichier d'informations d'identification AWS. Les kits SDK AWS et l'AWS CLI utilisent automatiquement les informations d'identification que vous stockez dans le fichier d'informations d'identification AWS.
Pour plus d'informations sur l'utilisation du fichier d'informations d'identification AWS, consultez la documentation de votre kit SDK. À titre d'exemple, citons Set AWS Credentials and Region dans le guide du développeur AWS SDK pour Java et Configuration and credential files dans le Guide de l'utilisateur AWS Command Line Interface.
Afin de stocker les informations d'identification pour AWS SDK pour .NET et AWS Tools for Windows PowerShell, nous vous recommandons d'utiliser le SDK Store. Pour plus d'informations, veuillez consulter la rubrique Using the SDK Store dans le Guide du développeur AWS SDK pour .NET.
-
Variables d'environnement. Sur un système à locataires multiples, choisissez des variables d'environnement utilisateur, et non pas des variables d'environnement système.
Pour plus d'informations sur l'utilisation des variables d'environnement pour stocker les informations d'identification, veuillez consulter la rubrique Environment Variables dans le Guide de l'utilisateur AWS Command Line Interface.
-
-
Utilisez des clés d'accès différentes pour chaque application. Procédez ainsi afin de pouvoir isoler les autorisations et révoquer les clés d'accès pour des applications individuelles si elles sont compromises. Le fait d'avoir des clés d'accès distinctes pour différentes applications génère également des entrées distinctes dans les fichiers journaux AWS CloudTrail
. Cette configuration vous permet d'identifier plus facilement quelle application a effectué des actions spécifiques. -
Mettez à jour les clés d'accès en cas de besoin. Si la clé d'accès risque d'être compromise, mettez-la à jour et supprimez la clé d'accès précédente. Pour plus d’informations, consultez . Mise à jour des clés d’accès
-
Supprimez les clés d'accès inutilisées. Si un utilisateur quitte votre organisation, supprimez l'utilisateur IAM correspondant afin qu'il ne puisse plus accéder à vos ressources. Pour savoir quand une clé d'accès a été utilisée pour la dernière fois, utilisez l'API
GetAccessKeyLastUsed(commande AWS CLI :aws iam get-access-key-last-used). -
Utilisez des informations d'identification temporaires et configurez l'authentification multifactorielle pour vos opérations d'API les plus sensibles. Avec les politiques IAM, vous pouvez spécifier quelles opérations d'API un utilisateur est autorisé à appeler. Dans certains cas, vous souhaiterez peut-être renforcer la sécurité en imposant aux utilisateurs de s'authentifier au moyen d'AWS MFA avant qu'ils soient autorisés à exécuter des actions particulièrement sensibles. Par exemple, vous disposez peut-être d'une politique qui autorise l'utilisateur à exécuter les actions Amazon EC2
RunInstances,DescribeInstancesetStopInstances. Mais vous souhaitez peut-être restreindre une action destructive commeTerminateInstanceset vous assurer que les utilisateurs ne peuvent exécuter cette action que s'ils s'authentifient avec un dispositif MFA AWS. Pour de plus amples informations, consultez Accès sécurisé aux API avec MFA.
Vous pouvez accéder à un ensemble limité de services AWS et de fonctionnalités à l'aide de l'application mobile AWS. L'application mobile vous aide à prendre en charge la réponse aux incidents pendant vos déplacements. Pour de plus amples informations et pour télécharger l'application, veuillez consulter Console AWS pour les applications mobiles
Vous pouvez vous connecter à l'application mobile à l'aide du mot de passe de votre console ou de vos clés d'accès. En guise de bonne pratique, n'utilisez pas les clés d'accès de l'utilisateur root. En revanche, nous vous recommandons vivement, outre l'utilisation d'un mot de passe ou d'un verrouillage biométrique sur votre appareil mobile, de créer un utilisateur IAM spécifiquement pour gérer les ressources AWS à l'aide de l'application mobile. Si vous perdez votre appareil mobile, vous pouvez supprimer l'accès de l'utilisateur IAM.
Pour vous connecter à l'aide des clés d'accès (application mobile)
-
Ouvrez l'application sur votre appareil mobile.
-
Si c'est la première fois que vous ajoutez une identité à l'appareil, choisissez Ajouter une identité, puis cliquez sur Clés d'accès.
Si vous vous êtes déjà connecté à l'aide d'une autre identité, choisissez l'icône de menu et choisissez Changer d'identité. Choisissez ensuite Se connecter en tant qu'identité différente, puis Clés d'accès.
-
Sur la page Clés d'accès, saisissez vos informations :
-
ID de clé d'accès : saisissez votre ID de clé d'accès.
-
Clé d'accès secrète : saisissez votre clé d'accès secrète.
-
Nom de l'identité : saisissez le nom de l'identité qui apparaîtra dans l'application mobile. Elle ne doit pas nécessairement correspondre à votre nom d'utilisateur IAM.
-
Code PIN d'identité : créez un numéro d'identification personnel (PIN) que vous utiliserez pour les prochaines connexions.
Note
Si vous activez la biométrie pour l'application mobile AWS, vous serez invité à utiliser votre empreinte digitale ou la reconnaissance faciale pour la vérification au lieu du code PIN. Si la biométrie échoue, vous pouvez être invité à entrer le code PIN à la place.
-
-
Choisissez Vérifier et ajouter des clés.
Vous pouvez désormais accéder à un ensemble sélectionné de vos ressources à l'aide de l'application mobile.
Les rubriques suivantes fournissent des conseils permettant de configurer les kits AWS SDK et l'AWS CLI pour l'utilisation des clés d'accès :
-
Set AWS credentials and Region dans le Guide du développeur AWS SDK pour Java
-
Using the SDK Store dans le Guide du développeur AWS SDK pour .NET
-
Providing Credentials to the SDK dans le Guide du développeur AWS SDK pour PHP
-
Configuration
dans la documentation Boto 3 (Kit AWS SDK pour Python) -
Using AWS Credentials dans le Guide de l'utilisateur AWS Tools for Windows PowerShell
-
Configuration and credential files dans le Guide de l'utilisateur AWS Command Line Interface
-
Granting access using an IAM role dans le Guide du développeur AWS SDK pour .NET
-
Configure IAM roles for Amazon EC2 dans le AWS SDK for Java 2.x
Utilisation des clés d’accès et des informations d’identification de clé secrète pour l’accès à la console
Il est possible d’utiliser des informations d’identification de clé d’accès et de clé secrète pour un accès à l’AWS Management Console direct, et pas seulement l’AWS CLI. Cela peut être réalisé à l’aide de l’appel d’API GetFederationToken AWS STS En créant une URL de console à l’aide des informations d’identification temporaires et du jeton fournis par GetFederationToken, les principaux IAM peuvent accéder à la console. Pour de plus amples informations, consultez Activation de l’accès du fournisseur d’identité personnalisé à la console AWS.
Il convient de préciser que lorsque vous vous connectez directement à la console à l’aide des informations d’identification IAM ou utilisateur racine avec la MFA activée, cette dernière sera requise. Toutefois, si la méthode décrite ci-dessus (en utilisant des informations d’identification temporaires avec GetFederationToken) est utilisée, la MFA ne sera PAS requise.
Audit des clés d'accès
Vous pouvez passer en revue les clés d'accès AWS de votre code pour déterminer si elles proviennent d'un compte que vous possédez. Vous pouvez transmettre un identifiant de la clé d’accès à l’aide de la commande aws sts
get-access-key-info AWS CLI ou de l’opération d’API GetAccessKeyInfo AWS.
Les opérations de l'AWS CLI et de l'API AWS renvoient l'ID de l'Compte AWS auquel la clé d'accès appartient. Les ID de clé d'accès commençant par AKIA sont les informations d'identification à long terme d'un utilisateur IAM ou d'un Utilisateur racine d'un compte AWS. Les ID de clé d'accès commençant par ASIA sont des informations d'identification temporaires créées à l'aide d'opérations AWS STS. Si le compte de la réponse vous appartient, vous pouvez vous connecter en tant qu'utilisateur racine et vérifier vos clés d'accès d'utilisateur racine. Ensuite, vous pouvez extraire un rapport d'informations d'identification pour savoir quel utilisateur IAM possède les clés. Pour savoir qui a demandé les informations d'identification temporaires pour une clé d'accès ASIA, consultez les événements AWS STS dans vos journaux CloudTrail.
Pour des raisons de sécurité, vous pouvez consulter les journaux AWS CloudTrail pour savoir qui a effectué une action dans AWS. Vous pouvez utiliser la clé de condition sts:SourceIdentity dans la politique d'approbation de rôle pour exiger des utilisateurs qu'ils spécifient une identité lorsqu'ils endossent un rôle. Par exemple, vous pouvez exiger que les utilisateurs IAM spécifient leur propre nom d'utilisateur comme identité de source. Cela peut vous aider à déterminer quel utilisateur a effectué une action spécifique dans AWS. Pour de plus amples informations, consultez sts:SourceIdentity.
Cette opération n'indique pas l'état de la clé d'accès. La clé peut être active, inactive ou supprimée. Les clés actives peuvent ne pas avoir les autorisations nécessaires pour effectuer une opération. La fourniture d'une clé d'accès supprimée peut renvoyer une erreur indiquant que la clé n'existe pas.