Création d'un rôle pour la délégation d'autorisations à un utilisateur IAM. - AWS Identity and Access Management

Création d'un rôle pour la délégation d'autorisations à un utilisateur IAM.

Vous pouvez utiliser des rôles IAM pour déléguer l'accès à vos ressources AWS. Les rôles IAM vous permettent d'établir des relations d'approbation entre votre compte d'approbation et d'autres comptes AWS approuvés. Le compte d'approbation est propriétaire des ressources auxquelles les utilisateurs ont accès , tandis que le compte approuvé contient les utilisateurs devant accéder aux ressources. Toutefois, il est possible qu'un autre compte détienne une ressource dans votre compte. Par exemple, le compte de confiance peut autoriser le compte approuvé à créer de nouvelles ressources, telles que la création de nouveaux objets dans un compartiment Amazon S3. Dans ce cas, le compte qui crée la ressource la détient et contrôle les personnes pouvant y accéder.

Une fois que vous avez créé la relation d'approbation, un utilisateur ou une application IAM du compte approuvé peut utiliser l'opération d'API AWS Security Token Service (AWS STS) AssumeRole. Cette opération fournit des informations d'identification de sécurité temporaires permettant d'accéder aux ressources AWS de votre compte.

Les deux comptes peuvent être contrôlés par vous-même, ou le compte contenant les utilisateurs peut être contrôlé par un tiers. Si l'autre compte contenant les utilisateurs est un compte AWS que vous ne contrôlez pas, vous pouvez utiliser l'attribut externalId. L'ID externe peut être n'importe quel mot ou nombre convenu avec l'administrateur du compte tiers. Cette option ajoute automatiquement une condition à la politique d'approbation. Cette condition permet à l'utilisateur d'endosser le rôle uniquement si la demande inclut l'élément approprié sts:ExternalID. Pour plus d’informations, veuillez consulter Procédure d'utilisation d'un ID externe lorsque vous accordez l'accès à vos ressources AWS à un tiers.

Pour plus d'informations sur la façon d'utiliser les rôles pour déléguer des autorisations, consultez Termes et concepts relatifs aux rôles. Pour en savoir plus sur l'utilisation d'un rôle de service afin de permettre aux services l'accès aux ressources de votre compte, consultez Création d'un rôle pour la délégation d'autorisations à un service AWS.

Création d'un rôle IAM (console)

Vous pouvez utiliser la AWS Management Console pour créer un rôle qu'un utilisateur IAM peut endosser. Par exemple, supposons que votre organisation dispose de plusieurs comptes AWS pour isoler un environnement de développement d'un environnement de production. Pour une description générale des étapes nécessaires pour configurer et utiliser un rôle autorisant les utilisateurs du compte de développement à accéder aux ressources du compte de production, consultez Exemple de scénario utilisant des comptes de développement et de production distincts.

