SAMLfédération 2.0 - 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.

SAMLfédération 2.0

AWS prend en charge la fédération d'identité avec SAML2.0 (Security Assertion Markup Language 2.0), une norme ouverte utilisée par de nombreux fournisseurs d'identité (IdPs). Cette fonctionnalité active l'authentification unique fédérée (SSO), afin que les utilisateurs puissent se connecter au AWS Management Console ou appelez AWS APIopérations sans que vous ayez à créer un IAM utilisateur pour tous les membres de votre organisation. En utilisantSAML, vous pouvez simplifier le processus de configuration de la fédération avec AWS, car vous pouvez utiliser le service de l'IdP au lieu d'écrire un code proxy d'identité personnalisé.

La fédération IAM prend en charge les cas d'utilisation suivants :

Utilisation SAML de la fédération basée pour API accéder à 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 le back-end, l'application lit et écrit des objets dans un compartiment Amazon S3. Les utilisateurs n'ont pas d'accès direct à AWS. Au lieu de cela, le processus suivant est utilisé :

Obtenir des informations d'identification de sécurité temporaires sur la base d'une SAML assertion
  1. A l'aide d'une application cliente, un utilisateur de l'organisation demande son authentification par l'IdP de l'organisation.

  2. L'IdP authentifie l'utilisateur en le comparant à la base d'identités de l'organisation.

  3. L'IdP construit une SAML assertion avec des informations sur l'utilisateur et envoie l'assertion à l'application cliente.

  4. L'application cliente appelle AWS STS AssumeRoleWithSAMLAPI, en transmettant le nom ARN du SAML fournisseur, le ARN rôle à assumer et l'SAMLassertion de l'IdP.

  5. La API réponse à l'application cliente inclut des informations d'identification de sécurité temporaires.

  6. L'application cliente utilise les informations d'identification de sécurité temporaires pour appeler les API opérations Amazon S3.

Présentation de la configuration de la fédération basée sur la SAML version 2.0

Avant de pouvoir utiliser la fédération 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 votre Compte AWS de se faire confiance. La procédure suivante décrit le processus général permettant de configurer cette relation d'approbation. Au sein de votre organisation, vous devez disposer d'un IdP compatible avec la SAML version 2.0, comme Microsoft Active Directory Federation Service (AD FS, intégré à Windows Server), Shibboleth ou un autre fournisseur 2.0 compatible. SAML

Note

Pour améliorer la résilience de la fédération, nous vous recommandons de configurer votre IdP et AWS fédération pour prendre en charge plusieurs points de terminaison de SAML connexion. Pour plus de détails, consultez le AWS Article du blog sur la sécurité Comment utiliser les SAML points de terminaison régionaux pour le basculement

Configurez l'IdP de votre organisation et AWS de se faire confiance
  1. Enregistrement AWS en tant que fournisseur de services (SP) auprès de l'IdP de votre organisation. Utilisez le document de SAML métadonnées de https://region-code.signin.aws.amazon.com/static/saml-metadata.xml

    Pour une liste des possibilités region-code valeurs, voir la colonne Région dans AWS Points de terminaison de connexion.

    Vous pouvez éventuellement utiliser le document de SAML métadonnées provenant de https://signin.aws.amazon.com/static/saml-metadata.xml.

  2. À l'aide de l'IdP de votre organisation, vous générez un XML fichier de métadonnées équivalent qui peut décrire votre IdP en tant que fournisseur d'identité dans IAM AWS. Il doit inclure le nom de l'émetteur, une date de création, une date d'expiration et les clés qui AWS peut être utilisé pour valider les réponses d'authentification (assertions) de votre organisation.

  3. Dans la IAM console, vous créez un fournisseur SAML d'identité. Dans le cadre de ce processus, vous téléchargez le document de SAML métadonnées qui ont été produits par l'IdP de votre organisation dans. Étape 2 Pour de plus amples informations, veuillez consulter Créez un fournisseur SAML d'identité dans IAM.

  4. DansIAM, vous créez un ou plusieurs IAM rôles. Dans la politique de confiance du rôle, vous définissez le SAML fournisseur 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 plus d'informations, consultezCréation d'un rôle pour un fournisseur d'identité tiers (fédération).

    Note

    SAMLIDPsutilisé dans un rôle, la politique de confiance doit se trouver dans le même compte que celui dans lequel se trouve le rôle.

  5. Dans l'IdP de votre organisation, vous définissez des assertions qui associent les utilisateurs ou les groupes de votre organisation aux rôles. IAM Notez que les différents utilisateurs et groupes de votre organisation peuvent correspondre à différents IAM rôles. 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 Configurer les SAML assertions pour la réponse d'authentification.

    Si votre IdP permet de SSO AWS console, vous pouvez alors 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.

  6. Dans l'application que vous créez, vous appelez AWS Security Token Service AssumeRoleWithSAMLAPI, en lui transmettant le nom ARN du SAML fournisseur dans lequel vous avez crééÉtape 3, le ARN rôle à assumer dans Étape 4 lequel vous l'avez créé et l'SAMLassertion concernant l'utilisateur actuel que vous obtenez de votre IdP. AWS s'assure que la demande pour assumer le rôle provient de l'IdP référencé dans le SAML fournisseur.

    Pour plus d'informations, consultez AssumeRoleWithSAMLle AWS Security Token Service APIRéférence.

  7. Si la demande aboutit, elle API renvoie un ensemble d'informations d'identification de sécurité temporaires, que votre application peut utiliser pour envoyer des demandes signées à AWS. Votre application contient des informations sur l'utilisateur actuel et peut accéder à des dossiers spécifiques à l'utilisateur dans Amazon S3, comme décrit dans le scénario précédent.

