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.
AWS prend en charge la fédération d'identité avec SAML 2.0 (Security Assertion Markup Language 2.0)
La fédération IAM prend en charge les cas d'utilisation suivants :
-
Accès fédéré pour permettre à un utilisateur ou à une application de votre organisation d'appeler des opérations AWS d'API. Ce cas d’utilisation est traité dans la section suivante. Vous utilisez une assertion SAML (dans le cadre de la réponse d'authentification) qui est générée dans votre organisation pour l'obtention d'informations d'identification temporaires. Ce scénario est similaire à d'autres scénarios de fédération pris en charge par IAM, tels que ceux décrits dans Demande d’identifiants de sécurité temporaires et Fédération OIDC. Toutefois, les systèmes SAML 2.0 de votre IdPs organisation gèrent de nombreux détails lors de l'exécution de l'authentification et de la vérification des autorisations.
-
Authentification unique (SSO) basée sur le Web AWS Management Console auprès de votre organisation. Les utilisateurs peuvent se AWS connecter à un portail de votre organisation hébergé par un IdP compatible SAML 2.0, sélectionner une option d'accès et être redirigés vers la console sans avoir à fournir d'informations de connexion supplémentaires. Vous pouvez utiliser un IdP SAML tiers pour établir un accès SSO à la console ou créer un IdP personnalisé pour autoriser l'accès de vos utilisateurs externes à la console. Pour plus d'informations sur la création d'un IdP personnalisé, consultez la page Permettre à un courtier d'identité personnalisé d'accéder à la AWS console.
Rubriques
- Utilisation de la fédération SAML pour l'accès à l'API AWS
- Présentation de la configuration de la fédération SAML 2.0
- Vue d'ensemble du rôle permettant d'autoriser l'accès fédéré par SAML à vos ressources AWS
- Identification unique des utilisateurs dans la fédération SAML
- Création d’un fournisseur d’identité SAML dans IAM
- Configuration de votre IdP SAML 2.0 à l’aide d’une relation d’approbation des parties utilisatrices et ajout de demandes
- Intégrez des fournisseurs de solutions SAML tiers avec AWS
- Configuration d’assertions SAML pour la réponse d’authentification
- Permettre aux utilisateurs fédérés SAML 2.0 d'accéder au AWS Management Console
- Affichage d’une réponse SAML dans votre navigateur
Utilisation de la fédération SAML pour l'accès à l'API AWS
Supposons que vous voulez permettre aux employés de copier les données de leurs ordinateurs dans un dossier de sauvegarde. Vous créez une application que les utilisateurs peuvent exécuter sur leurs ordinateurs. Sur l’instance principale, l’application lit et écrit les objets dans un compartiment Amazon S3. Les utilisateurs n'ont pas un accès direct à AWS. À la place, le processus suivant est utilisé :
-
A l'aide d'une application cliente, un utilisateur de l'organisation demande son authentification par l'IdP de l'organisation.
-
L'IdP authentifie l'utilisateur en le comparant à la base d'identités de l'organisation.
-
L'IdP crée une assertion SAML à l'aide des informations concernant l'utilisateur et l'envoie à l'application client.
-
L'application cliente appelle l' AWS STS
AssumeRoleWithSAML
API en transmettant l'ARN du fournisseur SAML, l'ARN du rôle à assumer et l'assertion SAML de l'IdP. -
La réponse de l'API à l'application cliente inclut des informations d'identification de sécurité temporaires.
-
L'application cliente utilise ces informations d'identification de sécurité temporaires pour appeler les opérations d'API Amazon S3.
Présentation de la configuration de la fédération SAML 2.0
Avant de pouvoir utiliser la fédération basée sur SAML 2.0 comme décrit dans le scénario et le schéma précédents, vous devez configurer l'IdP de votre organisation et le vôtre de manière à ce qu'ils se fassent mutuellement confiance. Compte AWS La procédure suivante décrit le processus général permettant de configurer cette relation d'approbation. Votre organisation doit utiliser un IdP prenant en charge SAML 2.0, comme Microsoft Active Directory Federation Service (services ADFS qui font partie de Windows Server), Shibboleth, ou tout autre fournisseur compatible avec SAML 2.0.
Note
Pour améliorer la résilience de la fédération, nous vous recommandons de configurer votre IdP et votre fédération AWS
pour prendre en charge plusieurs points de terminaison de connexion SAML. Pour plus de détails, consultez l'article du blog sur la AWS sécurité Comment utiliser les points de terminaison SAML régionaux pour
Configurez l'IdP de votre organisation et AWS faites-vous confiance
-
Inscrivez-vous AWS en tant que fournisseur de services (SP) auprès de l'IdP de votre organisation. Utilisez le document de métadonnées SAML à partir de
https://
region-code
.signin.aws.amazon.com/static/saml-metadata.xmlPour obtenir la liste des
region-code
valeurs possibles, consultez la colonne Région dans les points de terminaison de AWS connexion.Vous pouvez éventuellement utiliser le document de métadonnées SAML à partir de
https://signin.aws.amazon.com/static/saml-metadata.xml
. -
À l'aide de l'IdP de votre organisation, vous générez un fichier XML de métadonnées SAML équivalent qui peut décrire votre IdP en tant que fournisseur d'identité IAM dans. AWS Il doit inclure le nom de l'émetteur, une date de création, une date d'expiration et les clés qui AWS peuvent être utilisées pour valider les réponses d'authentification (assertions) de votre organisation.
Note
Comme défini par le profil d'interopérabilité des métadonnées SAML V2.0 version 1.0
, IAM n'évalue ni ne prend aucune mesure concernant l'expiration des certificats X.509 dans les documents de métadonnées SAML. Si vous êtes préoccupé par l'expiration des certificats X.509, nous vous recommandons de surveiller les dates d'expiration des certificats et d'effectuer une rotation des certificats conformément aux politiques de gouvernance et de sécurité de votre organisation. -
Dans la console IAM, vous créez un fournisseur d’identité SAML. Au cours du processus, vous chargez le document de métadonnées SAML et la générés par l’IdP de votre organisation à l’étape Étape 2. Pour de plus amples informations, veuillez consulter Création d’un fournisseur d’identité SAML dans IAM.
-
Dans IAM, créez un ou plusieurs rôles IAM. Dans la politique de confiance du rôle, vous définissez le fournisseur SAML comme principal, ce qui établit une relation de confiance entre votre organisation et AWS. La politique d'autorisation du rôle détermine les actions que les utilisateurs de l'organisation sont autorisés à effectuer dans AWS. Pour de plus amples informations, veuillez consulter Création d’un rôle pour un fournisseur d’identité tiers (fédération).
Note
Le SAML IDPs utilisé dans une politique de confiance des rôles doit se trouver dans le même compte que celui dans lequel se trouve le rôle.
-
Dans l'IdP de l'organisation, vous définissez les assertions qui associent les utilisateurs et les groupes de l'organisation aux rôles IAM. Notez que différents utilisateurs et groupes de l'organisation peuvent être associés à différents rôles IAM. La procédure exacte pour leur mappage dépend de l'IdP utilisé. Dans le scénario précédent d'un dossier Amazon S3 pour les utilisateurs, tous les utilisateurs peuvent être associés au rôle qui fournit les autorisations Amazon S3. Pour de plus amples informations, veuillez consulter Configuration d’assertions SAML pour la réponse d’authentification.
Si votre IdP active l'authentification unique sur la AWS console, vous pouvez configurer la durée maximale des sessions de console. Pour de plus amples informations, veuillez consulter Permettre aux utilisateurs fédérés SAML 2.0 d'accéder au AWS Management Console.
-
Dans l'application que vous créez, vous appelez l' AWS Security Token Service
AssumeRoleWithSAML
API en lui transmettant l'ARN du fournisseur SAML dans lequel vous l'avez crééÉtape 3, l'ARN du rôle dans lequel vous devez supposer que vous l'avez créé et l'assertion SAML concernant l'utilisateur actuel que vous obtenez de votre IdP. Étape 4 AWS s'assure que la demande pour assumer le rôle provient de l'IdP référencé dans le fournisseur SAML.Pour plus d'informations, consultez la section AssumeRoleWithSAML dans la référence de l'AWS Security Token Service API.
-
Si la demande aboutit, l'API retourne des informations d'identification de sécurité temporaires que votre application peut utiliser pour adresser des demandes signées à AWS. Votre application dispose d'informations sur l'utilisateur actuel et peut accéder aux compartiments Amazon S3 spécifiques à celui-ci, comme décrit dans le scénario précédent.
Vue d'ensemble du rôle permettant d'autoriser l'accès fédéré par SAML à vos ressources AWS
Les rôles que vous créez dans IAM définissent les tâches que les utilisateurs fédérés de votre organisation sont autorisés à effectuer. AWS Lorsque vous créez la politique d'approbation pour le rôle, vous spécifiez le fournisseur d'identité SAML créé précédemment en tant que Principal
. Vous pouvez également ajouter une Condition
à la politique d'approbation, afin d'autoriser uniquement les utilisateurs correspondant à certains attributs SAML à accéder au rôle. Par exemple, il est possible de spécifier que seuls les utilisateurs dont l'affiliation SAML est staff
(comme stipulé sur https://openidp.feide.no) sont autorisés à accéder au rôle, comme illustré dans l'exemple de politique suivant :
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Federated": "arn:aws:iam::
account-id
:saml-provider/ExampleOrgSSOProvider"}, "Action": "sts:AssumeRoleWithSAML", "Condition": { "StringEquals": { "saml:aud": "https://us-west-2
.signin.aws.amazon.com/saml", "saml:iss": "https://openidp.feide.no" }, "ForAllValues:StringLike": {"saml:edupersonaffiliation": ["staff"]} } }] }
Note
Le SAML IDPs utilisé dans une politique de confiance des rôles doit se trouver dans le même compte que celui dans lequel se trouve le rôle.
La clé de saml:aud
contexte de la politique indique l'URL que votre navigateur affiche lorsque vous vous connectez à la console. L'URL de ce point de terminaison de connexion doit correspondre à l'attribut de destinataire de votre fournisseur d'identité. Vous pouvez inclure la connexion URLs dans certaines régions. AWS
recommande d'utiliser des points de terminaison régionaux plutôt que des points de terminaison mondiaux pour améliorer la résilience de la fédération. Si vous n'avez configuré qu'un seul point de terminaison, vous ne pourrez pas vous fédérer AWS
dans le cas peu probable où le point de terminaison deviendrait indisponible. Pour obtenir la liste des region-code
valeurs possibles, consultez la colonne Région dans les points de terminaison de AWS
connexion.
L'exemple suivant montre le format d'URL de connexion avec le paramètre facultatifregion-code
.
https://
region-code
.signin.aws.amazon.com/saml
Si le chiffrement SAML est requis, l'URL de connexion doit inclure l'identifiant AWS unique attribué à votre fournisseur SAML, que vous trouverez sur la page détaillée du fournisseur d'identité. Dans l'exemple suivant, l'URL de connexion inclut l'identifiant unique de l'IdP, qui nécessite que /acs/ soit ajouté au chemin de connexion.
https://
region-code
.signin.aws.amazon.com/saml/acs/IdP-ID
Vous spécifiez la politique d'autorisation dans le rôle comme pour tout autre rôle. Par exemple, si les utilisateurs de votre organisation sont autorisés à administrer des instances Amazon Elastic Compute Cloud, vous devez explicitement autoriser les EC2 actions d'Amazon dans la politique d'autorisation, telles que celles figurant dans la politique EC2 FullAccess gérée par Amazon.
Pour plus d'informations sur les clés SAML que vous pouvez utiliser dans une politique, consultez Clés disponibles pour la AWS STS fédération SAML basée.
Identification unique des utilisateurs dans la fédération SAML
Lors de la création de politiques d'accès dans IAM, il est souvent utile de pouvoir spécifier des autorisations en fonction de l'identité des utilisateurs. Par exemple, dans le cas d'utilisateurs fédérés à l'aide de SAML, une application peut conserver les informations dans Amazon S3 à l'aide d'une structure similaire à celle-ci :
amzn-s3-demo-bucket/app1/user1
amzn-s3-demo-bucket/app1/user2
amzn-s3-demo-bucket/app1/user3
Vous pouvez créer le compartiment (amzn-s3-demo-bucket
) et le dossier (app1
) via la console Amazon S3 ou le AWS CLI, car il s'agit de valeurs statiques. Cependant, les dossiers spécifiques à l'utilisateur (user1
,user2
,user3
, etc.) doivent être créés au moment de l'exécution à l'aide de code, car la valeur identifiant l'utilisateur n'est connue que la première fois que l'utilisateur se connecte dans le cadre du processus de fédération.
Pour créer des politiques qui référencent des détails spécifiques à l'utilisateur dans le nom d'une ressource, l'identité de l'utilisateur doit figurer dans des clés SAML pouvant être utilisées dans les conditions des politiques. Les clés suivantes sont disponibles pour la fédération basée sur SAML 2.0 à utiliser dans les politiques IAM. Vous pouvez utiliser les valeurs retournées par les clés suivantes pour créer des identifiants utilisateur uniques pour des ressources comme des dossiers Amazon S3.
-
AWS
. Valeur de hachage basée sur la concaténation de la valeur de réponseIssuer
(saml:iss
) et d'une chaîne avec l'ID de comptesaml:namequalifier
et le nom convivial (dernière partie de l'ARN) du fournisseur SAML dans IAM. La concaténation de l'ID de compte et du nom convivial du fournisseur SAML est disponible dans les politiques IAM en tant que clésaml:doc
. L'ID de compte et le nom du fournisseur doivent être séparés par un caractère « / », comme dans « 123456789012/provider_name ». Pour plus d'informations, reportez-vous à la clésaml:doc
dans Clés disponibles pour la AWS STS fédération SAML basée.La combinaison de
NameQualifier
etSubject
permet d'identifier de manière unique un utilisateur fédéré. L’exemple de pseudo-code suivant montre comment cette valeur est calculée. Dans ce pseudo-code,+
indique une concaténation,SHA1
représente une fonction qui génère un résumé de message à l'aide de SHA-1 etBase64
représente une fonction qui génère une version encodée en Base64 de la sortie de hachage.Base64 ( SHA1 ( "https://example.com/saml" + "123456789012" + "/MySAMLIdP" ) )
Pour plus d'informations sur les clés de politique disponibles pour la fédération SAML, consultez Clés disponibles pour la AWS STS fédération SAML basée.
-
saml:sub
(chaîne). Objet de la demande, qui inclut une valeur qui identifie de manière unique un utilisateur individuel au sein d'une organisation (par exemple,_cbb88bf52c2510eabe00c1642d4643f41430fe25e3
). -
saml:sub_type
(chaîne). Cette clé peut êtrepersistent
,transient
ou l'URIFormat
complet des élémentsSubject
etNameID
utilisés dans votre assertion SAML. Une va leurpersistent
indique que la valeur desaml:sub
reste la même pour l'utilisateur pour toutes les sessions. Si la valeur esttransient
, l'utilisateur a une valeursaml:sub
différente pour chaque session. Pour plus d'informations sur l'attributNameID
de l'élémentFormat
, consultez Configuration d’assertions SAML pour la réponse d’authentification.
L'exemple suivant illustre une politique d'autorisation qui utilise les clés précédentes pour accorder des autorisations à un dossier spécifique à un utilisateur dans Amazon S3. La politique suppose que les objets Amazon S3 sont identifiés à l'aide d'un préfixe qui inclut à la fois saml:namequalifier
et saml:sub
. Notez que l'élément Condition
inclut un test pour vérifier que la valeur de saml:sub_type
est définie sur persistent
. Si la valeur est transient
, l'élément saml:sub
de l'utilisateur peut être différent pour chaque session et vous ne devez pas combiner les valeurs pour identifier des dossiers spécifiques aux utilisateurs.
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::amzn-s3-demo-bucket-org-data/backup/${saml:namequalifier}/${saml:sub}",
"arn:aws:s3:::amzn-s3-demo-bucket-org-data/backup/${saml:namequalifier}/${saml:sub}/*"
],
"Condition": {"StringEquals": {"saml:sub_type": "persistent"}}
}
}
Pour plus d'informations sur le mappage d'assertions de l'IdP et les clés de politique, consultez Configuration d’assertions SAML pour la réponse d’authentification.