Pour créer un rôle (console)

  1. Connectez-vous à la AWS Management Console et ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation de la console, choisissez Rôles, puis Créer un rôle.

  3. Choisissez le type de rôle Autre compte AWS.

  4. Pour ID de compte, saisissez l'ID de compte AWS auquel vous voulez accorder l'accès à vos ressources.

    L'administrateur du compte spécifié peut accorder l'autorisation d'endosser ce rôle à n'importe quel utilisateur IAM de ce compte. Pour ce faire, l'administrateur attache une politique à l'utilisateur ou à un groupe qui donne l'autorisation pour l'action sts:AssumeRole. Cette politique doit spécifier l'ARN du rôle comme Resource.

  5. Si vous accordez des autorisations aux utilisateurs d'un compte que vous ne contrôlez pas et si les utilisateurs ont l'intention d'endosser ce rôle par programmation, alors sélectionnez Demander un ID externe. L'ID externe peut être n'importe quel mot ou nombre convenu avec l'administrateur du compte tiers. Cette option ajoute automatiquement une condition à la politique d'approbation. Cette condition permet à l'utilisateur d'endosser le rôle uniquement si la demande inclut l'élément approprié sts:ExternalID. Pour plus d’informations, veuillez consulter Procédure d'utilisation d'un ID externe lorsque vous accordez l'accès à vos ressources AWS à un tiers.

    Important

    Si vous choisissez cette option, l'accès au rôle ne peut se faire que via la AWS CLI, Tools for Windows PowerShell et l'API AWS. Cela est dû au fait que vous ne pouvez pas utiliser la console AWS pour endosser un rôle dont la politique d'approbation comporte une condition externalId. Vous pouvez néanmoins créer ce type d'accès par programmation, en écrivant un script ou une application à l'aide du kit SDK approprié. Pour plus d'informations et un exemple de script, consultez How to Enable Cross-Account Access to the AWS Management Console sur AWS Security Blog.

  6. Si vous souhaitez restreindre le rôle aux utilisateurs qui se connectent via une authentification MFA, sélectionnez Demander l'authentification MFA. Cela ajoute une condition à la politique d'approbation du rôle qui exige une authentification MFA. Un utilisateur qui veut endosser le rôle doit se connecter avec un mot de passe unique temporaire à partir d'un dispositif MFA configuré. Sans authentification MFA, les utilisateurs ne peuvent pas endosser le rôle. Pour plus d'informations sur l'authentification MFA, consultez Utilisation de l'authentification multi-facteur (MFA) dans l’interface AWS

  7. Sélectionnez Next : Permissions (Étape suivante : autorisations).

  8. IAM inclut une liste des politiques gérées par AWS et des politiques gérées par le client dans votre compte. Sélectionnez la politique à utiliser pour la politique d'autorisations ou choisissez Créer une politique pour ouvrir un nouvel onglet de navigateur et créer une nouvelle politique de bout en bout. Pour plus d'informations, consultez l'étape 4 de la procédure Création de politiques IAM. Une fois la politique créée, fermez cet onglet et revenez à l'onglet initial. Cochez la case en regard des politiques d'autorisations que vous souhaitez octroyer à toute personne endossant le rôle. Si vous préférez, vous pouvez ne sélectionner aucune stratégie pour le moment, puis les attacher au rôle ultérieurement. Par défaut, un rôle ne dispose d'aucune autorisation.

  9. (Facultatif) Définissez une limite d'autorisations. Il s'agit d'une fonctionnalité avancée.

    Ouvrez la section Set permissions boundary (Définir une limite d'autorisations) et choisissez Use a permissions boundary to control the maximum role permissions (Utiliser une limite d'autorisations pour contrôler le nombre maximum d'autorisations de rôle). Sélectionnez la politique à utiliser comme limite d'autorisations.

  10. Choisissez Suivant : Identifications.

  11. (Facultatif) Ajoutez des métadonnées au rôle en associant les identifications sous forme de paires clé-valeur. Pour plus d'informations sur l'utilisation des balises dans IAM, veuillez consulter Balisage des ressources IAM.

  12. Choisissez Suivant : Vérification.

  13. Pour Nom du rôle, indiquez le nom de votre rôle. Les noms de rôle de votre compte AWS doivent être uniques. Ils ne sont pas sensibles à la casse. Par exemple, vous ne pouvez pas créer deux rôles nommés PRODROLE et prodrole. Vous ne pouvez pas modifier le nom du rôle après sa création, car d'autres ressources AWS pourraient le référencer.

  14. (Facultatif) Dans le champ Description du rôle, saisissez la description du nouveau rôle.

  15. Passez en revue les informations du rôle, puis choisissez Créer un rôle.

    Important

    N'oubliez pas que ceci ne représente que la première moitié de la configuration requise. Vous devez également accorder aux utilisateurs individuels du compte approuvé des autorisations permettant de basculer vers le rôle dans la console ou d'endosser le rôle par programmation. Pour plus d'informations sur cette étape, consultez Octroi d'autorisations à un utilisateur pour endosser un rôle.

Création d'un rôle IAM (AWS CLI)

La création d'un rôle à partir de la AWS CLI comporte plusieurs étapes. Lorsque vous créez un rôle à partir de la console, la plupart des étapes sont exécutées automatiquement pour vous. En revanche, lors de l'utilisation de l'AWS CLI, vous devez exécuter explicitement chaque étape vous-même. Vous devez créer le rôle et lui attribuer une politique d'autorisations. Vous pouvez également définir la limite d'autorisations pour votre rôle.

Pour créer un rôle pour l'accès entre comptes (AWS CLI)

  1. Créez un rôle : aws iam create-role

  2. Attachez une politique d'autorisations gérée au rôle : aws iam attach-role-policy

    ou

    Créez une politique d'autorisations en ligne pour le rôle : aws iam put-role-policy

  3. (Facultatif) Ajoutez des attributs personnalisés au rôle en associant des balises : aws iam tag-role

    Pour plus d’informations, veuillez consulter Gestion des balises sur les rôles IAM (AWS CLI ou API AWS).

  4. (Facultatif) Définissez la limite d'autorisations pour le rôle : aws iam put-role-permissions-boundary

    Une limite d'autorisations contrôle les autorisations maximum dont un rôle peut disposer. Les limites d'autorisations constituent une fonctionnalité AWS avancée.

L'exemple suivant illustre les deux premières étapes les plus courantes pour créer un rôle entre comptes dans un environnement simple. Cet exemple permet à tout utilisateur du compte 123456789012 d'endosser le rôle et d'afficher le compartiment Amazon S3 example_bucket. Cet exemple suppose également que vous utilisiez un ordinateur client exécutant Windows et que vous ayez déjà configuré votre interface de ligne de commande à l'aide des informations d'identification et de la région de votre compte. Pour de plus amples informations, veuillez consulter Configuration de la CLI AWS.

Dans cet exemple, incluez la politique de confiance suivante dans la première commande lors de la création du rôle. Cette politique de confiance permet aux utilisateurs du compte 123456789012 d'endosser le rôle à l'aide de l'opération AssumeRole, mais uniquement s'ils fournissent l'authentification MFA à l'aide des paramètres SerialNumber et TokenCode. Pour plus d'informations sur l'authentification MFA, consultez Utilisation de l'authentification multi-facteur (MFA) dans l’interface AWS.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": "sts:AssumeRole", "Condition": { "Bool": { "aws:MultiFactorAuthPresent": "true" } } } ] }
Important

Si votre élément Principal contient l'ARN d'un rôle ou utilisateur IAM spécifique, alors cet ARN devient un ID du principal unique lorsque la politique est enregistrée. Cela permet de réduire le risque d'escalade des autorisations par la suppression et la nouvelle création du rôle ou de l'utilisateur. Cet ID n'est pas fréquent dans la console, car il existe également une transformation inverse, pour revenir à l'ARN, lorsque la politique d'approbation est affichée. Toutefois, si vous supprimez le rôle ou l'utilisateur, l'ID du principal s'affiche dans la console car AWS ne peut plus le faire correspondre à un ARN. Par conséquent, si vous supprimez et recréez un utilisateur ou rôle référencé dans l'élément Principal d'une politique de confiance, vous devez modifier le rôle afin de remplacer l'ARN.

Lorsque vous utilisez la deuxième commande, vous devez attacher au rôle une politique gérée existante. La politique d'autorisations suivante permet à toute personne endossant le rôle d'exécuter uniquement l'action ListBucket sur le compartiment Amazon S3 example_bucket.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::example_bucket" } ] }

Pour créer ce rôle Test-UserAccess-Role, vous devez d'abord enregistrer la précédente politique de confiance avec le nom trustpolicyforacct123456789012.json dans le dossier policies de votre disque local C:. Ensuite, enregistrez la précédente politique d'autorisations sous la forme d'une politique gérée par le client dans votre compte AWS sous le nom PolicyForRole. Vous pouvez ensuite utiliser les commandes suivantes pour créer le rôle et attacher la politique gérée.

# Create the role and attach the trust policy file that allows users in the specified account to assume the role. $ aws iam create-role --role-name Test-UserAccess-Role --assume-role-policy-document file://C:\policies\trustpolicyforacct123456789012.json # Attach the permissions policy (in this example a managed policy) to the role to specify what it is allowed to do. $ aws iam attach-role-policy --role-name Test-UserAccess-Role --policy-arn arn:aws:iam::123456789012:role/PolicyForRole
Important

N'oubliez pas que ceci ne représente que la première moitié de la configuration requise. Vous devez également accorder à des utilisateurs individuels du compte approuvé les autorisations permettant de changer de rôle. Pour plus d'informations sur cette étape, consultez Octroi d'autorisations à un utilisateur pour endosser un rôle.

Après avoir créé le rôle et lui avoir accordé les autorisations d'exécuter des tâches AWS ou d'accéder aux ressources AWS, tout utilisateur du compte 123456789012 peut endosser le rôle. Pour plus d’informations, veuillez consulter Assumer un rôle IAM (AWS CLI).

Création d'un rôle IAM (API AWS)

La création d'un rôle à partir de l'API AWS comporte plusieurs étapes. Lorsque vous utilisez la console pour créer un rôle, la plupart des étapes sont exécutées automatiquement pour vous, mais avec l'API vous devez exécuter explicitement chaque étape vous-même. Vous devez créer le rôle et lui attribuer une politique d'autorisations. Vous pouvez également définir la limite d'autorisations pour votre rôle.

Pour créer un rôle dans le code (API AWS)

  1. Créez un rôle : CreateRole

    Vous pouvez spécifier un emplacement de fichier pour la politique d'approbation du rôle.

  2. Attachez une politique d'autorisation gérée au rôle : AttachRolePolicy

    ou

    Créez une politique d'autorisation en ligne pour le rôle : PutRolePolicy

    Important

    N'oubliez pas que ceci ne représente que la première moitié de la configuration requise. Vous devez également accorder à des utilisateurs individuels du compte approuvé les autorisations permettant de changer de rôle. Pour plus d'informations sur cette étape, consultez Octroi d'autorisations à un utilisateur pour endosser un rôle.

  3. (Facultatif) Ajoutez des attributs personnalisés à l'utilisateur en associant des balises : TagRole

    Pour plus d’informations, veuillez consulter Gestion des balises sur les utilisateurs IAM (AWS CLI ou API AWS).

  4. (Facultatif) Définissez la limite d'autorisations pour le rôle : PutRolePermissionsBoundary

    Une limite d'autorisations contrôle les autorisations maximum dont un rôle peut disposer. Les limites d'autorisations constituent une fonctionnalité AWS avancée.

Après avoir créé le rôle et lui avoir accordé les autorisations d'exécuter des tâches AWS ou d'accéder aux ressources AWS, vous devez accorder des autorisations aux utilisateurs du compte pour leur permettre d'endosser le rôle. Pour plus d'informations sur l'endossement d'un rôle, consultez Assumer un rôle IAM (API AWS).

Création d'un rôle IAM (AWS CloudFormation)

Pour plus d'informations sur la création d'un rôle IAM dans AWS CloudFormation, reportez-vous à la référence sur les ressources et les propriétés et aux exemples dans le Guide de l'utilisateur AWS CloudFormation.

Pour plus d'informations sur les modèles IAM dans AWS CloudFormation, consultez les extraits de modèle AWS Identity and Access Management dans le Guide de l'utilisateur AWS CloudFormation.