Vue d'ensemble du rôle permettant d'autoriser l'accès SAML fédéré à votre AWS resources

Le ou les rôles que vous créez dans IAM définissent ce que les utilisateurs fédérés de votre organisation sont autorisés à faire dans AWS. Lorsque vous créez la politique de confiance pour le rôle, vous spécifiez le SAML fournisseur que vous avez créé précédemment en tant quePrincipal. Vous pouvez également définir la politique de confiance avec un Condition pour autoriser uniquement les utilisateurs correspondant à certains SAML attributs à accéder au rôle. Par exemple, vous pouvez spécifier que seuls les utilisateurs dont l'SAMLaffiliation est staff (telle qu'affirmée par https://openidp.feide.no) sont autorisés à accéder au rôle, comme l'illustre 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://signin.aws.amazon.com/saml", "saml:iss": "https://openidp.feide.no" }, "ForAllValues:StringLike": {"saml:edupersonaffiliation": ["staff"]} } }] }
Note

SAMLIDPsutilisé dans un rôle, la politique de confiance doit se trouver dans le même compte que celui dans lequel se trouve le rôle.

Pour plus d'informations sur les SAML clés que vous pouvez enregistrer dans une politique, consultezClés disponibles pour la AWS STS fédération SAML basée.

Vous pouvez inclure des points de terminaison régionaux pour l'attribut saml:aud à l'adresse https://region-code.signin.aws.amazon.com/static/saml-metadata.xml. Pour une liste des possibilités region-code valeurs, voir la colonne Région dans AWS Points de terminaison de connexion.

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 EC2FullAccess gérée par Amazon.

Identification unique des utilisateurs dans le cadre SAML d'une fédération basée

Lorsque vous créez des politiques d'accès dansIAM, il est souvent utile de pouvoir spécifier des autorisations en fonction de l'identité des utilisateurs. Par exemple, pour les utilisateurs qui ont été fédérés à l'aide deSAML, une application peut souhaiter conserver des informations dans Amazon S3 en utilisant une structure comme 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. Toutefois, 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 lors de sa première connexion dans le cadre du processus de fédération.

Pour écrire des politiques qui font référence à des informations spécifiques à l'utilisateur dans le cadre du nom d'une ressource, l'identité de l'utilisateur doit être disponible dans des SAML clés pouvant être utilisées dans des conditions de politique. Les clés suivantes sont disponibles pour la fédération SAML basée sur la version 2.0 à utiliser dans IAM les politiques. 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.

  • saml:namequalifier. Une valeur de hachage basée sur la concaténation de la valeur de Issuer réponse (saml:iss) et d'une chaîne contenant l'identifiant du AWS compte et le nom convivial (la dernière partie duARN) du fournisseur. SAML IAM La concaténation de l'identifiant du compte et du nom convivial du SAML fournisseur est disponible pour les IAM politiques 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 et Subject 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. Ce pseudocode + indique la concaténation, SHA1 représente une fonction qui produit un condensé de message en utilisant SHA -1 et Base64 représente une fonction qui produit une version codée en Base-64 de la sortie de hachage.

    Base64 ( SHA1 ( "https://example.com/saml" + "123456789012" + "/MySAMLIdP" ) )

    Pour plus d'informations sur les clés de stratégie disponibles pour la fédération SAML basée, consultezClé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 être persistenttransient, ou la totalité Format URI des NameID éléments Subject et utilisés dans votre SAML assertion. Une va leur persistent indique que la valeur de saml:sub reste la même pour l'utilisateur pour toutes les sessions. Si la valeur est transient, l'utilisateur a une valeur saml:sub différente pour chaque session. Pour plus d'informations sur l'attribut NameID de l'élément Format, consultez Configurer les SAML assertions 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 Configurer les SAML assertions pour la réponse d'authentification.